Skip to content

Wrong path set to FFT(W)_LIB_DIR in toolchains/fft/intelfftw.py #3987

@cedricga91

Description

@cedricga91

Hello,

I use EasyBuild 4.5.3 and I try to install my custom PETSc-3.16.5-gimkl-2021b.eb (with my custom toolchain gimkl/2021b) but I have an issue with FFTW.

== 2022-03-30 07:10:50,322 environment.py:91 INFO Environment variable FFT_LIB_DIR set to /soft/easybuild/software/imkl/2021.4.0/mkl/2021.4.0/lib/intel64 (previously undefined)
== 2022-03-30 07:10:50,319 environment.py:91 INFO Environment variable FFTW_LIB_DIR set to /soft/easybuild/software/imkl/2021.4.0/mkl/2021.4.0/lib/intel64 (previously undefined)
(...)
*******************************************************************************
         UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log for details):
-------------------------------------------------------------------------------
--with-fftw-lib=['/soft/easybuild/software/imkl/2021.4.0/mkl/2021.4.0/lib/intel64/libfftw3x_cdft_lp64_pic.a', 'libmkl_cdft_core.a', 'libmkl_blacs_intelmpi_lp64.a', 'libmkl_gf_lp64.a', 'libmkl_sequential.a', 'libmkl_core.a', 'libgfortran.a'] and
--with-fftw-include=['/soft/easybuild/software/imkl/2021.4.0/mkl/2021.4.0/include/fftw'] did not work
*******************************************************************************

EasyBuild sets a wrong path to FFT_LIB_DIR and FFTW_LIB_DIR : /soft/easybuild/software/imkl/2021.4.0/mkl/2021.4.0/lib/intel64
The good path is : /soft/easybuild/software/imkl-FFTW/2021.4.0-gimpi-2021b/lib

As workaround, I apply these patch :

--- toolchains/fft/intelfftw.py_v4.5.3  2022-03-24 07:52:14.032345002 +0100
+++ toolchains/fft/intelfftw.py 2022-03-30 10:18:09.922909015 +0200
@@ -98,12 +98,13 @@
         imklfftwroot = get_software_root('imkl-FFTW')
         if imklfftwroot:
             # only get cluster_interface_lib from seperate module imkl-FFTW, rest via libmkl_gf/libmkl_intel
             fft_lib_dirs += [os.path.join(imklfftwroot, 'lib')]
             fftw_libs.remove(interface_lib)
             fftw_mt_libs.remove(interface_lib)
+            self.FFT_LIB_DIR = [os.path.join(imklfftwroot, 'lib')]
 
         def fftw_lib_exists(libname):
             """Helper function to check whether FFTW library with specified name exists."""
             return any(os.path.exists(os.path.join(d, "lib%s.a" % libname)) for d in fft_lib_dirs)
 
         if not fftw_lib_exists(interface_lib) and LooseVersion(imklver) >= LooseVersion("10.2"):

Do you know if this issue is only related to (my custom) gimkl toolchain, or if it's related to all toolchain using Intel MKL ?

Thanks for your help ! Have a good day !

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions