高性能计算

open mpi错误及解决(包含ssh问题)

2010年3月27日 阅读(2,612)

转载请注明作者:phylips@bmy        出处:http://duanple.blog.163.com/blog/static/7097176720102274230831/

1.运行mpirun出现如下错误:
duanple@node1:~/project/test$ mpirun -hostfile hosts -np 2 ./a.out
bash: orted: command not found
————————————————————————–
A daemon (pid 27974) died unexpectedly with status 127 while attempting
to launch so we are aborting.

There may be more information reported by the environment (see above).

This may be because the daemon was unable to find all the needed shared
libraries on the remote node. You may set your LD_LIBRARY_PATH to have the
location of the shared libraries on the remote nodes and this will
automatically be forwarded to the remote nodes.
————————————————————————–
————————————————————————–
mpirun noticed that the job aborted, but has no info as to the process
that caused that situation.
————————————————————————–
mpirun: clean termination accomplished

解决方式:虽然在/etc/profile里已经设定了PATH以及LD_LIBRARY_PATH,但是这个问题好像必须要重新在~/.bashrc里重新设置PATH以及LD_LIBRARY_PATH后,才可以正常运行。

2.在运行openmpi的三个节点中,有2个32位x86节点,一个x64节点,运行时报错。
提示:reconfigure Open MPI with –enable-heterogeneous.
也就是说openmpi默认安装不支持异构节点,如果需要支持必须打开改选项,关于configure选项,参见openmpi-1.4.1下的README文件。

因此需要重新配置安装openmpi:命令如下

cd /home/duanple/mpi/openmpi;rm -rf *
cd /home/duanple/project/install/openmpi-1.4.1;./configure –prefix=/home/duanple/mpi/openmpi –enable-heterogeneous –enable-sparse-groups –enable-static
make all install

scp mpi.c client:/home/duanple/project/test;scp mpi.c node2:/home/duanple/project/test
cd /home/duanple/project/test
mpirun -hostfile hosts -np 3 ./a.out

3.使用service sshd restart,或者ifconfig 总是出现如下提示:command not found.
原因是/sbin未被加入PATH,只要修改/etc/profile或者~/.bashrc,然后source它们即可

4.ssh hostA hostB
hostA可以不用输入密码登录hsotB,但是hostA登录hostB每次都需要输入密码,即使hostB在本地ssh hostB,也需要密码。

首先我们应该知道,被登录的主机要保存登录它的主机生成的公钥,这样登录的主机才能正确的登录那个被登录的主机。为什么需要被登录的主机来保存公钥呢,这是因为如果主机不想被别人登录时,可以删除那个机子的pubkey。否则一个机子就无法自己决定是否想被别人登录。

原因:
1.sshd配置未启动公钥登录,查看/etc/ssh/sshd_config,找到这么一段:
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys

把注释去掉,然后重启hostB的sshd服务。

2.~/.ssh目录的权限有问题
/etc/bashrc中设置的用户的umask 为002,root的umask 为022,所以,
root自己建立的.ssh目录是755,而普通用户建立的是775,但是ssh 服务要求~/.ssh目录必须只有
用户自己可以写,若组或其他有写权限,则会要求输入密码。
所以,出现了root用户的key起作用,普通用户的key 不起作用。
解决:将~/.ssh目录改为755权限或更严格,ssh的key就起作用了。

Problems logging in with RSA authentication:
——————————————–
If you have trouble logging in with RSA authentication then the
problem is probably caused by the fact that you have your home
directory writable by group, as well as user (this is the default on
Debian systems).

Depending upon other settings on your system (i.e. other users being
in your group) this could open a security hole, so you will need to
make your home directory writable only by yourself. Run this command,
as yourself:

chmod g-w ~/

3.拷贝pub公钥的时候,少了或者内容有误,也会导致需要输入密码,因为公钥认证在这种情况下同样无法完成。如果上面的错误都没有,那就要检查下被登录者是否正确的保存了登录者的公钥。

4.iptables防火墙屏蔽了ssh,通常这种错误发生后,提示no route to host.
方法检查iptables状态,service iptables status
如果开启则关闭 service iptables stop,该命令只是暂时关闭防火墙,重启后iptable会重新启动,
永久关闭用chkconfig –level 2345 iptables off

chkconfig 功能说明:检查,设置系统的各种服务。
  语 法:chkconfig [–add][–del][–list][系统服务] 或 chkconfig [–level <等级代号>][系统服务][on/off/reset]
  补充说明:这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。
  chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。

You Might Also Like