astro-informatics / purify

Next-generation radio interferometric imaging.
https://astro-informatics.github.io/purify
GNU General Public License v2.0
17 stars 13 forks source link

Enable plans for FFTW and multithreading #45

Closed Luke-Pratley closed 8 years ago

Luke-Pratley commented 8 years ago

It is expected that images might need to be ~ 8k by 8k in pixels. Since the FFT is applied repetitively, when images get this large it might help if an optimised plan is made for FFTW when constructed the gridding operator.

Also, it could be worth using the multithreading methods in FFTW, since it is quite similar.

Luke-Pratley commented 8 years ago

@dpshelio @mdavezac So I have finished adding FFT planning to Eigen. The Multi threading has also been added at the Purify level, since it is just a few lines of code. The only problem left is to add the multithreading flag for FFTW in the GreatCMakeCookOff. I have linked the library manually for testing, but we need to still fix this in general.

Given that is some where on the UCL github, maybe we should update that? I would do it, but the CMAKE code looks complicated.

mdavezac commented 8 years ago

try and modify the command in sopt as in

lookup_package(Eigen3 HG_REPOSITORY url/to/your/bitbucket/repo)
Luke-Pratley commented 8 years ago

@mdavezac That worked for Purify, but in sopt it still downloads from https://bitbucket.org/eigen/eigen/get/3.2.5.tar.gz. I tried to find where it sets this in cmake, but I have no clue. I might try looking more later.

Luke-Pratley commented 8 years ago

No that problem has been solved 👍. I was meant to edit dependencies.cmake, not LookUpSopt.cmake.

Now we just need to link the multithreading part of FFTW using cmake, then I think this issue will be closed.

dpshelio commented 8 years ago

ucl/GreatCMakeCookOff#49 should allow Purify to use multithreading with the addition on #47. Notice my comments on Threads and OpenMP.