Dealii Installtion fails because it uses the wrong MPI Version of the intel compiler. It uses debug_mt instead of release_mt.

102 views
Skip to first unread message

Eva Lilje

unread,
Jul 29, 2018, 12:00:28 PM7/29/18
to deal.II User Group
Dear dealii Team,

the Dealii Installation fails because it uses the wrong MPI Version of the intel compiler. It uses debug_mt instead of release_mt.


=============================================================================== WARNING! Compiling PETSc with no debugging, this should only be done for timing and production runs. All development should be done when configured using --with-debugging=1 ===============================================================================

Looks good, uses the release_mt version of intel mpi 2018 / intel studio 2018

Using PETSc configure options: --prefix=/home/tuamende/deal.ii-candi/petsc-3.9.0 --with-debugging=0 --with-shared-libraries=1 --with-mpi=1 --with-x=0 --with-mpi-dir=/cluster/intel/intel2018/impi/2018.1.163/intel64/ --with-64-bit-indices=0 PETSC_ARCH=linux-gnu-intel --with-debugging=0 --download-hypre=1 --with-blaslapack-dir=/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64 --with-parmetis-dir=/home/tuamende/deal.ii-candi/parmetis-4.0.3 --with-metis-dir=/home/tuamende/deal.ii-candi/parmetis-4.0.3 --download-scalapack=1 --download-mumps=1

#define PETSC_MPICC_SHOW "icc -I/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/include -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib/release_mt -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib -Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker /cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib/release_mt -Xlinker -rpath -Xlinker /cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/2017.0.0/intel64/lib/release_mt -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/2017.0.0/intel64/lib -lmpifort -lmpi -lmpigi -ldl -lrt -lpthread"


But then it decides to use only the debug version, even when the correct intel envs are set:

export I_MPI_LIBRARY_KIND=release_mt

source /cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/bin/mpivars.sh release_mt


Using libraries: -Wl,-rpath,/home/tuamende/deal.ii-candi/tmp/build/slepc-3.9.2/installed-arch-linux2-c-opt/lib -L/home/tuamende/deal.ii-candi/tmp/build/slepc-3.9.2/installed-arch-linux2-c-opt/lib -lslepc -Wl,-rpath,/home/tuamende/deal.ii-candi/petsc-3.9.0/lib -L/home/tuamende/deal.ii-candi/petsc-3.9.0/lib -Wl,-rpath,/home/tuamende/deal.ii-candi/petsc-3.9.0/lib -L/home/tuamende/deal.ii-candi/petsc-3.9.0/lib -Wl,-rpath,/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64 -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64 -Wl,-rpath,/home/tuamende/deal.ii-candi/parmetis-4.0.3/lib -L/home/tuamende/deal.ii-candi/parmetis-4.0.3/lib -Wl,-rpath,/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib/debug_mt -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib/debug_mt -Wl,-rpath,/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib -Wl,-rpath,/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/ipp/lib/intel64 -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/ipp/lib/intel64 -Wl,-rpath,/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64_lin -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64_lin -Wl,-rpath,/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64_lin -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64_lin -Wl,-rpath,/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/tbb/lib/intel64/gcc4.7 -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/tbb/lib/intel64/gcc4.7 -Wl,-rpath,/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/daal/lib/intel64_lin -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/daal/lib/intel64_lin -Wl,-rpath,/cluster/comp/gcc/6.3.0/lib/gcc/x86_64-pc-linux-gnu/6.3.0 -L/cluster/comp/gcc/6.3.0/lib/gcc/x86_64-pc-linux-gnu/6.3.0 -Wl,-rpath,/cluster/comp/gcc/6.3.0/lib64 -L/cluster/comp/gcc/6.3.0/lib64 -Wl,-rpath,/cluster/comp/gcc/6.3.0/lib -L/cluster/comp/gcc/6.3.0/lib -Wl,-rpath,/opt/intel/mpi-rt/2017.0.0/intel64/lib/debug_mt -Wl,-rpath,/opt/intel/mpi-rt/2017.0.0/intel64/lib -lpetsc -lcmumps -ldmumps -lsmumps -lzmumps -lmumps_common -lpord -lscalapack -lHYPRE -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lparmetis -lmetis -lstdc++ -ldl -lmpifort -lmpi -lmpigi -lrt -lpthread -lifport -lifcoremt_pic -limf -lsvml -lm -lipgo -lirc -lgcc_s -lirc_s -lstdc++ -ldl


