richdem
richdem copied to clipboard
cmake 3.22.1: MPI not found; will not compile parallel programs for large-scale datasets.
The library that is packaged with WTM is throwing the below errors with OpenMPI 4.1.1 and cmake 3.22.1 on RHEL 8.
-- Found PETSc 3.18.0
Called from: [1] /path/to/WTM/CMakeLists.txt
Entering /path/to/WTM/common/richdem
Called from: [1] /path/to/WTM/CMakeLists.txt
-- Found OpenMP_CXX: -Xpreprocessor -fopenmp /path/to/openmpi-4.1.1_ucx_cuda_11.0.3_support/lib/libmpi.so.40.30.1 -I/path/to/openmpi-4.1.1_ucx_cuda_11.0.3_support/include (found version "4.5")
Called from: [4] /path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindPackageMessage.cmake
[3] /path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake
[2] /path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindOpenMP.cmake
[1] /path/to/WTM/common/richdem/CMakeLists.txt
CMake Warning (dev) at /path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindMPI.cmake:1198 (set):
Policy CMP0126 is not set: set(CACHE) does not remove a normal variable of
the same name. Run "cmake --help-policy CMP0126" for policy details. Use
the cmake_policy command to set the policy and suppress this warning.
For compatibility with older versions of CMake, normal variable
"MPI_CXX_ADDITIONAL_INCLUDE_DIRS" will be removed from the current scope.
Call Stack (most recent call first):
/path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindMPI.cmake:1627 (_MPI_split_include_dirs)
common/richdem/CMakeLists.txt:13 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.
Called from: [3] /path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindMPI.cmake
[2] /path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindMPI.cmake
[1] /path/to/WTM/common/richdem/CMakeLists.txt
-- Could NOT find MPI_CXX (missing: MPI_CXX_WORKS)
Called from: [4] /path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake
[3] /path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake
[2] /path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindMPI.cmake
[1] /path/to/WTM/common/richdem/CMakeLists.txt
-- Could NOT find MPI (missing: MPI_CXX_FOUND)
Called from: [4] /path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake
[3] /path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake
[2] /path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindMPI.cmake
[1] /path/to/WTM/common/richdem/CMakeLists.txt
Entering /path/to/WTM/common/richdem/apps
Called from: [1] /path/to/WTM/common/richdem/CMakeLists.txt
Returning to /path/to/WTM/common/richdem
Called from: [1] /path/to/WTM/common/richdem/CMakeLists.txt
CMake Warning at common/richdem/CMakeLists.txt:26 (message):
MPI not found; will not compile parallel programs for large-scale datasets.
OK so I missed the OpenMP vs OpenMPI with incorrectly setting -DOpenMP_libomp_LIBRARY="/path/to/openmpi-4.1.1_ucx_cuda_11.0.3_support/lib//libompitrace.so.40.30.0
So I changed it to point to /cm/local/apps/gcc/10.2.0/lib/libgomp.so.1.0.0
Here is the current error:
-- Found PETSc 3.18.0
CMake Error at /path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find OpenMP_CXX (missing: OpenMP_libomp_LIBRARY
OpenMP_libomp_LIBRARY) (found version "4.5")
Call Stack (most recent call first):
/path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
/path/to/cmake/cmake-3.22.1-linux-x86_64/share/cmake-3.22/Modules/FindOpenMP.cmake:544 (find_package_handle_standard_args)
common/richdem/CMakeLists.txt:12 (find_package)