MPI并行计算环境搭建以及集群测试
2013-06-04 11:48
519 查看
转自:http://wuyanzan60688.blog.163.com/blog/static/12777616320132851924235/
MPI作为一种通过消息传递进行并行计算的框架,在很多科学计算上有很重要的应用,这次因为GraphLab环境搭建时的需要,花了三个来小时的时间进行了初步的搭建摸索,感觉很有意思!首先是单机MPI安装
1.安装之前
因为是集群测试,所以跟hadoop一样先要设置ssh无密钥登录(可以参考这里),我这里用的是一个服务器节点和一台虚拟机。
上面给出的链接里对ssh无密钥登录设置说的很清楚。
2.开始安装
源码下载地址,这里我用的是1.0.8(mpich命名很怪气,明明是v2,它却命名是1,无力吐槽)
mpich2-1.0.8.tar.gz
单机安装很简单
#tar -zxvf mpich2-1.0.8.tar.gz
#./configure (我让它默认安装到/usr/local/bin下,不需要设置安装路径)
#make
#make install
注意:对于集群的每一个机器都要安装,当然你如果用NFS挂载也可以,我没这样用。
安装完成之后最重要的一步有人说是设置环境变量,其实你默认安装路径的话,这个变量设置与否无所谓的。因此最重要的一步是创建配置文件(mpd.conf)。
#touch /etc/mpd.conf
#chmod 600 /etc/mpd.conf
#echo secretword=myword >> /etc/mpd.conf
到此为止,单机安装就算完成了,可以进行单机测试
# mpd &
[1]4457
# mpdtrace
vm4
# mpdallexit
3.集群部署
集群部署就多一步,只需要在主机种创建集合文件(mpd.hosts),文件地方无所谓,内容为集群的hostname列表。
node9 #主服务器
vm4 #子节点
在主机中测试部署是否成功:
# mpdboot -n 2 -f /root/mpd.hosts
# mpdtrace
node9
vm4
说明部署成功。
4.样例测试
icpi是已经经过编译的可执行文件,用于计算pi的值。(注意这里服务器和子节点中icpi放的地方要相同)
单机:
# ./icpi
Enter the number of intervals:(0 quits)10000000000
pi is approximately 3.1415926535895782,Erroris0.0000000000002149
wall clock time =45.378959
Enter the number of intervals:(0 quits)1000
pi is approximately 3.1415927369231227,Erroris0.0000000833333296
wall clock time =0.000149
集群:
[root@node9 wyztest]# mpiexec -n 2 ./icpi
Enter the number of intervals:(0 quits)10000000000
pi is approximately 3.1415926535895737,Erroris0.0000000000002194
wall clock time =22.696655
Enter the number of intervals:(0 quits)0
Enter the number of intervals:(0 quits)1000
pi is approximately 3.1415927369231254,Erroris0.0000000833333322
wall clock time =0.001589
测试结果表明:对于间隔比较大时,明显集群快,但是间隔很小时,由于消息传递机制本身会耗时,因此集群效率不如单机。
部分参考资料链接: http://blog.sina.com.cn/s/blog_5daeb2750100z3qx.html http://blog.csdn.net/logwt/article/details/7325314
/article/5672521.html http://blog.csdn.net/ngvjai/article/details/8000045
补充:(可能会出现的问题,这是我在再次部署的时候出现的问题,第一次部署的时候太顺利了,因此没有出现问题,第二次再部署的时候出现了如下四个问题。)
问题1
/usr/local/bin/mpdlib.py:8:DeprecationWarning:The popen2 moduleis deprecated.Use the subprocess module.
import sys, os, signal, popen2, socket,select, inspect
/usr/local/bin/mpdlib.py:15:DeprecationWarning: the md5 moduleis deprecated;use hashlib instead
from md5 importnewas md5new
原因:python版本太高了,python2.6开始都不支持popen2模块,转而用subprocess模块代替,因此会出现这个错误。
解决办法是降低python的版本,转到python2.5之后就可以了。(源码下载)
问题2
#ssh node2
ssh: node2: Temporary failure in name resolution
#ssh 192.168.169.2 则成功
原因:/etc/hosts中配置不完全
解决办法:两端都需要配置如下:
192.168.168.9 node9
192.168.169.2 node2
问题3
[root@node9 source]# mpdboot -n 2 -f /root/mpd.hosts
mpdboot_node9 (handle_mpd_output 401): failed to connect to mpd on node2
原因:防火墙的问题,node2中防火墙禁止node9进行mpd连接
解决办法:我直接将node2中端口关掉了
[root@node2 .ssh]# iptables -F
[root@node2 .ssh]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
或者你可以参考这里,这个连接的第二个问题就是教你如何解决防火墙禁止mpd访问的。
问题4
mpiexec_node9 (mpiexec 392):no msg recvd from mpd when expecting ack of
相关文章推荐
- MPI并行计算环境搭建以及集群测试
- Windows 7系统下搭建MPI(并行计算)环境
- docker搭建linux集群,搭建mpi环境,并使用MTT benchmark测试集群性能
- Windows 7系统下搭建MPI(并行计算)环境
- Ubuntu下搭建MPI并行计算环境
- Windows系统下搭建MPI(并行计算)环境<转>
- ubuntu下搭建MPI并行计算环境
- Windows系统下搭建MPI(并行计算)环境
- Windows环境下MPI并行计算联机测试配置
- Windows系统下搭建MPI(并行计算)环境
- Windows系统下搭建MPI(并行计算)环境
- Windows系统下搭建MPI(并行计算)环境
- Linux多节点下MPI集群环境搭建
- 【Hadoop】hadoop2.7完全分布式集群搭建以及任务测试
- 搭建Spark的maven本地windows开发环境以及测试
- R语言中的并行计算——二、搭建R的集群
- windows visual studio 2012下MPI并行环境搭建
- MongoDB分片集群环境搭建好后简单的创建和测试数据库表
- 手把手教你搭建智能合约测试环境、开发、编译、部署以及如何通过JS调用合约方法