Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Dec 17 2021 09:42
    JBlaschke opened #5
  • Jul 25 2021 14:53
    PierreMarchand20 closed #255
  • Apr 09 2021 01:34
    tldahlgren commented #254
  • May 02 2020 14:21
    ernstbrunr51 commented #278
  • Apr 29 2020 20:49
    yurivict opened #278
  • Apr 24 2020 18:55
    ernstbrunr51 closed #277
  • Apr 24 2020 18:55
    ernstbrunr51 commented #277
  • Apr 24 2020 18:04
    poulson commented #277
  • Apr 24 2020 10:34
    ernstbrunr51 opened #277
  • May 14 2019 01:33
    poulson closed #276
  • May 14 2019 01:33
    poulson commented #276
  • May 14 2019 01:30

    poulson on master

    Update README.md (compare)

  • May 14 2019 01:24

    poulson on master

    added logo (compare)

  • May 10 2019 21:37
    jedbrown commented #276
  • May 10 2019 21:25
    poulson commented #276
  • May 10 2019 21:21
    jedbrown commented #276
  • May 10 2019 17:08
    poulson commented #276
  • May 10 2019 17:03
    tesch1 opened #276
  • Apr 10 2019 13:18
    JM1 commented #275
  • Apr 10 2019 13:16
    JM1 synchronize #275
