Linux Ubuntu 安装MPICH3.2.1

Linux Ubuntu 安装MPICH3.2.1

1.准备工作

  1. 从MPICH2官网下载源码,目前最新版是3.2.1
  2. 将mpich2-3.2.1.tar.gz解压到/home/mpi/mpich2/src中,命令:tar -xf mpich2-3.2.1.tar.gz

2.配置安装

  1. 在该解压目录中,执行./configure -prefix=/home/mpi/mpich2(配置安装位置为 /home/mpi/mpich2),漫长等待。。。
    注:若提示未安装某编译器,可以选择不安装,即不使用该编译器编译,使用./configure -prefix=/home/mpi/mpich2 –disable-XXX(未安装的编译器);否则可以采用安装编译器后再进行步骤3
  2. 如果没有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.执行程序

  1. 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。
  2. 启动并行环境 mpdboot
    第一次使用这个命令时,可能会出现错误,执行以下代码
    cd ~
    touch .mpd.conf //这是修改mpd配置文件的时间戳
    chmod 600 .mpd.conf //这是修改配置文件的权限
  3. 运行程序: 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

注:若安装中提示缺少各种配置东东,请安装配置后再继续执行该步骤。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值