cmake - CMake:在 openmpi 上选择 mpich
问题描述
我正在使用 cmake 3.10.2。我安装了 openmpi 和 mpich。但是我只需要加载 mpich。所以我从文档中发现了以下内容
附加到正在查找的所有名称的后缀。例如,您可以将其设置为 .mpich 或 .openmpi 以更喜欢 Debian 及其衍生产品中的一个或另一个。
我的 CMake 文件是这样的
set(MPI_EXECUTABLE_SUFFIX ".mpich")
FIND_PACKAGE(MPI REQUIRED)
INCLUDE_DIRECTORIES(${MPI_INCLUDE_DIRS})
LINK_DIRECTORIES(${MPI_LIBRARY_DIRS})
message(${MPI_INCLUDE_PATH})
然而这表明
/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi/usr/lib/x86_64-linux-gnu/openmpi/include...
我哪里错了。你能帮我解决这个问题吗
还
mpicc -show
gcc -I/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi -I/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi/opal/mca/event/libevent2022/libevent -I/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi/opal/mca/event/libevent2022/libevent/include -I/usr/lib/x86_64-linux-gnu/openmpi/include -pthread -L/usr//lib -L/usr/lib/x86_64-linux-gnu/openmpi/lib -lmpi
mpicc.mpich -show
gcc -Wl,-Bsymbolic-functions -Wl,-z,relro -I/usr/include/mpich -L/usr/lib/x86_64-linux-gnu -lmpich
解决方案
最好是使用模块在 openmpi 和 mpich 之间切换:
$ module load mpich
$ module unload mpich
$ module load openmpi
推荐阅读
- python-3.x - 如何在 Sublime Text 3 上运行 Python 代码?,只是好奇
- python - 支持向量机分类默认阈值
- java - 在 Java 中不使用 Array.toString 打印 String 中的数组
- ruby - ruby -rdebug 不会在断点处停止
- php - 如何在 Laravel 干预中设置上传图像中的图像分辨率
- c# - 使用 CMD 从客户端主机备份 MySQL 数据库
- javascript - 如何简化基于多重条件的函数打印
- sql - Postgresql“列必须出现在 GROUP BY 子句中或在聚合函数中使用”和唯一字段
- python - Ckeditor texteditor 没有出现在应用 RichTextfield 的 django admin 中
- azure-devops - 有什么方法可以在发布管道中获取任务名称以根据条件执行特定任务