昨天在vista下用mpich2做简单的isend和irecv,结果总是报开始接收时发现waitinglist里是空的,然后就只能break了。今天在ubuntu下面装openmpi,没有报错。每次都能很好接发。说明,对于简单的一个顺序问题,openmpi处理得比较好(或许是vista下nt.dll的问题,没在ubuntu下装mpich2有些比较不能深入,这也不是俺的爱好)。
openmpi的安装步骤参考的faq就能搞定了。稍记一下供以后参考:
1)从下载压缩包openmpi-1.2.4-tar.bz2,放到/tmp下,解压缩tarjxf
2)cdopenmpi-1.2.4,./configure--prefix=/usr/local/openmpi,makeallinstall
3)cd;vi.bashrc,增加到最后一行exportLD_LIBRARY_TYPE=/usr/local/openmpi/lib,vi.profile,
PATH=/usr/local/openmpi/bin:"${PATH}"
到这里,开一个终端,cd/tmp/openmpi-1.2.4/examples;make。
下面为了用几个节点或者在一个节点上算题,再对ssh作一下工作。
1)sudoapt-getinstallopenssh
2)cd;ssh-keygen-trsa,也可以是ssh-keygen-tdsa碰见提示就回车和yes.
3)cp~/.ssh/id_rsa.pub~/.ssh/authorized_keys,完成无密码登录授权
最后,测试一下mpirun-np2/tmp/openmpi-1.2.4/examples/hello_f90,没有出问题应该结果是:
Hello,world,Iam1of2Hello,world,Iam0of2
如果有问题,如./hello_f90:errorwhileloadingsharedlibraries:libmpi_f90.so.0:cannotopensharedobjectfile:Nosuchfileordirectory则要检查一下是否$LD_LIBRARY_PATH是空的,执行exportLD_LIBRARY_PATH=/usr/local/openmpi/lib以后就行了。或者不嫌麻烦的话,mpirun--prefix/usr/local/openmpi-np2/tmp/openmpi-1.2.4/examples/hello_f90也能执行。
下载本文示例代码
阅读(507) | 评论(0) | 转发(0) |