Open MPI 3.0.0 in MacOS环境配置
家中有两台电脑,一台是MacBook Pro,一台MacMini,使用SSH+Open MPI的方式将两台电脑相连,使用MPI APIs并行计算。
1 SSH登录
首先需要配置两台电脑的ssh,我使用了一个偷懒的方法,每台电脑安装一个Server.app,直接开启SSH登录即可。直接将Server.app安装后,选择这台电脑登录Server,然后在设置中的远程访问中选安全shell连接(SSH)即可。
2 设置IP地址
因为在家中用无线路由上网,就将这两台电脑的IP设为固定IP。
3 设置SSH免密码登录
这个在之前的文章中也提到过关于免密码登录,执行以下命令
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 目标主机
在两台电脑上都执行以上的语句。
4 安装Open MPI
我们直接从软件包安装。当然也可以从brew安装,但是现在是2.1.2版本,还没有升级到3.0.0。
# Get OpenMPI sources
mkdir -p ~/opt/src
cd ~/opt/src
curl "https://www.open-mpi.org/software/ompi/v3.0/downloads/openmpi-3.0.0.tar.gz" \
-o openmpi-3.0.0.tar.gz
tar zxf openmpi-3.0.0.tar.gz
# Create location for OpenMPI
mkdir -p ~/opt/openmpi/openmpi-3.0.0
./configure --prefix=$HOME/opt/openmpi/openmpi-3.0.0
make
make install
整个过程在我的电脑中运行了半个小时以上。
5 配置环境变量
安装完成之后,我们需要配置环境变量。两台电脑使用SSH互相交互信息,但是并没有出现登录窗口,这种登录方式为non-interactive + non-login shell,即非交互非登录的shell。在登录时读取的环境变量文件是~/.bashrc。如果有兴趣可以参考feihu的文章。
编辑~/.bashrc文件并写入如下信息
export PATH=$HOME/opt/openmpi/openmpi-3.0.0/bin:${PATH}
export LD_LIBRARY_PATH=$HOME/opt/openmpi/openmpi-3.0.0/lib:${LD_LIBRARY_PATH}
然后我们需要编辑计算机列表建立文件~/hosts,输入每台电脑的IP地址,并指定每台电脑的slots数
IP1 slots=2
IP2 slots=2
6 测试
进入Open MPI的examples目录进行编译
cd /Users/wangang/opt/src/openmpi-3.0.0/examples
make
运行命令如下:
#测试本级
mpirun -np 4 hello_c
#测试联机
mpirun --hostfile ~/hosts -np 4 hello_c
如果现实Hello, world信息表明安装成功。
欢迎访问我的博客:http://www.histosci.xyz
参考: