ornladios / ADIOS2

Next generation of ADIOS developed in the Exascale Computing Program
https://adios2.readthedocs.io/en/latest/index.html
Apache License 2.0
265 stars 121 forks source link

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

Open lwan86 opened 3 years ago

lwan86 commented 3 years ago

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 commented 3 years ago

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

lwan86 commented 3 years ago

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")

chuckatkins commented 3 years ago

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
lwan86 commented 3 years ago

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
vicentebolea commented 3 years ago

@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.