View Issue Details

IDProjectCategoryView StatusLast Update
0003043OpenFOAM[All Projects] Bugpublic2019-07-19 16:00
ReporterpaukapAssigned Tohenry 
PrioritynormalSeveritytrivialReproducibilityalways
Status closedResolutionunable to reproduce 
PlatformLinuxOSCentOS 7OS Version7.4.1708
Product Version6 
Fixed in Version 
Summary0003043: cannot build using Intel MPI 2019 beta
DescriptionTrying 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 ReproduceCompile OpenFOAM 6 with any compiler (tried: 2x GCC and 3x Intel), and Intel MPI; set 'export WM_MPLIB=INTELMPI' in etc/bashrc
Additional InformationThis issue is specific to 2019 BETA Intel MPI version.

(Assumed, not yet tested) workaround: use Intel's script to restore legacy path-structure.
TagsMPI

Relationships

related to 0003303 resolvedhenry Compilation of (Intel) MPI fails 

Activities

henry

2018-08-15 11:52

manager   ~0009956

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.

henry

2018-08-16 15:52

manager   ~0009963

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

Issue History

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