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