转载注明出处:
http://blog.csdn.net/bendanban/article/details/9136755
以两台计算机为例,将这两台计算机应用于MPI运行环境。
我安装的是ubuntu 12.04,主机名随便你自己取,我命名两台机器为sinco和cosin。
当然,我这里假设两台机器属于同一个局域网中。
我设置sinco的IP为192.168.0.2
cosin的IP为192.168.0.3
编辑sinco上的/etc/hosts 文件,文件的前几行修改成如下形式
127.0.0.1 localhost 192.168.0.2 sinco 192.168.0.3 cosin
我默认两台机器上已经安装了ssh服务器,如果不能ssh登录,安装一下ssh就行了。别忘了安装就行。
在sinco上,你的用户目录下进入 .ssh 目录,如果没有这个目录,就先创建他,进入之后,执行下面的命令:
执行:
ssh-keygen -t dsa
执行:
cat id_dsa.pub >> authorized_keys
实验一下前四步是否成功,在sinco上执行ssh cosin,如果没有密码就登录上去了,说明成功了。如果不行,你就需要在看看是不是做错哪个步骤了。
我用的版本是MPICH-3.0.4 , 下载后,解压,安装配置如下:
./configure --enable-fc --enable-cxx --enable-romio --enable-threads=multiple --prefix=${HOME}/soft/mpich2/3.0.4 --with-pm=mpd make make install
由于我安装到了非标准目录下,所以要设置下环境变量。
我用的是bash shell,编辑~/.bashrc
在文件的末尾,添加如下几行
export PATH=${HOME}/soft/mpich2/3.0.4/bin:${PATH} export LD_LIBRARY_PATH=${HOME}/soft/mpich2/3.0.4/lib:${LD_LIBRARY_PATH} export MANPATH=${HOME}/soft/mpich2/3.0.4/share/man:${MANPATH}
我用的是mpd,这一点在mpich编译的时候就指定了。
在两台机器上,编辑${HOME}/mpd.hosts
添加如下两行:
sinco:4 cosin:4
在两台机器上编辑${HOME}/.mpd.conf文件,添加一行:
MPD_SECRETWORD=mypasswd
我在sinco启动进程管理器,
mpdboot -n 2
测试一下:
mpdtrace
测试下mpiexec
mpiexec -n 2 ls -l
我现在用的机器是两台独立的机器,他们没有共享硬盘空间,所以,我只能从一个机器拷贝到另一个机器执行程序,例如我在$HOME目录下有个mpi01.exe,想让他在两个机器上运行下。可以这样做。
将这个程序拷贝到另一个机器上的$HOME目录下。
然后执行:
mpiexec -wdir $HOME -n 2 ./mpi01.exe