MPI的安裝我參考了網上大牛的博客:
http://blog.csdn.net/bendanban/article/details/9136755
http://www.cnblogs.com/liyanwei/archive/2010/04/26/1721142.html
MPI3.0以前的安裝方式比較麻煩一點,參考前面兩篇博客連接,MPI3.0及以后的安裝和運行都簡化了很多步驟,下面是MPI3.0后的安裝步驟:
參考博客: http://blog.csdn.net/u014004096/article/details/50499429
我的系統環境:
Ubuntu 16.04
64bit
1. 下載源文件
鏡像網站,下載比較快: http://www.mpich.org/static/downloads/3.0.4/
官方網站,下載比較慢: http://www.mpich.org/downloads/
2. 在Ubuntu中解壓文件並安裝,以mpich-3.1.4.tar.gz為例
在終端上先找到文件所在位置:sudo tar -zxvf mpich-3.1.4.tar.gz
使用ls命令查看便可發現多出了一個mpich-3.1.4目錄
進入該目錄:cd mpich-3.1.4
運行命令./configure -prefix=/usr/local/mpich進行軟件配置與檢查,這里我們只設置安裝目錄即可。注:prefix參數是表示安裝路徑
接下來進行編譯與安裝:make && make install(當然也可以先執行make命令編譯,再執行make install命令安裝,作用一樣。)
編譯執行的命令(如mpicc、mpirun)是需要添加的,必須添加絕對路徑才能正常使用。而為了方便,需要配置一下環境變量:
配置環境變量: [root@localhost ~]# vi .bashrc
在.bashrc文件的末尾添加: export PATH=/usr/local/mpich/bin:$PATH
然后再保存退出后,再更新配置文件使其生效:[root@localhost ~]# source .bashrc
確保安裝確確實實是成功了的,可以進行測試一下:[root@localhost mpich-3.1.4]# mpirun -np 10 ./examples/cpi
如果沒有報錯就證明運行成功,那么也就證明mpi是安裝成功了的。
PS:在執行時,可能需要安裝一些依賴包,安裝提示走就好了:sudo apt-get install *
3. 實例測試
1 #include "mpi.h" 2 #include <stdio.h> 3 #include <math.h> 4 5 int main (int argc, char **argv) 6 { 7 int myid, numprocs; 8 int namelen; 9 char processor_name[MPI_MAX_PROCESSOR_NAME]; 10 11 MPI_Init (&argc, &argv); 12 MPI_Comm_rank (MPI_COMM_WORLD, &myid); 13 MPI_Comm_size (MPI_COMM_WORLD, &numprocs); 14 MPI_Get_processor_name (processor_name, &namelen);
15 fprintf (stderr, "Hello World! Process %d of %d on %s\n", myid, numprocs, processor_name);
16 MPI_Finalize (); 17 return 0; 18 }
編譯: mpicc -o hello hello.c ( C程序用 mpicc編譯,C++程序用mpicxx編譯)
運行: mpirun -np 4 ./hello
輸出結果為: (下面結果每台機器可能都不一樣,是正常的)
Hello World! Process 1 of 4 on LJPC-HR8
Hello World! Process 3 of 4 on LJPC-HR8
Hello World! Process 2 of 4 on LJPC-HR8
Hello World! Process 0 of 4 on LJPC-HR8
想停止並行運行環境
mpdcleanup