傻瓜式安装openmpi:
安装
1) 下载openmpi
2) tar -xzvf openmpi-1.4.3.tar.gz
3) cd openmpi-1.4.3
4) ./configure --prefix=/usr/local/openmpi | tee ../install.log
5) make all | tee ../make.log
6) make install | tee ../install2.log
配置环境
7) vi /etc/ld.so.conf 最后增加一行
/usr/local/openmpi/lib
保存退出
8) /sbin/ldconfig 回车等待。
9) vi /etc/profile, 最后 增加一行:
PATH=${PATH}:/usr/local/openmpi/bin
保存退出
10)执行
. /etc/profile
测试
10)cd examples
11) make
12) mpirun -np 4 ./hello_f90 可以得到类似ppt中的输出
mpi多机时, 需要有machines文件。文件内容如下:
tp1 1 /home/pact/mpich/examples/basic/cpi
tp2 1 /home/pact/mpich/examples/basic/cpi
tp3 1 /home/pact/mpich/examples/basic/cpi
分别表示机器名/ip, 进程个数, 进程名(进程名可以没有); 当使用机器名时, 则需要架设DNS服务器。
mpirun -machinefile ./machine.linux -np 4 ./hello_f90
安装 mpiBlast.1.6.0
mkdir -p /usr/local/bio/mpiblast-1.6.0
tar -xzvf mpiBLAST-1.6.0.tgz
cd mpiblast-1.6.0
./ncbi/make/makedis.csh #1.6.0自带ncbi
./configure --prefix=/usr/local/bio/mpiblast-1.6.0/ --with-mpi=/usr/local/openmpi
make
make install
然后配置。。。???http://wenku.baidu.com/view/f993570f76c66137ee061965.html
http://www.linuxdiyf.com/bbs/thread-68473-1-1.html
openmpi的安装步骤参考www.openmpi.org的faq就能搞定了。稍记一下供以后参考:
1)从www.openmpi.org下载压缩包openmpi-1.2.4-tar.bz2,放到/tmp下, 解压缩tar jxf
2) cd openmpi-1.2.4, ./configure --prefix=/usr/local/openmpi, make all install
3) cd; vi .bashrc, 增加到最后一行 export LD_LIBRARY_TYPE=/usr/local/openmpi/lib,vi .profile,
PATH=/usr/local/openmpi/bin:"${PATH}"
到这里,开一个终端,cd /tmp/openmpi-1.2.4/examples; make。
下面为了用几个节点或者在一个节点上算题,再对ssh作一下工作。
1) sudo apt-get install openssh
2) cd; ssh-keygen -t rsa, 也可以是 ssh-keygen -t dsa 碰见提示就回车和yes.
3) cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys, 完成无密码登录授权
最后,测试一下mpirun -np 2 /tmp/openmpi-1.2.4/examples/hello_f90, 没有出问题应该结果是:
Hello, world, I am 1 of 2 Hello, world, I am 0 of 2
如果有问题,如./hello_f90: error while loading shared libraries: libmpi_f90.so.0: cannot open shared object file: No such file or directory 则要检查一下是否$LD_LIBRARY_PATH是空的,执行export LD_LIBRARY_PATH=/usr/local/openmpi/lib以后就行了。或者不嫌麻烦的话,mpirun --prefix /usr/local/openmpi -np 2 /tmp/openmpi-1.2.4/examples/hello_f90也能执行。
http://blogold.chinaunix.net/u2/85704/showart_1964625.html
<1>Open-mpi的安装:
即 tar -xvzf openmpi-xxxx.gz
cd openmpi-xxxx
./configure --prefix=/usr/local/openmpi | tee cfg.log &
make all | tee make.log &
make install | tee makeinstall.log &
末尾出现些subscripts too complex的警告, 但似乎正常结素了。
结果出现 Unfortunately, this installation of Open MPI was not compiled with Fortran 90 support. As such, the mpif90 compiler is non-functional.
结果错误在于没有指定F77=IFORT FC=IFORT ,改正后重新编译成功
可以到EXAMPLES里面测试,MAKE-----MPIRUN -N 4 hello_f90
Hello, world, I am 0 of 4
Hello, world, I am 2 of 4
Hello, world, I am 3 of 4
Hello, world, I am 1 of 4
表明编译正确
-----------------------------------(以下与nwchem的编译无关,与编译好调用mpi有关)
然后把openmpi及其它的bin路径添到.bashrc里。
注意使用它还用设置共享库的位置 ,用.bashrc里添加:
export LD_LIBRARY_PATH=$MPIDIR/lib:$LD_LIBRARY_PATH
或者每次运行mpirun时用 --prefix=/usr/local/openmpi 听说也可以
---------------------------------------------
初步适用了下,openmpi 和 mpich2的区别:
(1)openmpi继承了初代mpi没有系统守护模块(如mpd)的特点,由作业自己随时调用mpirun;感觉上比较方便。
(2)hostfile的写法略有不同,比如mpich里习惯都是 <hostname>:<n>
而openmpi的对多路或多核心cpu的写法是<hostname> slots=<n>
(3)其它,似乎不怎么明白openmpi用-mca btl(注意是字母L的小写,不是数字1),最郁闷的是没有user manual, 只是在tar包里原来的INSTALL里说明(或许是README,记不清了),btl其实适用面更广,可以在同node里用sharememory,可以在不同nodes间用sockets,但不知为什么默认的通讯模块不是它,好象是什么什么cm的选项,要试试加btl可否加速mpirun作业。