设为首页 加入收藏

TOP

MPI在Linux下的配置总结
2014-11-24 03:06:15 来源: 作者: 【 】 浏览:1
Tags:MPI Linux 配置 总结

网上有一篇文章写得很好,照着配置一直有问题,现在终于弄好了。把遇到的问题记录下来!


此文是由Linux菜鸟 + mpi初学者原创,不对的地方请见指教!


在安装之前,先要把 节点 配置好!


1.在每台机器上配置hosts


打开 /etc/hosts


127.0.0.1 localhost.localdomain localhost 下面


加入


192.168.1.101 ubuntu


ubuntu, ubuntu2 是计算机名字,通过命令 uname -n可以看到,最好每个节点起不同的名字。然后把 ip machinename写入就行了。


2.配置ssh


mpi 要求主机能无密码登录所有子机,按照网上的方法来就行了,


在主机上:


先 ssh-keygen -t rsa 得到 id_rsa 和 id_rsa.pub


默认保存在 $HOME/.ssh/ 里,把 id_rsa.pub 复制一份叫authorized_keys。把$HOME/.ssh/ 所有的文件,复制到子机上用。


其实,这一步主要是把authorized_keys复制过去,让 id_rsa 能开启 id_rsa.pub 的锁。


主机ssh 所有子机2次。


如果第2次还要求输入密码,那么 ssh-agent 没开启或者id_rsa没有加入。


或者出现这个错误:Could not open a connection to your authentication agent


请:


ssh-agent bash


ssh-add id_rsa


期间如果遇到问题,重新做了一编,可能会遇到 ssh 说目标的密码更改,不让登录等等这样的问题,因为ssh记录了登录的情况,并放到了 $HOME/.ssh/known_hosts 里。把这个文件删除,或者 ssh-keygen -R,清除已知 ssh 就行了。


3.安装MPI


关于安装最好参照下载下来源码里的README。最好使用源码编译,所有机器的MPI最好是同一个版本,用同一种方法安装,安装在同一个地方!


以下几步在所有机器上分别进行。


最简单的是


./configure


make


make install


就行了


非默认安装得改以下PATH。


然后得在 $HOME/ 建个 .mpd.conf 的文件


填入:


MPD_SECRETWORD=xxxx


xxxx为mpd 的密码。


为这个文件加入权限:


chmod 600 .mpd.conf


用 ls -l .mpd.conf 可以看这个文件的权限,应该显示你的用户名。


如果发现显示是 root 那肯定是你用 sudo 建的,重新建个就行了。


mpd想要启动还得有个 mpd.hosts ,也放在 $HOME/


里面写入你所拥有的节点的计算机名字。


比如:


ubuntu, ubuntu2


4.检查和测试


做到这一步,基本就完成了。


mpd -n 2


如果成功,那太好了。写一个最简单的mpi程序,或者用examples里的 cpi测试,


mpiexec -n 2 cpi


然后就可以出现3.1415.......。


但是很有可能出现这个错误:


mpdboot_ubuntu (handle_mpd_output 420): from mpd on ubuntu2, invalid port info:


no_port


大部分原因都是ssh配置得不对,子机没有开机,子机和主机MPI安装的位置不一样,都会出现这个错误!


用 mpdcheck -f mpd.hosts -ssh


来检查错误。


我就因为主机是编译安装,子机是用deb包装的,而位置不一致运行mpdboot -n 2时总报错。


5.最后的一招


如果 mpdboot 总是失败,那么只有手动启动各个节点的mpd了。


在主机上先启动mpd: mpd&


然后mpdtrace -l


可以看到 ubuntu_45131 (192.168.1.101) 这样的字样。


这个45131就是主机mpd的端口


在子机上这样做


mpd -h ubuntu -p 45131


主机这时再mpdtrace 应该也可以看到子机也加入mpd环了。


6.关于mpiexec


mpiexec -n 后面的这个参数,网上有的说是机器数,显然不是,这个是要启动的进程数,至于怎么分配,我也没弄明白。


比如你有两台机器 mpiexec -n 4 cpi 那每台运行两个 cpi 的进程。


mpdboot -n 2 这个2是两个机器,而且不能超过在mpd.hosts里定义过的机器数量。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇FLASH与服务器通讯 (JAVA) 下一篇Ubuntu下Android编译环境的配置

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Sphinx : 高性能SQL (2025-12-24 10:18:11)
·Pandas 性能优化 - (2025-12-24 10:18:08)
·MySQL 索引 - 菜鸟教 (2025-12-24 10:18:06)
·Shell 基本运算符 - (2025-12-24 09:52:56)
·Shell 函数 | 菜鸟教 (2025-12-24 09:52:54)