[Trilinos-Users] [EXTERNAL] MPI_C_COMPILER conflict with CMAKE_C_COMPILER

Phipps, Eric T etphipp at sandia.gov
Wed Jul 3 08:48:19 MDT 2013


You should be able to set the CMAKE_C_COMPILER and CMAKE_CXX_COMPILER as the MPI compilers, e.g.,

-D CMAKE_C_COMPILER:FILEPATH=/opt/intel/impi/4.1.1/intel64/bin/mpiicc \
-D CMAKE_CXX_COMPILER:FILEPATH=/opt/intel/impi/4.1.1/intel64/bin/mpiicpc \

That is how we typically build Trilinos with MPI.  Note that cross-compiling for the Xeon Phi is not well supported by cmake.  I did this a few months ago and found I had to add these flags as well to avoid various configure errors:

 -D CMAKE_CXX_FLAGS:STRING="-mmic" \
 -D CMAKE_C_FLAGS:STRING="-mmic" \
 -D Trilinos_ENABLE_Fortran:BOOL=OFF \
 -D BLAS_LIBRARY_DIRS:FILEPATH="${MKLROOT}/lib/mic" \
 -D BLAS_LIBRARY_NAMES="mkl_intel_lp64;mkl_sequential;mkl_core;pthread;m" \
 -D HAVE_GCC_ABI_DEMANGLE_EXITCODE=0 \
 -D HAVE_TEUCHOS_BLASFLOAT_EXITCODE=0 \
 -D LAPACK_SLAPY2_WORKS_EXITCODE=0 \

As this was a few months ago, I can't guarantee it is still works.

-Eric

From: Fan YE <yefanhust at gmail.com<mailto:yefanhust at gmail.com>>
Date: Wednesday, July 3, 2013 7:46 AM
To: "trilinos-users at software.sandia.gov<mailto:trilinos-users at software.sandia.gov>" <trilinos-users at software.sandia.gov<mailto:trilinos-users at software.sandia.gov>>
Subject: [EXTERNAL] [Trilinos-Users] MPI_C_COMPILER conflict with CMAKE_C_COMPILER

Hello everyone,

I'm trying to install Trilinos with MPI enabled in a workstation equipped with Intel Xeon Phi coprocessors.

I want to use intel compilers and intel MPI compiler wrappers, so I wrote my do-configure as follow:

 cmake \
    -D CMAKE_BUILD_TYPE:STRING=DEBUG \
    -D Trilinos_ENABLE_TESTS:BOOL=ON \
    -D TPL_ENABLE_MPI:BOOL=ON \
    -D MPI_USE_COMPILER_WRAPPERS:BOOL=ON \
    -D MPI_C_COMPILER:FILEPATH=/opt/intel/impi/4.1.1/intel64/bin/mpiicc \
    -D MPI_CXX_COMPILER:FILEPATH=/opt/intel/impi/4.1.1/intel64/bin/mpiicpc \
    -D CMAKE_C_COMPILER:FILEPATH=/opt/intel/composerxe/bin/icc \
    -D CMAKE_CXX_COMPILER:FILEPATH=/opt/intel/composerxe/bin/icc \
    -D CMAKE_C_FLAGS:STRING="-mkl" \
    -D CMAKE_CXX_FLAGS:STRING="-mkl" \
    ...

So the idea here is dealing all with Intel products.
However, when I finished configuring Trilinos, I always got such Cmake Warning:

Manually-specified variables were not used by the project:

    MPI_CXX_COMPILER
    MPI_C_COMPILER

It seems that the mpi compiler wrappers are not taken into account. The result of trying to "make" confirms this judge:

/home/fye/tmp/trilinos-11.2.4/trilinos-11.2.4-Source/packages/teuchos/core/src/Teuchos_Time.hpp(56): catastrophic error: cannot open source file "mpi.h"
  #include "mpi.h"
                  ^
Apparently, the wrappers are not working in this case.

Any one has any idea about this?

Thank you in advance for any comments.

Best regards,
Fan





-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://software.sandia.gov/pipermail/trilinos-users/attachments/20130703/2090f847/attachment.html 


More information about the Trilinos-Users mailing list