MPI初學-安裝及OpenMPI函數說明

1、Mac下OpenMPI的安裝

所用電腦:MacBook Pro,OSX 10.11.2

  1. 從openmpi官網下載相應版本:OpenMPI 1.8下載
  2. 解壓文件
    雙擊解壓或者tar zxvf openmpi***.tar.gz
  3. 指定安裝路徑
    進入解壓的目錄,指定要安裝的路徑:./condigure --prefix=/usr/local
  4. 編譯mpi源碼
    make all
  5. sudo make安裝
    sudo make install
  6. 檢查是否加入環境變量
    echo $PATH 查看MPI所在的/usr/local/bin是否在環境變量PATH中
  7. 編譯examples源碼並運行
    首先進入examples文件夾,該文件夾下有一些MPI的簡單源碼例子
    編譯hello world的C程序,mpicc hello_c.c -o test
    或者編譯hello world的C++程序,mpicxx hello_cxx.cc -o test
    這樣生成名叫test的可執行程序,而後使用mpirun執行:mpirun -np 2 ./test //np指定使用幾個進程

2、MPI函數簡單說明

下面以examples裏的hello_c.c爲例說明MPI經常使用函數數組

int myid, numprocess;
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, &numprocess);
MPI_Get_processor_name(processor_name, &namelen);

fprintf(stderr, "To you : Process %d of %d on %s\n", myid, numprocess, processor_name);
MPI_Finalize();
return 0;
  1. 初始化 MPI_Init(int argc, char **argv)
    參數:argc變量個數,argv變量數組
  2. 獲取當前進程標識 MPI_Comm_rank(MPI_Comm comm, int rank)
    參數:comm該進程所在的通訊域句柄,rank該進程在通訊域中的標識號
  3. 獲取通訊域進程總數 MPI_Comm_size(MPI_Comm comm,int size)
    參數:comm該進程所在的通訊域句柄,size通訊域comm中的進程總數
  4. 獲取本線程機器名 MPI_Get_processor_name(char *name,int resultlen)
    參數:name爲返回的機器名字符,resultlen爲機器名長度
  5. 結束函數 MPI_Finalize()函數

    另外,MPI有預約義的數據類型與C語言中的對應關係以下:

    MPI數據類型 對應C數據類型
    MPI_CHAR signed char
    MPI_SHORT signed short int
    MPI_INT signed int
    MPI_LONG signed long int
    MPI_UNSIGNED_CHAR unsigned char
    MPI_UNSIGNED_SHORT unsigned short int
    MPI_UNSIGNED unsigned int
    MPI_UNSIGNED_LONG unsigned long int
    MPI_FLOAT float
    MPI_DOUBLE double
    MPI_LONG_DOUBLE long double
    MPI_BYTE 無相應數據類型
    MPI_PACKED 無相應數據類型
    MPI_LONG_LONG_INT long long int線程

相關文章
相關標籤/搜索