Ubuntu16.04下安装MPI3.2与运行测试(详细过程)

强颜欢笑 提交于 2020-12-21 09:22:27

最近为了验证MPI并行计算的性能问题,在Vmware虚拟机上安装了Ubuntu16.04,又在Ubuntu16.04上安装并测试了MPI3.2,详细介绍了MPI3.2源码在Ubuntu 16.04下的安装过程,避免后面的同学少踩坑。

MPI压缩包的下载与解压

1.在网站上下载MPI3.2源码
[链接]http://www.mpich.org/static/downloads/3.2/mpich-3.2.tar.gz

2.终端进行解压缩

一般默认的下载目录为:/home/用户名/下载/

先进入该目录下,然后使用如下命令解压缩

cd /home/用户名/下载
sudo tar -zxvf mpich-3.2.tar.gz

MPI文件的配置

1.为了方便操作,可以先在home根目录下新建一个mpich文件夹,然后将上述解压后的mpich-3.2文件拷贝至mpich文件夹。

$ cd /home
$ mkdir mpich
$ cp /home/用户名/下载/mpich-3.2 /home/mpich

2.进入mpich-3.2,通过ls命令进行查看内容。

$ cd /home/mpich/mpich-3.2
$ ls

3.配置configure文件。

$ ./configure --prefix=~/mpich-3.2 --disable-fortran

此时会报一个配置错误:

$ configure:error: expected an absolute directory name for --prefix: ~/mpich-3.2

意思需要一个mpich-3.2的绝对路径,一般情况下我们配置的fortran文件不用在mpich的安装目录下,因此可以选择放在新建的mpich目录下。比如我放在/home/用户名/mpich下会报错,而放在/home/mpich下就可正常配置。

三. MPI的编译和安装,配置环境变量

1.先回到MPI的解压目录下,进行编译操作。

$ cd /home/mpich/mpich-3.2
$ make

2.等待完成后进行安装操作,一般需要赋予权限。

$ sudo make install

输入密码后即可自动安装,静待安装完成。

3.打开.bashrc配置文件

$ gedit ~/.bashrc

在bashrc文档开头或末尾添加mpich执行的路径,注意:PATH后面是文件夹位置 注意等号中间别留空格。

export MPI_ROOT=/home/mpich
export PATH=$MPI_ROOT/bin:$PATH
export MANPATH=$MPI_ROOT/man:$MANPATH

然后保存

$ source ~/.bashrc

至此,安装过程顺利结束。

四. MPI运行测试

1.在mpich文件夹新建一个mpi_hello.cpp文件,将下面的代码粘贴过去。

#include <iostream>
#include <string.h>
#include <mpi.h>
using namespace std;

const int max_string = 100;

int main ()
{
	int comm_sz=0;
	int my_rank=0;
	char greeting[max_string];
	
	MPI_Init(NULL,NULL);
    MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);
    MPI_Comm_size(MPI_COMM_WORLD,&comm_sz);

	 if(my_rank==0){
		sprintf(greeting,"Greetings from process %d of %d!",my_rank,comm_sz);
		MPI_Send(greeting,strlen(greeting),MPI_CHAR,0,0,MPI_COMM_WORLD);
	}
	else{
		cout<<"Greetings from process "<<my_rank<<" of "<<comm_sz<<"!"<<endl;
		for(int i=1;i<comm_sz;i++){
			MPI_Recv(greeting,max_string,MPI_CHAR,i,0,MPI_COMM_WORLD,MPI_STATUS_IGNORE);
			cout<<greeting<<endl;
		}
	}
	
	MPI_Finalize ();
	return 0;
}

2.回到终端,在mpich的目录下进行编译。

$ mpicxx -g -Wall -o mpi_hello.o mpi_hello.cpp

3.编译完成后会在该目录下生成一个mpi_hello.o的文件,再运行这个文件,其中-n后面的数字是调节创建的进程数量。

$ mpirun -n 4 ./mpi_hello.o

4.我设置的4个进程,最后出现下图结果。

至此,完成MPI的安装和测试过程。接下来会利用MPI做些并行计算的测试。

参考文献:https://blog.csdn.net/qq_30239975/article/details/77703321

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!