Linux下安装MPICH

Linux mpich2 安装

 

1:从MPICH2官网下载源代码,http://www.mcs.anl.gov/research/projects/mpich2 /downloads/tarballs/1.0.8/mpich2-1.0.8.tar.gz  目前最新的是1.0.8,当然如果你使用的windows平台也可以下载http://www.mcs.anl.gov/research /projects/mpich2/downloads/tarballs/1.0.8/mpich2-1.0.8-win-ia32.msi,以及 http://www.mcs.anl.gov/research/projects/mpich2/documentation/files/mpich2-1.0.8-windevguide.pdf 这是windows平台下的开发文档。

你也可以登录http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads,查看你需要的mpich版本,根据自己需要下载即可。

2、然后,将mpich2-1.0.8.tar.gz解压到/home/mpi/mpich2/src中,

执行下列命令:cd /home/mpi/mpich2/src

./configure -prefix=/home/mpi/mpich2(配置安装位置为 /home/mpi/mpich2)

如果没有问题,再运行下面

make

make install

稍等就大功造成了。

3、修改机器的~/.bash_profile(Ubuntu修改~/.bashrc)文件,在最后加上下面的语句

export MPI_ROOT=/home/mpi/mpich2

export PATH=$MPI_ROOT/bin:$PATH

export MANPATH=$MPI_ROOT/man:$MANPATH


4、编辑下面的文件,并存储为hello.c

#include "mpi.h"
#include <stdio.h>
#include <math.h>

int main (int argc, char **argv)
{
int myid, numprocs;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];

MPI_Init
(&argc, &argv);
MPI_Comm_rank
(MPI_COMM_WORLD, &myid);
MPI_Comm_size
(MPI_COMM_WORLD, &numprocs);
MPI_Get_processor_name
(processor_name, &namelen);
fprintf (stderr, "Hello World! Process %d of %d on %s\n", myid, numprocs, processor_name);
MPI_Finalize
();
return 0;
}

 

 

 

5、接着编译一下

 

mpicc -o hello hello.c
C程序用 mpicc编译,C++程序用mpicxx编译)

6MPI应用一个管理器来管理运行MPI程序,这个管理器就是mpd,但是在正式开始运行mpd前还需要一个基于安全考虑的配置文件.mpd.conf,这个文件是要放在运行程序的用户的home目录下,本例子中就是/home/mpi/.mpd.conf,而且这个文件只能由这个用户读写,创建文件的命令是,

cd $HOME

touch .mpd.conf

chmod 600 .mpd.conf

然后在.mpd.conf文件中(如果没有这个文件需要创建一个)写入这么一行,secretword=******可以是任意的值,如果配置集群的话,这个值在参与计算的计算机上必需完全一致。如果是root用户的话,这个文件应该是/etc/mpd.conf

 

7、启动并行环境 mpdboot
第一次使用这个命令时,可能会出现错误,执行以下代码
cd

touch .mpd.conf                  //
这是修改mpd配置文件的时间戳
chmod 600 .mpd.conf          //
这是修改配置文件的权限

运行程序: mpirun -np 4 ./hello
-np
是指用几个进程模拟运行,这里用4
输出结果为:  (下面结果每台机器可能都不一样,是正常的)
Hello World! Process 1 of 4 on jack-laptop
Hello World! Process 3 of 4 on jack-laptop
Hello World! Process 2 of 4 on jack-laptop
Hello World! Process 0 of 4 on jack-laptop
想停止并行运行环境
mpdcleanup

 

8、如在第七步出现类似下面的报错

mpdroot: perror msg: Connection refused

mpdroot: cannot connect to local mpd at: /tmp/mpd2.console_root

probable cause: no mpd daemon on this machine

possible cause: unix socket /tmp/mpd2.console_root has been removed

 

请打开另外一个终端,并执行mpd命令,同时不要关闭这个终端,在执行第7步即可。

 

9、 如果你的os是Ubuntu的话,安装过程中如果提示缺少什么,首先安装这个东西之后再按照这个步骤即可。

 

posted @ 2010-04-26 13:29  随梦而飞  阅读(29954)  评论(1编辑  收藏  举报