先记录在单机MacBook上的搭建,实验室集群的搭建流程是一样的,不过每台机器都需要做一次。
MacBook:
1、安装mpich3:
$ ./configure --prefix=/Users/xin/sftwr/mpich3 --disable-fortran
$ make
$ make install
2、修改环境变量
打开/etc/bashrc
输入:
export MPI=/Users/xin/sftwr/mpich3
export PATH=${PATH}:${MPI}/bin
3、测试是否正确安装
查看命令是否是我们安装目录下的命令
重启终端,输入:
$ which mpiexec
4、用主机名表示ip地址
打开 /etc/hosts,定义 ip 地址和主机名之间的对应关系:
添加:
127.0.0.1 node0
note: 每个主机中都需要添加所有主机的ip,并赋予每个ip相同的名字 (相当于主机名字是主机ip的别名). 主机之间要设置免密码登录,从而才能登录到其它主机运行 mpiexec 进程
5、创建machinefile文件
在 ~/conf/目录中创建文件
输入:
node0
note: 每台主机需要相同的machinefile文件,文件中的名字可以用ip代替
6、测试:计算圆周率
mpiexec -n 3 -machinefile ~/conf/machinefile /Users/xin/sftwr/mpich3-source/examples/cpi
测试结果:
Process 0 of 3 is on xindeMacBook-Pro.local
Process 1 of 3 is on xindeMacBook-Pro.local
Process 2 of 3 is on xindeMacBook-Pro.local
pi is approximately 3.1415926544231318, Error is 0.0000000008333387
wall clock time = 0.004443
7、安装mpi4py
$ sudo python setup.py install
装好Python MPI后,使用dir()函数查看所有的MPI通信函数
from mpi4py import MPI
comm = MPI.COMM_WORLD
dir(comm)
help(comm.Allreduce)
help(comm.allreduce)
实验室集群:
过程基本没有差别,区别只在于hosts文件中需要记录更多的ip地址(以及主机名,可以任意赋予一个名字)
hosts文件内容:
其它问题:
mpich3的更多的命令参数可参看官网文档:http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4-userguide.pdf。
在所有的服务器上运行的mpi版本必须一致,否则也会出错。
有时有些问题是由于防火墙导致的,在运行mpi程序时,我们可以关掉防火墙:
关闭防火墙
#service iptables stop
查看防火墙状态
#service iptables status