1:去官网上下载open-mpi安装包
https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.1.tar.gz 下载最新的版本
2:解压,将下载的包移动到 /Users/用户名/ 下
tar zxvf openmpi-4.0.1.tar.gz
3: 安装
cd openmpi-4.0.1
将openmpi安装在 /usr/local下,你会发现这个目录下有很多你安装的东西,比如 homebrew --enable-mpi-cxx是支持Mpi可以编译c++代码,要是不加这个,在之后编译c++的时候就会报错 找不到MPI这个头文件
对应的解释在这个下面文档解释的很好
./configure --prefix=/usr/local --enable-mpi-cxx
这个过程大约需要3分钟
4:make是mac自带的命令,所以可以用这个来编译mpi所需要的依赖和库
make all
这个过程大约需要10分钟
5:安装Mpi sudo make install
6: 到这里,mpicc mpicxx mpirun这两个命令就可以用了
mpicc 是用来编译c代码的 比如你可以进到examples文件夹下面,mpicc hello_c.c 就会生成a.out文件,然后用mpirun 执行下这个编译好的文件 mpirun -np 4 a.out
正常就会像上面的输出一样,但是如果是低配版本的mac的话,会报错下面这样
是你的核太少了,那就 mpirun -np 2 a.cout 就行
其中mpicxx是用来编译c++代码的,如果你有c++的话,可以试试 mpicxx hello_cxx.cc
7:新建个clion工程,因为前面一篇博客已经讲解了gcc编译器的配置,所有新建个工程后,里面只有两个文件需要注意
一是 CMakeLists.txt
# cmake的最低要求版本
cmake_minimum_required(VERSION 3.5)
# project的名字
project(Test)
# 设置c++的标准库版本
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
# 前面已经安装好openmpi了,使用下面命令自动找到mpi需要的包 的 路径
find_package(MPI REQUIRED)
# 然后设置到 依赖中去
include_directories(${MPI_INCLUDE_PATH})
# 设置c++ c编译的命令
SET(CMAKE_CXX_COMPILER mpicxx)
SET(CMAKE_C_COMPILER mpicc)
# 将main.cpp加入到可执行文件中去
set(SOURCE_FILES main.cpp)
add_executable(Test ${SOURCE_FILES})
main.cpp
#include "mpi.h"
#include "iostream"
int main(int argc, char** argv){
//初始化MPI环境
MPI_Init(NULL, NULL);
//获取进程数
int world_size;
MPI_Comm_size(MPI_COMM_WORLD, &world_size);
//获取进程的等级
int world_rank;
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
//获取进程的名字
char processor_name[MPI_MAX_PROCESSOR_NAME];
int name_len;
MPI_Get_processor_name(processor_name, &name_len);
//打印helloworld
printf("Hello world from processor %s, rank %d out of %d processors\n",processor_name, world_rank, world_size);
//关闭MPI环境
MPI_Finalize();
}
接下来就可以点Run按钮,执行这个程序