Remove fftw2 support
Issue #10
resolved
The last version of fftw-2 was released 20 years ago so it is unlikely that we will encounter a system that has fftw2 and not fftw3. By removing fftw2 we should improve the clarity of the code and make it easier to ensure we are thoroughly testing it.
Comments (4)
-
-
I’m very much in favour of dropping support for FFTW2. These are the only systems in Makefiles that explicitly use it:
- bass and bassi: no info, but installed 2005
- bigben: decommissioned 2010
- carver: decommissioned 2014
- davinci: decommissioned
- edison: decommissioned 2019
- euclid: no info, but installed 2010
- franklin: decommissioned 2012
- hoffman2: still going, but upgraded to FFTW3
- hopper: decommissioned 2015
- hopper2: no info, but not listed on NERSC current systems
- jacquard: no info, but installed 2005
- jaguar: decommissioned 2012
- jaguarpf: decommissioned 2012
- kestrel: no info at all
- kraken: decommissioned 2014
- ranger: decommissioned 2013
- stampede: decommissioned 2017
So as far as I can tell, there are no existing systems that only have FFTW2.
Also, we could use this info to delete some historic Makefiles
EDIT: missed discovery at Dartmouth, but I can’t find any info on it. Website seems to be dead
-
reporter Implemented in PR #125
-
reporter - changed status to resolved
FFTW2 support removed in advance of GS2 8.2, see PR #125
- Log in to comment
I agree it should probably remove it, but have the usual squeamishness about removing functional code…
For people not familiar with the details, we currently support FFTW2 and FFTW3 by preprocessing the source, so that the correct versions of the routine as chosen at compile time:
It’s all the ###s and logical branches that make the source hard to maintain.
If we were starting again, perhaps we would make two separate modules
fft_work_fftw2
andfft_work_fftw3
? If we were to add other FFT implementations, this might be the way to go. But for makingfft_work
readable, we probably just want to drop FFTW2 support.
It's worth noting that dropping support for fftw2 would also involve changes to
gs2_transforms
in the main gs2 repo. Presumably, similar changes would need to be made for AstroGK/Trinity (or at least, users would need to know that fftw2 couldn’t be called any more). Perhaps we could use the utils Makefile to do the compile-time checking on this (see issue#2)?