FFTW option

Create issue
Issue #699 closed
Barry Wardell created an issue

Most current OptionLists in SimFactory set the FFTW_DIR option which is recognized by the Cactus build system. There is now also an ExternalLibraries/FFTW thorn which instead looks for the option FFTW3_DIR. Should all OptionLists be modified to set the new variable instead of the old one? Or is the older FFTW_DIR variable still used/working?

The attached patch renames the option in all optionlists and also removes the FFTW_LIBS option which is not read by the ExternalLibraries thorn.


Comments (8)

  1. Erik Schnetter
    • removed comment

    We should not make boilerplate changes to option lists. This is likely to break things. Either an option list is unused, and in this case, leaving it at its old state makes it easiest to update it, because then one doesn't have to find out which untested changes were applied. Or the option list is used, in which case it is working, and making changes is not necessary.

    In this case, FFTW_DIR is for version 2 of the FFTW library, whereas FFTW3_DIR is for version three. These two libraries are not compatible. FFTW is supported by Cactus using the old configuration mechanism (i.e. without using a thorn to configure it). I would either leave this in (if it works), or remove these definitions (under the assumption that FFTW version 2 is not installed on these systems any more). However, the latter assumption is dangerous.

    I would rather go through this machine by machine, updating those option lists that are used (and where people care), and moving the other option lists to a "retired" or "nobody looked at this in the past year" directory.

  2. Barry Wardell reporter
    • removed comment

    OK. I personally was not aware of there being two different options until recently, so it's possible that the same is true for others who maintain SimFactory optionlists. In the case of the machines I use, FFTW version 2 is not even available so the option should be changed to FFTW3_DIR in those cases. I will make this change to the machines I can check.

    What should be done in the case where both FFTW version 2 and 3 are available on a machine? Should both options be set? Do the two library versions interfere with each other?

  3. Barry Wardell reporter
    • removed comment

    Attached are two new patches. The first makes the change for the machines I currently use frequently (and for which I know the change is correct). The second makes the change on machines where it is obvious (from the path) that FFTW version 3 is being provided. Additionally, it doesn't change any of the OUTDATED optionlists. Do you think this second patch is OK, or should it still be done at a more fine-grained level.

    For reference, the following optionlists have not been updated by this patch as they still point to version 2:

    franklin.cfg hopper-cray.cfg hopper-gcc.cfg hopper-pathscale.cfg hopper-pgi.cfg hopper2-gcc.cfg hopper2-pgi10.cfg hopper2-pgi11.cfg hopper2.cfg macos-intel.cfg numrel-intel.cfg varia-gcc.cfg

  4. Erik Schnetter
    • removed comment

    If both options are applicable, keep both. Things then depend on the thorn list used. Options for incompatible libraries don't conflict, because the thorn lists may contain only one of them.

    If you tested your patch (in the sense of building with this option list, and with the FFTW3 thorn, and you ensured that the FFTW3 thorn actually uses this option), then please make this change for that particular machine.

    In many cases, building just with the Einstein Toolkit thorn list is not enough to test option lists.

  5. Barry Wardell reporter
    • removed comment

    I have committed the first patch.

    I believe the second patch is also correct, but don't have access to most of those machines so won't commit it without testing.

  6. Log in to comment