View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003043 | OpenFOAM | Bug | public | 2018-08-15 10:51 | 2019-07-19 16:00 |
Reporter | paukap | Assigned To | henry | ||
Priority | normal | Severity | trivial | Reproducibility | always |
Status | closed | Resolution | unable to reproduce | ||
Platform | Linux | OS | CentOS 7 | OS Version | 7.4.1708 |
Summary | 0003043: cannot build using Intel MPI 2019 beta | ||||
Description | Trying to compile OpenFOAM 6 (release) using Intel MPI 2019 (beta), we run into below issue. Note that in this new (beta) version of Intel MPI, installation paths has been changed, see https://software.intel.com/en-us/articles/restoring-legacy-path-structure-on-intel-mpi-library-2019 It seems that OpenFOAM is not aware of new include paths of new Intel MPI version. As OpenFOAM do not use (Why?) the MPIs compiler wrappers(*) you would need to add either further tests, or maybe a new value for WM_MPLIB variable, to fix this issue. (Using the Intel's workaround from above link is not a permanent solution as Intel is free to change the installation paths again and again and to stop providing restoring-legacy-path-structure scripts..) (*) like 'mpiifort', 'mpicc' and so on - any known MPI brings own compiler wrappers, sometimes multiple sets for different compilers Have a nice day Paul Kapinos P.S. A permanent solution for such class of issues would be switch to using the compiler wrappers provided by the MPI vendor ('mpif90', 'mpicc', 'mpicxx' and so on, typically stored in $MPIFC, $MPICC, $MPICXX envvars). You get all the Vendor-and-Version-Specific stuff 'for free' instead of tweaking own configuration files. However we have no knowledge about why OpenFOAM use WM_MPLIB variable to choose between some different supported MPIs to discuss this. ------------------------------------------------------------------------------ ...... Making dependency list for source file UOPwrite.C wmakeScheduler g++ -std=c++11 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -O3 -DNoRepository -ftemplate-depth-100 -DMPICH_SKIP_MPICXX -isystem /opt/intel/impi/2019.0.070/compilers_and_libraries/linux/mpi/include64 -IlnInclude -I. -I/usr/local_rwth/sw/openfoam/6/gcc_7.2.0-intelmpi_2019.0.070/OpenFOAM-6/src/OpenFOAM/lnInclude -I/usr/local_rwth/sw/openfoam/6/gcc_7.2.0-intelmpi_2019.0.070/OpenFOAM-6/src/OSspecific/POSIX/lnInclude -fPIC -c UOPwrite.C -o /usr/local_rwth/sw/openfoam/6/gcc_7.2.0-intelmpi_2019.0.070/OpenFOAM-6/platforms/linux64GccDPInt32OptINTELMPI/src/Pstream/mpi/UOPwrite.o In file included from UOPwrite.C:30:0: PstreamGlobals.H:41:10: fatal error: mpi.h: No such file or directory #include <mpi.h> ^~~~~~~ compilation terminated. ------------------------------------------------------------------------------ $ find -L /opt/intel/impi/2017.4.239/compilers_and_libraries/linux/mpi/include64 -name mpi.h /opt/intel/impi/2017.4.239/compilers_and_libraries/linux/mpi/include64/mpi.h $ find -L /opt/intel/impi/2019.0.070/compilers_and_libraries/linux/ -name mpi.h /opt/intel/impi/2019.0.070/compilers_and_libraries/linux/mpi/intel64/include/mpi.h $ find -L /opt/intel/impi/2019.0.070/compilers_and_libraries/linux/mpi/include64 -name mpi.h find: ‘/opt/intel/impi/2019.0.070/compilers_and_libraries/linux/mpi/include64’: No such file or directory ------------------------------------------------------------------------------ | ||||
Steps To Reproduce | Compile OpenFOAM 6 with any compiler (tried: 2x GCC and 3x Intel), and Intel MPI; set 'export WM_MPLIB=INTELMPI' in etc/bashrc | ||||
Additional Information | This issue is specific to 2019 BETA Intel MPI version. (Assumed, not yet tested) workaround: use Intel's script to restore legacy path-structure. | ||||
Tags | MPI | ||||
|
We do not have Intel MPI 2019 beta and hence cannot reproduce this issue. If you know what the path to mpi.h is it should be trivial to set the paths appropriately. If you would rather use mpicc feel free to do so. |
|
It appears that you need to change the paths in the appropriate mplibINTELMPI file in wmake/rules which is trivial as you already know the correct path for mpi.h: /opt/intel/impi/2019.0.070/compilers_and_libraries/linux/mpi/intel64/include/mpi.h |
Date Modified | Username | Field | Change |
---|---|---|---|
2018-08-15 10:51 | paukap | New Issue | |
2018-08-15 10:51 | paukap | Tag Attached: MPI | |
2018-08-15 11:52 | henry | Note Added: 0009956 | |
2018-08-16 15:52 | henry | Assigned To | => henry |
2018-08-16 15:52 | henry | Status | new => closed |
2018-08-16 15:52 | henry | Resolution | open => unable to reproduce |
2018-08-16 15:52 | henry | Note Added: 0009963 | |
2018-08-16 15:53 | henry | Severity | major => trivial |
2019-07-19 16:00 | henry | Relationship added | related to 0003303 |