hpc4cmb / libconviqt

Spherical harmonic convolution library
Other
4 stars 4 forks source link

libsharp-based implementation? #8

Closed mreineck closed 4 years ago

mreineck commented 4 years ago

I just found this project ... hadn't realized that conviqt also exists on github now :)

I'm not sure if you are aware that there is a version of conviqt which uses libsharp's SHT transforms at different spins to compute the convolution. Since libsharp supports vector instructions up to AVX512f now and also has an improved recurrence for the Wigner matrix elements, this should be more than twice as fast as the older version used here. If you are interested in switching, please let me know!

keskitalo commented 4 years ago

That sounds like an exciting prospect. In typical Planck-like applications the interpolation step dominates the cost, not developing the data cube from the Wigner matrix elements. It sounds like your new approach is rather different. Can you point me to a publication that describes it?

Is this something you would like to work on yourself?

mreineck commented 4 years ago

If the interpolation dominates, then there is probably not much point in switching ... I admit that I had only considered the run-time of the total convolution step in isolation, which doesn't make too much sense in this context. The new algorithm is simply based on the fact that spin spherical harmonics and Wigner d matrix elements are closely related (see e.g. eq. 10 in https://arxiv.org/pdf/1303.4945) and replacing the (only SSE2 vectorized) recurrence in the wignergen class by the much more advanced spherical harmonic transforms in libsharp.