1.安装mpich2

在每台主机中执行如下指令:

  1. sudo apt-get install mpich2 
  2.安装nfs

在所有主机中选一台当控制端,其他主机为被控制端。当执行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文件

  1. cd $HOME 
  2. touch .mpd.conf 
  3. chmod 600 .mpd.conf 

在.,mpd.conf文件中增加

控制端主机在共享目录中建立mpd.hosts文件,文件中添加所有主机的主机名(一行一个主机名)。

5.测试

在控制端主机ssh 除自己以外的每一台主机,看能否不输密码直接登录。

如有不能自动登录的,检查ssh的配置。

 

在每一台主机做  mpd & ,如有不成功的做第6步查错。

mpdtrace查看启动的主机

mpdcleanup 和 mpdallexit 可以退出。

 

确保每一台主机都没有mpd在运行,在控制端主机的共享目录下执行

  1. mpdboot -n number  //number是要启动的主机数目
  2. 或 mpdboot -n number -f mpd.hosts 指定mpd.hosts文件

如有错误做第6步查错。

mpdtrace 查看启动的主机

mpdallexit全部退出

6.查错

确保没有mpd正在运行

通过mpdcheck获得帮助信息

  1. mpdcheck -pc 

  查错

  1. mpdcheck -l 


  通过mpd.hosts文件查错

  1. mpdcheck -f mpd.hosts  如果无错误 
  2. mpdcheck -f mpd.hosts  -ssh 


  如果上述无错误,可略过此步
  对任意两台机器进行查错

  1. 主机A: mpdcheck -s  //输出主机名host和端口port 
  2. 主机B: mpdcheck -c A中输出的host A中输出的port 


  mpd查错

  1. 主机A: mpd -e & //返回使用的端口 
  2. 主机B: mpd -h 主机A的名称  -p 主机A中输出的端口号 & 

有时mpdboot -n number 时无法成功启动,server1为控制端主机,出现如下错误

ubuntu server 10.04 搭建mpich2并行计算平台_mpi

可以把主机server1当成主机A,server3当成主机B,做上面的mpd查错,如果server1和server3可以成功连起来,执行mpdallexit后再执行mpdboot -n number就可以成功。