ADIOS2 icon indicating copy to clipboard operation
ADIOS2 copied to clipboard

cmake couldn't find intel mpi on TACC's frontera

Open lwan86 opened this issue 4 years ago • 5 comments

I tried to build ADIOS2 on TACC's frontera where the impi/19.0.9 is used. It seems cmake couldn't find that version of MPI. @chuckatkins

lwan86 avatar Jan 19 '21 16:01 lwan86

I also tried explicitly specifying the MPI_ROOT in cmake command, still couldn't find it

lwan86 avatar Jan 19 '21 16:01 lwan86

It seems the MPI Fortran cannot be found by cmake.

-- Found MPI_C: /opt/intel/compilers_and_libraries_2020.4.304/linux/mpi/intel64/lib/release/libmpi.so (found version "3.1") -- Found MPI_CXX: /opt/intel/compilers_and_libraries_2020.4.304/linux/mpi/intel64/lib/libmpicxx.so (found version "3.1") -- Could NOT find MPI_Fortran (missing: MPI_Fortran_WORKS) -- Could NOT find MPI (missing: MPI_Fortran_FOUND Fortran) (found version "3.1")

lwan86 avatar Jan 19 '21 16:01 lwan86

Can you try explicitly setting the compiler vars:

$ export CC=icc CXX=icpc FC=ifort
$ cmake ../../source/master
-- The C compiler identification is Intel 19.1.0.20200306
-- The CXX compiler identification is Intel 19.1.0.20200306
-- Check for working C compiler: /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/icc
-- Check for working C compiler: /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/icc -- works
...
-- Check for working CXX compiler: /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/icpc
-- Check for working CXX compiler: /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/icpc -- works
...
-- Looking for a Fortran compiler
-- Looking for a Fortran compiler - /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/ifort
-- The Fortran compiler identification is Intel 19.1.0.20200306
-- Check for working Fortran compiler: /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/ifort
-- Check for working Fortran compiler: /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/ifort  -- works
...
-- Found MPI_C: /opt/intel/compilers_and_libraries_2020.4.304/linux/mpi/intel64/lib/libmpifort.so (found version "3.1") 
-- Found MPI_CXX: /opt/intel/compilers_and_libraries_2020.4.304/linux/mpi/intel64/lib/libmpicxx.so (found version "3.1") 
-- Found MPI_Fortran: /opt/intel/compilers_and_libraries_2020.4.304/linux/mpi/intel64/lib/libmpifort.so (found version "3.1") 
-- Found MPI: TRUE (found version "3.1") found components: C Fortran CXX 
...
ADIOS2 build configuration:
  ADIOS Version: 2.7.0.45
  C++ Compiler : Intel 19.1.0.20200306 
    /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/icpc

  Fortran Compiler : Intel 19.1.0.20200306 
    /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/ifort

  Installation prefix: /usr/local
        bin: bin
        lib: lib64
    include: include
      cmake: lib64/cmake/adios2
     python: lib/python3.7/site-packages

  Features:
    Library Type: shared
    Build Type:   Release
    Testing: ON
    Examples: ON
    Build Options:
      Blosc     : OFF
      BZip2     : ON
      ZFP       : OFF
      SZ        : OFF
      MGARD     : OFF
      PNG       : OFF
      MPI       : ON
      DataMan   : OFF
      Table     : OFF
      SSC       : ON
      SST       : ON
      DataSpaces: OFF
      ZeroMQ    : OFF
      HDF5      : ON
      HDF5_VOL  : OFF
      IME       : OFF
      Python    : ON
      Fortran   : ON
      SysVShMem : ON
      Profiling : ON
      Endian_Reverse: OFF
    RDMA Transport for Staging: Unconfigured
-- Configuring done
-- Generating done
-- Build files have been written to: /home1/02743/catkins3/Code/adios2/build/master

chuckatkins avatar Jan 19 '21 19:01 chuckatkins

I tried, but got this error:

cmake -DCMAKE_INSTALL_PREFIX=/work/07648/lwan86/frontera/Software/adios2/master/install ../ADIOS2/ -- The C compiler identification is unknown -- The CXX compiler identification is unknown -- Check for working C compiler: /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/icc -- Check for working C compiler: /opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/icc -- broken CMake Error at /opt/apps/cmake/3.16.1/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake:60 (message): The C compiler

"/opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/icc"

is not able to compile a simple test program.

It fails with the following output:

Change Dir: /work/07648/lwan86/frontera/Software/adios2/master/build/CMakeFiles/CMakeTmp

Run Build Command(s):/bin/gmake cmTC_13e57/fast && /bin/gmake -f CMakeFiles/cmTC_13e57.dir/build.make CMakeFiles/cmTC_13e57.dir/build
gmake[1]: Entering directory `/work/07648/lwan86/frontera/Software/adios2/master/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_13e57.dir/testCCompiler.c.o
/opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/icc    -o CMakeFiles/cmTC_13e57.dir/testCCompiler.c.o   -c /work/07648/lwan86/frontera/Software/adios2/master/build/CMakeFiles/CMakeTmp/testCCompiler.c
Catastrophic error: could not set locale "" to allow processing of multibyte characters

compilation aborted for /work/07648/lwan86/frontera/Software/adios2/master/build/CMakeFiles/CMakeTmp/testCCompiler.c (code 4)
gmake[1]: *** [CMakeFiles/cmTC_13e57.dir/testCCompiler.c.o] Error 4
gmake[1]: Leaving directory `/work/07648/lwan86/frontera/Software/adios2/master/build/CMakeFiles/CMakeTmp'
gmake: *** [cmTC_13e57/fast] Error 2

lwan86 avatar Jan 19 '21 20:01 lwan86

@lwan86 this final error seems to be related to the locales of your system. See this answer (https://stackoverflow.com/questions/13385780/i-am-not-able-to-compile-with-mpi-compiler-with-c).

On the other hand I will solely export the fortram compiler since by default your system is picking up icc and icpc.

vicentebolea avatar Jun 14 '21 22:06 vicentebolea