4

在 vanilla CentOS 7 机器上,我安装了 OpenMPI(库存版),并且做了:

module load mpi

将 MPI 内容加载到环境中。在此设置下,cmake(我尝试了 2.8 和最新的 3.12)似乎找不到 MPI。知道如何解决这个问题吗?谢谢

-- Could NOT find MPI_C (missing: MPI_C_LIB_NAMES MPI_C_HEADER_DIR MPI_C_WORKS) 
-- Could NOT find MPI_CXX (missing: MPI_CXX_LIB_NAMES MPI_CXX_HEADER_DIR MPI_CXX_WORKS) 
CMake Error at /home/f7b/spack/opt/spack/linux-centos7-x86_64/gcc-4.8.5/cmake-3.12.2-25n7srkgvu3elwswze6dckezvfkxqks7/share/cmake-3.12/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find MPI (missing: MPI_C_FOUND MPI_CXX_FOUND)
Call Stack (most recent call first):
  /home/f7b/spack/opt/spack/linux-centos7-x86_64/gcc-4.8.5/cmake-3.12.2-25n7srkgvu3elwswze6dckezvfkxqks7/share/cmake-3.12/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  /home/f7b/spack/opt/spack/linux-centos7-x86_64/gcc-4.8.5/cmake-3.12.2-25n7srkgvu3elwswze6dckezvfkxqks7/share/cmake-3.12/Modules/FindMPI.cmake:1666 (find_package_handle_standard_args)
  CMakeLists.txt:27 (find_package)
4

3 回答 3

3

在运行 cmake 之前将 /usr/lib64/openmpi/bin/ 附加到 PATH 对我有用。

于 2019-08-21T11:08:32.053 回答
2
  • 你安装了openmpi-devel吗?
  • 当你做“which mpicc”时你会得到什么?
  • 你可以在做后重试:

    导出 MPI_C=`哪个 mpicc`

    导出 MPI_CXX=`哪个 mpicxx`

  • 这也可能是由于“spack”对环境进行了消毒。所以可能想尝试“spack install --dirty ...”或者将openmpi首选项放在packages.yaml中

  • 另外,我猜想缺少的环境变量应该对应于或在以下路径下找到:

    模块显示 mpi

于 2018-10-30T23:31:24.573 回答
1

尝试 cmake 3.9 版。当我使用 MPI 和 Intel Parallel Suite 构建Lampps时,我使用 cmake 3.9 解决了这个问题,而 3.10 仍然存在这个问题。这里有一些讨论。

于 2019-08-21T08:48:04.443 回答