Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7942 Discussions

GROMACS 2020.3 and Intel mpiicc, always stuck on "Disabling Thread-MPI"

Tommy_AP
Beginner
1,969 Views

Hi,
I am trying to build Gromacs 2020.3 using Intel MPI Compiler bundled from Intel Parallel Studio XE 2020.2.
At the initial cmake-ing step, it always stuck whenever it hits "-- MPI is not compatible with thread-MPI. Disabling thread-MPI." without no apparent error, according to the GROMAC's cmake output.

But if i try to compile it with GCC (v 9.3.0), the said problem won't happen. Also, In my build attempt using Intel Compiler, i am including MKL as the FFT library and Intel's OpenMP, while in the GCC, i am only using MKL.

And here is the CMake args

cmake \
 -S ../gromacs-2020.3 \
 -B $MadeDir \
 -DCMAKE_INSTALL_PREFIX="${InstallDir}" \
 -DCMAKE_C_COMPILER=mpiicc \
 -DCMAKE_C_FLAGS="-march=broadwell -no-multibyte-chars -xCORE-AVX2" \
 -DCMAKE_CXX_COMPILER=mpiicpc \
 -DCMAKE_CXX_FLAGS="-march=broadwell -no-multibyte-chars -xCORE-AVX2" \
 -DGMX_MPI=on \
 -DGMX_GPU=off \
 -DGMX_OPENMP=on \
 -DGMC_SIMD=AVX2_256 \
 -DGMX_CYCLE_SUBCOUNTERS=ON \
 -DGMX_HWLOC=OFF \
 -DGMX_FFT_LIBRARY=mkl \
 -DMKL_INCLUDE_DIR="${MKLROOT}/include" \
 -DMKL_LIBRARIES="${MKLROOT}/lib/intel64/libmkl_intel_lp64.so;${MKLROOT}/lib/intel64/libmkl_intel_thread.so;${MKLROOT}/lib/intel64/libmkl_core.so;" \
 -DOpenMP_C_FLAGS="-qopenmp" \
 -DOpenMP_C_LIB_NAMES="libiomp5" \
 -DOpenMP_CXX_FLAGS="-qopenmp" \
 -DOpenMP_CXX_LIB_NAMES="libiomp5" \
 -DOpenMP_libiomp5_LIBRARY="${IntelCompLibs}/libiomp5.so" &&

CMake logs are output are attached below, any suggestion and help appreciated.

Thank you.

Labels (1)
0 Kudos
5 Replies
AbhishekD_Intel
Moderator
1,938 Views

Hi,

 

Thanks for reaching out to us.

We are able to build Gromacs 2020.3 using the latest Intel MPI and also with the latest Intel C Compiler.

 

From your Error logs, we can see that the errors are from the gcc heders. It seems that those headers are not from usuall /usr/include but it is taking from the some different path ie /opt/ohpc/pub/easybuild/software/GCCcore/9.3.0/include/.

 

So we think that this issue is due to your gcc environment, you can try giving the -I<include_path> as a compiler flag or try to locate those headers which are giving errors and try manually giving path to those headers.

 

Hope this will help, let us know if you need some help.

 

 

Warm Regards,

Abhishek

 

0 Kudos
Tommy_AP
Beginner
1,930 Views

Hi Abhishek

Thanks for your response.

If i understand this correctly, i have to explicitly use the -I flag and point it to Intel Compiler's include path, yes ? Then, what is the common path in Linux system for this include(s) ?

Thank you

0 Kudos
AbhishekD_Intel
Moderator
1,911 Views

Hi,


Please go through your CMakeError.log you will find that for some headers you are getting error as couldn't find source files. Those headers are basically from the installed gcc include files, so you can try giving the path of those headers while building your application.


We also couldn't see any problem with Intel MPI and Intel C compiler which you are using.



Warm Regards,

Abhishek


0 Kudos
AbhishekD_Intel
Moderator
1,879 Views

Hi,


Please update us on your issue related to this thread.


Thank You


0 Kudos
AbhishekD_Intel
Moderator
1,841 Views

Hi,


We are assuming that the solution provided helped and would no longer be monitoring this issue. Please raise a new thread if you have further issues.


Thank You.


0 Kudos
Reply