並行作業1:MPI安裝,及示例程式執行
阿新 • • 發佈:2018-12-03
執行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();
}