For codes which don't use OpenMP, the interpolation of a large number of points by Multipole limits performance in some situations. One workaround is to reduce the number of points, and possibly use one of the more accurate integration methods which is already implemented. Multipole performs interpolation by calling the standard Cactus interpolation API. To increase the speed of interpolation, Multipole could be modified to implement the interpolation interface from CarpetInterp2.
I understand that the standard Cactus interpolation interface is not provided by CarpetInterp2 because more information needs to be passed than the interface allows. Was this just the fastest way to get something working, or is it really a fundamental problem? I thought that the major difference was that CarpetInterp2 computes and stores interpolation weights from the coordinates so that they can be used again in subsequent interpolations to the same points. Could the standard Cactus interpolation interface be used for this, perhaps by passing a table entry which says "store the interpolation coefficients for these points for later reuse"? This would allow existing codes to use faster interpolation without having their interpolation code rewritten to use the new interface.