#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...