Which fails the build:

  PETSC has to be compiled against the same MPI library as deal.II but the
  link line of PETSC contains:

/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib/debug_mt/libmpi.so

  which is not listed in MPI_LIBRARIES:

    MPI_LIBRARIES = "/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib/libmpicxx.so /cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib/libmpifort.so /cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib/release_mt/libmpi.so /cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib/libmpigi.a /lib64/libdl.so /lib64/librt.so /lib64/libpthread.so"



Here is the pkgconf:


./PETSc.pc:Libs.private: -L/home/tuamende/deal.ii-candi/petsc-3.9.0/lib -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64 -L/home/tuamende/deal.ii-candi/parmetis-4.0.3/lib -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib/debug_mt -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/ipp/lib/intel64 -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64_lin -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64_lin -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/tbb/lib/intel64/gcc4.7 -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/daal/lib/intel64_lin -L/cluster/comp/gcc/6.3.0/lib/gcc/x86_64-pc-linux-gnu/6.3.0 -L/cluster/comp/gcc/6.3.0/lib64 -L/cluster/comp/gcc/6.3.0/lib -lcmumps -ldmumps -lsmumps -lzmumps -lmumps_common -lpord -lscalapack -lHYPRE -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lparmetis -lmetis -lstdc++ -ldl -lmpifort -lmpi -lmpigi -lrt -lpthread -lifport -lifcoremt_pic -limf -lsvml -lm -lipgo -lirc -lgcc_s -lirc_s -lstdc++ -ldl



My self build petsc on the same cluster knows both mpi versions (release_mt and debug_mt):

./lib/pkgconfig/PETSc.pc:Libs.private: -L/cluster/intel/intel2018/mkl/lib/intel64 -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib/release_mt -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/ipp/lib/intel64 -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64_lin -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64_lin -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/tbb/lib/intel64/gcc4.7 -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/daal/lib/intel64_lin -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/tbb/lib/intel64_lin/gcc4.4 -L/cluster/comp/gcc/6.3.0/lib/gcc/x86_64-pc-linux-gnu/6.3.0 -L/cluster/comp/gcc/6.3.0/lib64 -L/cluster/comp/gcc/6.3.0/lib -L/cluster/intel/intel2018/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib/debug_mt -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lX11 -lifport -lifcoremt_pic -lmpicxx -ldl -lmpifort -lmpi -lmpigi -lrt -lpthread -limf -lsvml -lirng -lm -lipgo -ldecimal -lcilkrts -lstdc++ -lgcc_s -lirc -lirc_s -ldl



Is there something I need to change? I am using Intel compilers_and_libraries_2018.1.163 .

Kind regards 


PS: Please make this group open, some people avoid for privacy reasons to have google accounts. My girlfriend copied this post for me.

Bruno Turcksin

unread,
Jul 30, 2018, 12:19:01 PM7/30/18
to deal.II User Group
Hi,


On Sunday, July 29, 2018 at 12:00:28 PM UTC-4, Eva Lilje wrote:

But then it decides to use only the debug version, even when the correct intel envs are set:

Is there something I need to change? I am using Intel compilers_and_libraries_2018.1.163 .

We simply use FindMPI from CMake to find MPI so you can set the MPI library using -DMPI_CXX_LIBRARIES (see here for all the variables that you can use to set MPI). Note that the name of the functions is slightly different for different versions of CMake so you want to use the documentation of the CMake version that you are using.


PS: Please make this group open, some people avoid for privacy reasons to have google accounts. My girlfriend copied this post for me.
I am not sure what that means. You don't need a google account to subscribe to the mailing list. Do you mean that you cannot use the web interface without a google accounts?

Best,

Bruno

张嘉宁

unread,
Aug 5, 2019, 10:54:58 PM8/5/19
to deal.II User Group
Hi, recently, I have the same problem. When I complie the PETsc, it link the debug_mt/linmpi.so. So I think the reason is that Petsc is complied in Debugging, not Release. So I add the paras when configure the Petsc,--with-debugging=0 and give the opt-paras, COPTFLAG="-O2" CXXOPTFLAG="-O2" FOPTFLAG="-O2". Then the problm is solved.
Reply all
Reply to author
Forward
0 new messages