尊重版權,本部落格轉自:http://gaoxiaochuan89.blog.163.com/blog/static/974703362012112275345716/
1.進入終端,選擇一個自己的目錄,安裝MPICH2
運作指令:sudo apt-get install mpich2
2.安裝配置檔案并且進行設定
運作指令1:touch mpd.conf
運作指令2:chmod 600 mpd.conf
在mpd.conf檔案中輸入以下文本内容并儲存:
MPD_SECRETWORD=mr.chen
3.開啟mpi伺服器并且進行編譯執行mpi檔案
3.1 開啟mpi環境:mpdboot (我沒有手動開啟,後面的操作也成功)
3.2 編譯mpi檔案(-o Hello 指定輸出檔案的名稱):mpicc -o Hello Hello.c
3.3 執行生成的二進制檔案(-np 4:表示用4個程序):mpirun -np 4 ./Hello
運作結果如下:
[email protected]:~/test_mpi_examples$ mpirun -np 4 ./Hello
Hello world! Processor 0 of 4 on ubuntu
Hello world! Processor 1 of 4 on ubuntu
Hello world! Processor 3 of 4 on ubuntu
Hello world! Processor 2 of 4 on ubuntu
4.關閉mpi伺服器
運作指令:mpdcleanup
附加測試檔案(Hello.c):
#include "mpi.h"
#include <stdio.h>
#include <math.h>
int main(int argc, char **argv)
{
int myid, numprocs;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &myid);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
MPI_Get_processor_name(processor_name, &namelen);
fprintf(stderr, "Hello world! Processor %d of %d on %s\n", myid, numprocs, processor_name);
MPI_Finalize();
return 0;
}
OPENMP 環境:openmp庫都是随編譯器一起釋出的,如果你的程式是源代碼編譯的,隻要編譯器支援openmp編譯選項就肯定能用。GNU,intel的都支援,包括gcc,gfortran,icc,ifort。
如果是GCC,那麼編譯的指令應該是 gcc -fopenmp -o exefile sourcefile,這裡的-fopenmp很重要。