1. 程式人生 > >並行作業1:MPI安裝,及示例程式執行

並行作業1:MPI安裝,及示例程式執行

執行MPI程式

系統採用vm下ubuntu16.04

一、MPI系統安裝

1.1 安裝環境

(1)作業系統:Ubuntu 16.04.4 (64位)。
(2)g++ 版本:gcc version 5.4.0

1.2 安裝包下載地址及安裝包

(1)下載地址:http://www.mpich.org/downloads/
(2)安裝包:mpich-3.2.1.tar.gz

1.3安裝與測試

(1)將安裝包壓縮到/usr/local/mpich目錄下:
//建立mpich資料夾
cd /usr/local
sudo mkdir mpich

//回到安裝包所在目錄,執行壓縮指令
sudo tar -zxvf mpich-3.2.1.tar.gz -C /usr/local/mpich
(2)進入壓縮目錄進行軟體配置與檢查:
cd mpich-3.2.1
./configure -prefix=/usr/local/mpich

//提示缺少Fortran 77 compiler,安裝編譯器
sudo apt-get install gfortran

//再次進行配置和檢查
./configure -prefix=/usr/local/mpich
(3)編譯與安裝
sudo make && make install

//出現錯誤,許可權不足,導致無法建立檔案
cd /usr/local
sudo chmod -R 777 mpich/

//重新執行編譯與安裝
cd /usr/local/mpich/mpich-3.2.1
sudo make && make install

//沒有提示出錯
(4)配置環境變數
sudo gedit ~/.bashrc

//在.bashrc檔案的末尾新增:
export PATH=/usr/local/mpich/bin:$PATH

//更新配置檔案使其生效
source ~/.bashrc
(5)執行示例,測試是否安裝成功
cd /usr/local/mpich/mpich-3.2.1
mpirun -np 10 ./examples/cpi

二、MPI程式執行與結果展示

編譯:mpicxx/mpicc -o 編譯後文件名 待編譯C++/C檔案完整路徑
執行:mpirun –np處理器數 ./編譯後文件名

2.1 程式1:MPI平行計算初始化與結束示例

#include <mpi.h>
#include <stdio.h>
main(int argc, char **argv)
{	 
	 int numtasks, rank;
  	 MPI_Init(&argc, &argv);
    	 printf("Hello parallelworld!\n");
      MPI_Finalize();
}


//結果
控制檯輸出3個Hello parallelworld

2.2 程式2:簡單MPI程式設計示例

#include <mpi.h>
#include <stdio.h>
main(int argc, char **argv)
{
   int num, rk;
   MPI_Init(&argc, &argv);
   MPI_Comm_size(MPI_COMM_WORLD, & num);
   MPI_Comm_rank(MPI_COMM_WORLD, &rk);
   printf("Hello world from Process %d of %d\n",rk,num);
   MPI_Finalize();
}

後面還有一系列的都是PPT上的例子,不再在這裡放程式碼