目前运行mpi程序时,遇到如下问题:
1.运行mpirun -n 4 test
cannot connect to local mpd (/tmp/mpd2.console_balay); possible causes: 1. no mpd is running on this host 2. an mpd is running but was …
采用mpdboot命令尝试打开mpd时又遇到如下问题:
mpd failed to start correctly on duanple-desktop reason: 0 invalid port from mpd configration file /home/duanple/.mpd.conf not found
解决方法如下:
cd $HOME
touch .mpd.conf
chmod 600 .mpd.conf
然后运行 mpdboot 即可。
2.运行mpirun -n 4 test无法显示printf的打印内容
解决方法采用test的全路径,即mpirun -n 4 /home/duanple/test
就显示了
想停止并行运行环境
mpdcleanup
下面是其他的命令
mpdexit mpdringtest mpiexec
mpartition mpd mpdroot mpif77
mpdallexit mpdhelp mpdrun mpirun
mpdboot mpdkilljob mpdsigjob mplex
mpost mpdcheck mpdtrace mpto
mpdlistjobs mptopdf mpicc
mpdcleanup mpich2version mpicxx
—————————————————————————————————————————————-
zz一篇文章,很全面的环境介绍
转载自:http://blog.csdn.net/tobeabetterman_he/archive/2006/08/29/1135411.aspx
Linux下MPICH2集群系统安装手册(采用建立信任ssh)
这是我几天来研究学习的一点成果,发出来与大家共享。其中有什么不足之处请批评指正!
说明:本系统测试环境为Redhat9.0完全安装,并且以获得mpich2-1.0.1.tar.gz软件包。假设你的mpich2-1.0.1.tar.gz软件包已经下载到/root/目录下。以root用户登录。要求会使用vi文本编辑器修改文件。下面以四台pc为例。
准备工作:设置IP,更改主机名为node01,node02,node03,node04.
一、创建SSH信任连接(在root目录下)
1、更改/etc/hosts文件
#vi /etc/hosts 打开hosts文件,更改如下:
127.0.0.1 localhost.localdomain localhost
node01的IP scc-m
node01的IP node01
node02的IP node02
node03的IP node03
node04的IP node04
2、在node01生成SSH秘钥对.
#ssh-keygen -t rsa 一路回车即可
产生.ssh文件,
#ls -a 查看是否有.ssh文件夹
3、进入.ssh目录
#cd .ssh
4、生成authorized_keys文件
#cp id_rsa.pub authorized_keys
5、退出到root目录
#cd ..
6、建立本身的信任连接
#ssh node01 按提示输入yes(三个字母要打全)
7、设置node02(node02的root目录下)
#ssh-keygen -t rsa 生成.ssh文件夹
#scp node01的IP:/root/.ssh/* /root/.ssh 拷贝node01上的.ssh文件夹覆盖本地的
#scp node01的IP:/etc/hosts /etc/hosts 拷贝node01上的hosts文件覆盖本地的
#ssh node01 提示处输入yes回车
设置node03,node04的方法与node02相同
8、确认四台机器的信任连接已建立
对每个节点执行:
#ssh node01
#ssh node02
#ssh node03
#ssh node04
在提示处输入yes回车,最后确定无需输入密码并且没有任何提示信息即可登陆("Last login:时间日期"提示信息除外)
二、安装MPICH2(在节点root目录下)
1、解压缩
#tar -zxvf mpich2-1.0.1.tar.gz
或者 #gunzip -c mpich2-1.0.1.tar.gz|tar xf mpich2-1.0.1.tar
2、创建安装目录
#mkdir /usr/MPICH-instsll
3、进入mpich2解压目录
#cd mpich2-1.0.1
4、设置安装目录
#./configure –prefix=/usr/MPICH-install
5、编译
#make
6、安装
#make install
7、退出到root目录
#cd ..
8、通过编辑.bashrc文件修改环境变量
#vi .bashrc
修改后的.bashrc文件如下:
# .bashrc
# User specific aliases and functions
alias rm=’rm -i’
alias cp=’cp -i’
alias mv=’mv -i’
PATH="$PATH:/usr/MPICH-install/bin" 新增加的
#Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
9、测试环境变量设置
#which mpd
#which mpicc
#which mpiexec
#which mpirun
10、修改/etc/mpd.conf文件,内容为secretword=myword
#vi /etc/mpd.conf
设置文件读取权限和修改时间
#touch /etc/mpd.conf
#chmod 600 /etc/mpd.conf
11、创建主机名称集合文件/root/mpd.hosts
#vi mpd.hosts
文件内容如下:
node01
node02
node03
node04
三、测试
1、本地测试
#mpd & 启动
#mpdtrace 观看启动机器
#mpdallexit 退出
2、通过mpd.hosts运行集群系统
#mpdboot -n number -f mpd.hosts number为要起动的机器个数
#mpdtrace
#mpdallexit
3、测试运行MPICH的例子程序
#mpdboot -n 4 -f mpd.hosts 启动4台机器
#mpiexec -n number /usr/MPICH-install/examples/cpi number为使用的进程数
#mpdallexit
4、如果测试不能通过,请进行第四步
四、问题解决
1、通过mpdcheck获得一写帮助信息
#mpdcheck -pc
2、查错
#mpdcheck -l
3、通过mpd.hosts文件查错
#mpdcheck -f mpd.hosts 如果无错误
#mpdcheck -f mpd.hosts -ssh
4、如果上述无错误,可略过此步
对任意两台机器进行查错
m1: #mpdcheck -s 输出主机名host和端口port
m2: #mpdcheck -c host port
注意:以上四步都是在没有运行mpd的情况下进行的
5、mpd查错
m1: #mpd -e & 返回使用的端口
m2: #mpd -h m1 -p echoed_port_m1 &
以上测试通过,集群系统就建成了。
哈工大深圳研究生院智能计算实验室
贾荣斌
2005.9.2