本文参考自mpich2在两台ubuntu上的安装,并对其中过期的内容进行更新,针对mpich3。
首先打开官方下载网站,根据自己的发行版本选择,我在Vmware下安装了两台新的Ubuntu 14.04,一台master,一台slave就行实验环境的搭建。(为节省安装时间,可以先安装master->安装mpich,再复制虚拟机为salve,因为复制的缘故,用户名都是master,也没关系,就当做是专门执行mpich程序的用户吧)
- 下载最新版本:
cwget http://www.mpich.org/static/downloads/3.2/mpich-3.2.tar.gz[/c]
- 解压到本地目录并进入:
ctar xzvf mpich-3.2.tar.gz[/c]
ccd mpich-3.2[/c]
- 执行配置shell生成Makefile (此处安装在master用户的mpich目录下,你可以相应的更改;并且不适用fortran):
c ./configure --prefix=/home/master/mpich --disable-fortran[/c]
- make编译(如果没有此命令,执行apt-get install make -y即可):
cmake 2&1 |tee make.log[/c]
- 安装程序(保存输出日志便于查看安装位置):
cmake install |tee makeinstall.log[/c]
- 添加永久的环境变量:
cvim /etc/environment[/c]
添加:
csource /etc/environment[/c]
- 查看安装是否成功:
cwhich mpicc[/c]
cwhich mpiexec[/c]
- 查看版本信息:
cmpicc -v[/c]
- 执行测试程序:
在解压的安装包里面,找到examples目录,为了方便可以复制到master家目录的examples下;
在家目录下执行:
cmpiexec -n 1 examples/cpi[/c]
这是一个计算圆周率的程序,如果一切就绪,就可以看到正常的计算结果.
-
另外还需要设置无密码的ssh登录,让master的mpd可以顺利访问到其他节点(本文为一个slave):参考这篇文章
-
之后测试集群环境:
ccd ~[/c]
cvim mpd.hosts[/c]
添加(node1为master,冒号后面的2表示此机器可以执行两个进程,可以自行设置):
cnode1:2[/c]
cnode2:2[/c]
添加hosts信息:
cvim /etc/hosts[/c]
添加:
c your_master_ip node1[/c]
c your_slave_ip node2[/c]
之后可以互ping一下。
现在可以正式测试了:
cmpiexec -f mpd.hosts -n 2 examples/cpi[/c]
可以看到有两个节点都在运行这个程序,如果出现retrun 255的代码,并且看到file not found,应该是没有在slave上面添加可执行文件,通过scp可以完成,格式为:
cscp examples/cpi master@node2:~/examples/[/c]
也即把本地的cpi文件传到node2的examples下,之后就可以执行成功了。