Skip to content

MPI not detected on gadi by cmake #13

@manodeep

Description

@manodeep

Following the instructions to install and running build.sh results in an error about detecting the MPI package (even though that module is loaded by build.sh).

[~/temp/libaccessom2 @gadi04] ./build.sh 
build.sh: Set up environment on gadi.nci.org.au
build.sh: executing cmake with $PATH set to: /apps/openmpi/wrapper/fortran:/apps/openmpi/wrapper:/apps/openmpi/4.0.2/bin:/apps/netcdf/4.7.4/bin:/apps/intel-ct/wrapper:/apps/intel-ct/2019.5.281/compiler/bin:/home/593/ms2335/.vscode-server/cli/servers/Stable-138f619c86f1199955d53b4166bef66ef252935c/server/bin/remote-cli:/home/593/ms2335/codes/climate_models/mkmf/bin:/home/593/ms2335/.local/bin:/home/593/ms2335/bin:/opt/pbs/default/bin:/opt/nci/bin:/opt/bin:/opt/Modules/v4.3.0/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin

-- The Fortran compiler identification is Intel 19.0.5.20190815
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Check for working Fortran compiler: /apps/intel-ct/wrapper/ifort - skipped
---- PROJECT_VERSION: '2.0.202212'
---- FQDN: gadi-login-04.gadi.nci.org.au
---- NUMBER_OF_LOGICAL_CORES: 48
-- Could NOT find MPI_Fortran (missing: MPI_Fortran_F77_HEADER_DIR MPI_Fortran_MODULE_DIR) (found version "3.1")
CMake Error at /half-root/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find MPI (missing: MPI_Fortran_FOUND) (found version "3.1")
Call Stack (most recent call first):
  /half-root/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /half-root/usr/share/cmake/Modules/FindMPI.cmake:1837 (find_package_handle_standard_args)
  CMakeLists.txt:34 (find_package)


-- Configuring incomplete, errors occurred!

Based on previous discussions, this is likely a known issue but the fix for MPI is to include the CMAKE_PREFIX_PATH into the cmake command:

-cmake -S ${PROJDIR} -B ${BUILDDIR} && \
+cmake -S ${PROJDIR} -B ${BUILDDIR} -DCMAKE_PREFIX_PATH=$OMPI_ROOT/include/Intel && \

With this patch, the MPI compilers are found correctly

[~/temp/libaccessom2 @gadi04] git diff
diff --git a/build.sh b/build.sh
index 78fa4e4..1a3c5d7 100755
--- a/build.sh
+++ b/build.sh
@@ -18,5 +18,5 @@ echo -e "${PROGNAME}: executing cmake with \$PATH set to: $PATH\n"
 
 rm -rf ${BUILDDIR} && \
 mkdir -p ${BUILDDIR} && \
-cmake -S ${PROJDIR} -B ${BUILDDIR} && \
+cmake -S ${PROJDIR} -B ${BUILDDIR} -DCMAKE_PREFIX_PATH=$OMPI_ROOT/include/Intel && \
 cmake --build ${BUILDDIR} --verbose
[~/temp/libaccessom2 @gadi04] ./build.sh 
build.sh: Set up environment on gadi.nci.org.au
build.sh: executing cmake with $PATH set to: /apps/openmpi/wrapper/fortran:/apps/openmpi/wrapper:/apps/openmpi/4.0.2/bin:/apps/netcdf/4.7.4/bin:/apps/intel-ct/wrapper:/apps/intel-ct/2019.5.281/compiler/bin:/home/593/ms2335/.vscode-server/cli/servers/Stable-138f619c86f1199955d53b4166bef66ef252935c/server/bin/remote-cli:/home/593/ms2335/codes/climate_models/mkmf/bin:/home/593/ms2335/.local/bin:/home/593/ms2335/bin:/opt/pbs/default/bin:/opt/nci/bin:/opt/bin:/opt/Modules/v4.3.0/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin

-- The Fortran compiler identification is Intel 19.0.5.20190815
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Check for working Fortran compiler: /apps/intel-ct/wrapper/ifort - skipped
---- PROJECT_VERSION: '2.0.202212'
---- FQDN: gadi-login-04.gadi.nci.org.au
---- NUMBER_OF_LOGICAL_CORES: 48
-- Found MPI_Fortran: /apps/openmpi/4.0.2/lib/Intel/libmpi_usempif08.so (found version "3.1") 
-- Found MPI: TRUE (found version "3.1")  
---- MPI_Fortran_COMPILER: /apps/openmpi/4.0.2/bin/mpif90
---- CMAKE_Fortran_COMPILER: /apps/openmpi/4.0.2/bin/mpif90

(The build then fails because it can't find the other dependencies but that's a separate issue)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions