MPI 安装在 Ubuntu16.04

MPI的安装我参考了网上大牛的博客:

 http://blog.csdn.net/bendanban/article/details/9136755

 http://www.cnblogs.com/liyanwei/archive/2010/04/26/1721142.html

 

MPI3.0以前的安装方式比较麻烦一点,参考前面两篇博客连接,MPI3.0及以后的安装和运行都简化了很多步骤,下面是MPI3.0后的安装步骤:

参考博客: http://blog.csdn.net/u014004096/article/details/50499429

 

我的系统环境:

Ubuntu 16.04

64bit

1. 下载源文件

镜像网站,下载比较快: http://www.mpich.org/static/downloads/3.0.4/

官方网站,下载比较慢: http://www.mpich.org/downloads/

2. 在Ubuntu中解压文件并安装,以mpich-3.1.4.tar.gz为例

在终端上先找到文件所在位置:sudo tar -zxvf mpich-3.1.4.tar.gz

使用ls命令查看便可发现多出了一个mpich-3.1.4目录

进入该目录:cd mpich-3.1.4 

运行命令./configure -prefix=/usr/local/mpich进行软件配置与检查,这里我们只设置安装目录即可。注:prefix参数是表示安装路径

接下来进行编译与安装:make && make install(当然也可以先执行make命令编译,再执行make install命令安装,作用一样。)

  编译执行的命令(如mpicc、mpirun)是需要添加的,必须添加绝对路径才能正常使用。而为了方便,需要配置一下环境变量:

     配置环境变量: [root@localhost ~]# vi .bashrc 

     在.bashrc文件的末尾添加: export PATH=/usr/local/mpich/bin:$PATH 

 然后再保存退出后,再更新配置文件使其生效:[root@localhost ~]# source .bashrc 

 确保安装确确实实是成功了的,可以进行测试一下:[root@localhost mpich-3.1.4]# mpirun -np 10 ./examples/cpi 

 如果没有报错就证明运行成功,那么也就证明mpi是安装成功了的。

PS:在执行时,可能需要安装一些依赖包,安装提示走就好了:sudo apt-get install *

3. 实例测试

 

 1 #include "mpi.h"
 2 #include <stdio.h>
 3 #include <math.h>
 4 
 5 int main (int argc, char **argv)
 6 {
 7   int myid, numprocs;
 8   int namelen;
 9   char processor_name[MPI_MAX_PROCESSOR_NAME];
10 
11   MPI_Init (&argc, &argv);
12   MPI_Comm_rank (MPI_COMM_WORLD, &myid);
13   MPI_Comm_size (MPI_COMM_WORLD, &numprocs);
14   MPI_Get_processor_name (processor_name, &namelen);
15   fprintf (stderr, "Hello World! Process %d of %d on %s\n", myid, numprocs, processor_name);
16   MPI_Finalize (); 17   return 0; 18 }

 

 

 

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

运行: mpirun -np 4 ./hello

输出结果为:  (下面结果每台机器可能都不一样,是正常的)

Hello World! Process 1 of 4 on LJPC-HR8
Hello World! Process 3 of 4 on LJPC-HR8
Hello World! Process 2 of 4 on LJPC-HR8
Hello World! Process 0 of 4 on LJPC-HR8
想停止并行运行环境
mpdcleanup

 

转载于:https://www.cnblogs.com/leijin0211/p/6851675.html