在每台主机中执行如下指令:
2.安装nfs
- sudo apt-get install mpich2
在所有主机中选一台当控制端,其他主机为被控制端。当执行mpi程序时,由控制端协调所有主机完成任务。
在控制端安装nfs服务器,在其他主机安装nfs客户端,控制端将某一目录共享给其他主机,控制端需改变共享的目录的权限,可执行chmod 777 -R 共享的目录。共享目录用来存放mpi程序和mpd.hosts文件,以保证每台主机都执行相同的文件。
请参考:http://yaodh.blog.51cto.com/1462667/336427 http://yaodh.blog.51cto.com/1462667/336439
3.安装ssh应保证控制端主机能够自动ssh登录到其他主机
在控制端主机安装ssh客户端,在其他主机安装ssh服务器端。
请参考:http://yaodh.blog.51cto.com/1462667/336484
配置ssh公私钥认证,实现控制端主机可自动登录其他主机
请参考:http://http://yaodh.blog.51cto.com/1462667/336536
4.配置mpi对每台主机,在/etc/hosts中增加各主机名与IP地址的对应。
如server1的IP为192.168.0.1
则在/etc/hosts中增加:192.168.0.1 server1
对每台主机,在用户目录下建立配置 .mpd.conf文件
- cd $HOME
- touch .mpd.conf
- chmod 600 .mpd.conf
在.,mpd.conf文件中增加
控制端主机在共享目录中建立mpd.hosts文件,文件中添加所有主机的主机名(一行一个主机名)。
5.测试在控制端主机ssh 除自己以外的每一台主机,看能否不输密码直接登录。
如有不能自动登录的,检查ssh的配置。
在每一台主机做 mpd & ,如有不成功的做第6步查错。
mpdtrace查看启动的主机
mpdcleanup 和 mpdallexit 可以退出。
确保每一台主机都没有mpd在运行,在控制端主机的共享目录下执行
- mpdboot -n number //number是要启动的主机数目
- 或 mpdboot -n number -f mpd.hosts 指定mpd.hosts文件
如有错误做第6步查错。
mpdtrace 查看启动的主机
mpdallexit全部退出
6.查错确保没有mpd正在运行
通过mpdcheck获得帮助信息
- mpdcheck -pc
查错
- mpdcheck -l
通过mpd.hosts文件查错
- mpdcheck -f mpd.hosts 如果无错误
- mpdcheck -f mpd.hosts -ssh
如果上述无错误,可略过此步
对任意两台机器进行查错
- 主机A: mpdcheck -s //输出主机名host和端口port
- 主机B: mpdcheck -c A中输出的host A中输出的port
mpd查错
- 主机A: mpd -e & //返回使用的端口
- 主机B: mpd -h 主机A的名称 -p 主机A中输出的端口号 &
有时mpdboot -n number 时无法成功启动,server1为控制端主机,出现如下错误
可以把主机server1当成主机A,server3当成主机B,做上面的mpd查错,如果server1和server3可以成功连起来,执行mpdallexit后再执行mpdboot -n number就可以成功。