Linux Ubuntu 安装MPICH3.2.1
1.准备工作
- 从MPICH2官网下载源码,目前最新版是3.2.1
- 将mpich2-3.2.1.tar.gz解压到/home/mpi/mpich2/src中,命令:tar -xf mpich2-3.2.1.tar.gz
2.配置安装
- 在该解压目录中,执行./configure -prefix=/home/mpi/mpich2(配置安装位置为 /home/mpi/mpich2),漫长等待。。。
注:若提示未安装某编译器,可以选择不安装,即不使用该编译器编译,使用./configure -prefix=/home/mpi/mpich2 –disable-XXX(未安装的编译器);否则可以采用安装编译器后再进行步骤3 - 如果没有error,执行:make
再执行make install
完成~~~
3. 环境变量
修改root下的~/.bashrc文件,在最后加上下面的语句
export MPI_ROOT=/home/mpi/mpich2
export PATH=$MPI_ROOT/bin:$PATH
export MANPATH=$MPI_ROOT/man:$MANPATH
设置完之后注意执行source ~/.bashrc命令
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;
}
编译,执行mpicc -o hello hello.c
(C程序用 mpicc编译,C++程序用mpicxx编译)
5.执行程序
- MPI应用一个管理器来管理运行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。 - 启动并行环境 mpdboot
第一次使用这个命令时,可能会出现错误,执行以下代码
cd ~
touch .mpd.conf //这是修改mpd配置文件的时间戳
chmod 600 .mpd.conf //这是修改配置文件的权限 - 运行程序: mpirun -np 4 ./hello
此处-np 是指用几个进程模拟运行,这里用4个
输出结果为: (下面结果每台机器可能都不一样,是正常的)
Hello World! Process 3 of 4 on jack-laptop
Hello World! Process 0 of 4 on jack-laptop
Hello World! Process 1 of 4 on jack-laptop
Hello World! Process 2 of 4 on jack-laptop
想停止并行运行环境,执行:mpdcleanup
注:若安装中提示缺少各种配置东东,请安装配置后再继续执行该步骤。