1. 程式人生 > 其它 >Ubuntu16.04下安裝MPI3.2與執行測試(詳細過程)

Ubuntu16.04下安裝MPI3.2與執行測試(詳細過程)

技術標籤:工具安裝與測試技術小白GOUbuntu16.04MPI3.2mpi執行測試linux

最近為了驗證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