第一步,以普通用户账户登录系统
到MPI的官方网站上下载mpich2-1.1.tar.gz
官网地址乃google所得
下载完毕后,将该压缩包放在根目录底下
$ tar -xzvf mpich2-1.1.tar.gz
将该压缩包直接解压到根目录底下
第二步,$ su #登录root账户
$ cd /mpich2-1.1
$ ./configure –prefix=/usr/local/mpich2-1.1
# –prefix= 后面乃mpich2-1.1的安装路径
$ make
$ make install
$ exit #退出root账户
第三步,$ cd /home/you # you 乃普通用户账户名
$ vim .bash_profile
在该文件的最后追加如下两行
export PATH=/usr/local/mpich2-1.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/mpich2-1.1:$LD_LIBRARY_PATH
之后保存退出
$ source .bash_profile
$ touch .mpd.conf
$ echo “secretword=…” > .mpd.conf
# … 乃用户随意设置的密码,最好不同于普通用户账户的密码
$ chmod 600 .mpd.conf
第四步,测试MPI环境是否已经搭建成功
$ mpd & #启动后台守护进程
$ mpdtrace -l #显示守护进程的主机名和端口号
$ mpdallexit #杀死守护进程
如果第四步顺利执行,就表明普通用户账户的MPI环境已经成功搭建起来了。之后要是将开始时解压缩得到的文件夹删除也没有关系。
在Red Hat 5(AS 5)上配置多节点MPI互联:
在各节点上分别执行:
第一步,以root账户登录系统
安装mpich2-1.1,具体步骤参见这里
第二步,$ vim /etc/sysconfig/network
# 将文件中的“localhost.localdomain”修改为
# “{自定义主机名}.localdomain”
# 然后保存退出
第三步,$ vim /etc/hosts
# 将文件中的“127.0.0.1”(即本机回路地址)修改为
# “{本机当前IP地址} {自定义主机名}.localdomain {自定义主机名} ”
# 注意,此处的“自定义主机名”必须与第二步修改的相同
# 然后保存退出
$ reboot # 重启系统,使修改生效
第四步,以root账户登录系统
$ service iptables stop
# 关闭本机的防火墙
第五步,在主控节点上
$ mpd & # 启动后台守护进程
$ mpdtrace -l # 查看并记录端口号
在其他各节点上
$ mpd -h {主控节点当前IP地址} -p {刚才记录的主控节点端口号} &
# 启动后台守护进程,并使该进程与主控节点的守护进程相联
第六步,$ mpdtrace -l # 显示当前相联的各节点的 主机名_端口号(IP地址)
如果第五步顺利执行的话,各节点就通过MPI成功互联了。
PS:过程中参考了mpich2-1.1的userguide。
精确控制各节点进程数的指令为:
$ mpiexec -l -n {进程数1} -host {节点1的IP地址} {程序1} : -n {进程数2} -host {节点2的IP地址} {程序2} : ……
从该指令可以看出,MPI允许各节点运行不同的程序。