Ryan H. Lewis
@rhl-
can you add message ("MPI_FOUND=${MPI_FOUND}) just below find_package or something
Jeff Hammond
@jeffhammond
not until just now but you can see on the ticket what options i set
Ryan H. Lewis
@rhl-
@jeffhammond according to the docs you need to set MPI_C_LIBRARIES to the list of things to link against.
However, this is likely unrelated to the actual failure.
Jeff Hammond
@jeffhammond
cc is equivalent to mpicc on other platforms
no lib or inc options should be required ever
Ryan H. Lewis
@rhl-
well, the documentation says the variable needs to be set
it doesnt say to what.
Jeff Hammond
@jeffhammond
i have never before needed to set it when i set the MPI compilers
-DMPI_CXX_COMPILER=CC -DMPI_C_COMPILER=cc -DMPI_Fortran_COMPILER=ftn
that should do it
does everywhere else
Ryan H. Lewis
@rhl-
try removing the explicit setting of the include path
Jeff Hammond
@jeffhammond
honestly, at this point, i just want CMake to tell me what the error is
yeah that's where i started and it failed
Ryan H. Lewis
@rhl-
this is the piece of CMake that is giving you a problem:
foreach(MPI_PATH ${MPI_C_INCLUDE_PATH})
if(EXISTS "${MPI_PATH}/mpi.h")
set(MPI_HEADER_PATH ${MPI_PATH})
endif()
endforeach()
Jeff Hammond
@jeffhammond
but i set MPI_C_INCLUDE_PATH such that $MPI_C_INCLUDE_PATH/mpi.h was correct
jhammond@edison12:~> ll $CRAY_MPICH_DIR/include/mpi.h
-rwxr-xr-x 1 root root 127K Jun 27 10:30 /opt/cray/mpt/7.4.1/gni/mpich-cray/8.3/include/mpi.h
Ryan H. Lewis
@rhl-
can you just print ${MPI_PATH}/mpi.h and see what it is?
Jeff Hammond
@jeffhammond
i added the appropriate command at line 69 but it had no effect. i'm trying other things now.
Jeff Hammond
@jeffhammond
what's unfortunate is that the mpi.h existence check is to accommodate OpenMPI's bugs.
Ryan H. Lewis
@rhl-
what do you mean?
what was ${MPI_PATH} set to?
Jeff Hammond
@jeffhammond
look at cmake/detect/MPI.cmake
Ryan H. Lewis
@rhl-
I am..
Jeff Hammond
@jeffhammond
message(STATUS "JEFF: ${MPI_C_INCLUDE_PATH}")
message(STATUS "JEFF: ${MPI_PATH}")
message(STATUS "JEFF: ${MPI_HEADER_PATH}")
gave me
-- JEFF:
-- JEFF:
-- JEFF: MPI_HEADER_PATH-NOTFOUND
Ryan H. Lewis
@rhl-
instead put: message(STATUS "JEFF: ${MPI_PATH}") on line 62
Jeff Hammond
@jeffhammond
but you can see that lines 46-90 are specifically for OpenMPI
Cray MPI (MPICH-based) should not need that
would be better to test if OMPI used and only then look for mpi.h
so my next attempt is to just disable all of that code
Ryan H. Lewis
@rhl-
sure, I was just suggesting to see what that is
might suggest what your problem is.
Jeff Hammond
@jeffhammond
yeah i will debug later once everything else works
Jeff Hammond
@jeffhammond
i got the build working just fine but then i hit Cray compiler ICE. FML
Jeff Hammond
@jeffhammond
back to MPI debugging:
i made it print this out:
-- Jeff: MPI_C_INCLUDE_PATH=
-- Jeff: MPI_HEADER_PATH=MPI_HEADER_PATH-NOTFOUND
this is how i cmaked:
jhammond@edison12:~/ELEMENTAL/git/build-cray> rm -rf * && cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/ELEMENTAL/install-cray -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_COMPILER_ID=Cray -DCMAKE_C_COMPILER_ID=Cray -DCMAKE_Fortran_COMPILER_ID=Cray -DCMAKE_CXX_COMPILER=CC -DCMAKE_C_COMPILER=cc -DCMAKE_Fortran_COMPILER=ftn -DMPI_CXX_COMPILER=CC -DMPI_C_COMPILER=cc -DMPI_Fortran_COMPILER=ftn -DMPI_C_INCLUDE_PATH=$CRAY_MPICH_DIR/include -DMPI_C_COMPILE_FLAGS="" -DMPI_C_LINK_FLAGS="" -DMPI_C_LIBRARIES="" -DCMAKE_CXX_FLAGS="-h std=c++11 -h omp " -DCMAKE_C_FLAGS="-h std=c11 -h omp " -DMATH_LIBS="-L${CRAY_LIBSCI_PREFIX_DIR}/lib -lsci_cray_mpi_mp -lsci_cray_mp " -DEL_HYBRID=TRUE -DEL_DISABLE_PARMETIS=TRUE -DCMAKE_BUILD_TYPE=Debug -DEL_USE_64BIT_INTS=ON -DEL_USE_64BIT_BLAS_INTS=OFF -DINSTALL_PYTHON_PACKAGE=OFF -DEL_DISABLE_QUAD=TRUE
please tell me why -DMPI_C_INCLUDE_PATH=$CRAY_MPICH_DIR/include is not effective
Jeff Hammond
@jeffhammond
so CMake is too dumb to pass arguments down:
-- Jeff: MPI_C_INCLUDE_PATH=/opt/cray/mpt/7.4.1/gni/mpich-cray/8.3/include
-- Unable to determine MPI from MPI driver /opt/cray/craype/2.5.5/bin/cc
-- Found MPI_C: /opt/cray/craype/2.5.5/bin/cc
-- Unable to determine MPI from MPI driver /opt/cray/craype/2.5.5/bin/CC
-- Found MPI_CXX: /opt/cray/craype/2.5.5/bin/CC
-- Performing Test EL_HAVE_MPI_REDUCE_SCATTER
-- Performing Test EL_HAVE_MPI_REDUCE_SCATTER - Success
-- Jeff: MPI_C_INCLUDE_PATH=
-- Jeff: MPI_HEADER_PATH=MPI_HEADER_PATH-NOTFOUND
first message is in CMakeLists.txt, second and third are in cmake/detect/MPI.cmake
Jack Poulson
@poulson
@jeffhammond I frequently have needed to fully specify the full list of MPI variables to CMake (I think the include and library directories) rather than just the MPI compilers
Jeff Hammond
@jeffhammond
it's clear from the debug messages i added that CMake is not passing MPI_C_INCLUDE_PATH. i see no explanation for that. why would adding other variables cause CMake to handle that one properly?
Jack Poulson
@poulson
and you wiped your build directory before the invocation that you specified MPI_C_INCLUDE_PATH?
Jeff Hammond
@jeffhammond
i have not invoked cmake without rm -rf * in years ;-)
Jack Poulson
@poulson
did you also specify MPI_C_LIBRARIES?
Jeff Hammond
@jeffhammond
no, because it should not be necessary, because i am using the wrappers
Jack Poulson
@poulson
I think you might need to do both
Jeff Hammond
@jeffhammond
i have never had to specify them before. ever.
Jack Poulson
@poulson
the FindMPI documentation says to set both
it's possible there is an if statement that only propagates MPI_C_INCLUDE_PATH if MPI_C_LIBRARIES is also defined