MPI簡單記錄

2021-10-01 10:26:41 字數 1355 閱讀 7867

#include #include int main(int argc, char* ar**) 

else if (1 == rankid)

mpi_finalize(); // 結束mpi環境

return 0;

}

該程式實現的功能是程序0向程序1傳送乙個整數16,程序1接收到並列印到視窗。

其中,mpi_init(&argc, &ar**);:是mpi的初始化函式;

mpi_comm_rank(mpi_comm_world, &rankid);:是獲取該程序的id編號,後面會用來判斷該程序執行哪部分**;

if (0 == rankid)…else…:這部分**每個程序會也只會選擇執行其中乙個某一塊,如程序0只會執行判斷rankid0為true的部分**,程序1只會執行判斷rankid1為true的部分**,該判斷部分之外的**是所有程序共有的**,也就是全都會執行;

mpi_send(&sendnum, 1, mpi_int, 1, 0, mpi_comm_world);:按引數的順序:sendnum是要傳送的資料,1是傳送資料的數量,mpi_int是資料的型別位int型,1 是接收端的程序編號,0是訊息的識別符號,mpi_comm_world是由所有程序組成的通訊組,也就是通訊子。

mpi_send(const void *buf, int count, mpi_datatype datatype, int dest, int tag, mpi_comm comm)
引數:

buf:傳送緩衝區的首位址

count:需要傳送的位元組數

datatype:每個傳送元素的資料型別

dest:目標的rank(id)

tag:訊息標識(integer)

comm:通訊域

mpi_recv(void *buf, int count, mpi_datatype datatype, int source, int tag,mpi_comm comm, mpi_status *status)
輸出引數:

buf:接收緩衝區的首位址

status:status物件(status)

輸入引數:

count:接收緩衝區最多存放位元組數(integer)

datatype:每個接收元素的資料型別

source:傳送者的rank (integer)

tag:訊息標識(integer)

comm:通訊域

MPI簡單使用說明

1.程式最開始需呼叫mpi庫 include mpif.h 2.進入mpi工作環境需先輸入下面三個命令 mpi init ierr 初始化mpi工作環境 mpi comm rank mpi comm world,myid,ierr myid 程序號 mpi comm size mpi comm wo...

(三)MPI庫的簡單使用

被第乙個呼叫的mpi函式用於並行環境初始化,其後面的 到mpi finalize之前的 可以在每個程序都被執行一次。退出mpi系統,除了主程序 rank 0 其他所有的程序都必結束。但是經測試該函式後面的 還是會執行,why?初始化,這樣以後就根據myid的值來區分每個程序。初始化,將開啟的執行緒數...

MPI學習筆記 MPI環境配置

第一步 ubuntu下安裝ssh伺服器和客戶端 開啟新立得,在全部裡鍵入openssh,選擇openssh client和openssh server標記安裝應用,或者直接執行 sudo apt get install openssh client openssh server 第二步 安裝mpic...