错误原因
我用的版本是centos7及mpich-3.2。在搭建mpi并行计算时,按照很多教程说的使用mpd,但是遇到了bash:mpd:command not found错误(见下图),我尝试着去装mpd,未果;也确定了自己的配置没有问题,后面才想到可能是mpich版本的问题,因为大部分的教程都是基于mpich2的,需要用mpd命令创建一个虚拟的并行运行环境,mpich3之后就不要了。
从3.0版本以后的mpich简化了运行方式,使用时不再需要输入mpd开头命令,只需要一个mpiexec/mpirun即可启动mpi运行环境,方便了mpi编程。
mpd不需要管,接下来看看新版本(mpich-3.2为例子)怎么样进行测试
单节点测试
进入examples目录(cd mpich-3.2/examples),输入ls指令查看可用于测试的程序
我们用cpi这个程序进行测试,输入命令(mpiexec)
# mpiexec -np 4 ./cpi
得到在node1节点下的结果如下,出现这个结果证明我们的运行环境正确。关于环境的配置后续会出新的文章~~
或者用下面这个指令(mpirun)也可以
# mpirun -np 3 ./cpi
结果如下
接下来看看多节点怎么样配置。
多节点测试
这个时候需要我们与其他的节点进行互访,所以要用到之前配置好的nfs挂载文件系统,我的路径是/data/share,根据自己的路径来改代码
首先在/data/share/mpich目录下新建一个配置文件servers用于存放并行计算的节点,写入如下内容(命令:touch /data/share/mpich/servers)
# touch /data/share/mpich/servers
打开servers文件
# vim /data/share/mpich/servers
写入节点(我这里都是在节点上运行一个进程,如果要两个或多个,可以写为 node1:2。另,若有多个节点,依次写入即可)
将mpich-3.2下的examples拷贝到data/share/mpich目录下(命令:cp -r ./examples /data/share/mpich/)用于与node2、node3共享,否则会报出在node2、node3下没有这个目录的错误
# cp -r ./examples /data/share/mpich/
最后,在root下输入下面的指令执行程序cpi
# mpiexec -np 3 -f /data/share/mpich/servers /data/share/mpich/examples/cpi
可以看到三个节点上都分别运行了一个进程。到此错误解决,实验成功结束~~~~~