(三)MPI庫的簡單使用

2021-09-24 14:15:04 字數 1079 閱讀 3636

被第乙個呼叫的mpi函式用於並行環境初始化,其後面的**到mpi_finalize之前的**可以在每個程序都被執行一次。

退出mpi系統,除了主程序(rank==0)其他所有的程序都必結束。但是經測試該函式後面的**還是會執行,why?

初始化,這樣以後就根據myid的值來區分每個程序。

初始化,將開啟的執行緒數存放在threadsize中。

將當前執行緒中的d[0]位址處的資料傳送給myid執行緒,1表示個數傳送乙個,0是tag,接受和傳送的雙方要設定一致。

當前執行緒接受來自receiveid執行緒的資料。

以上的六個函式是mpi庫中最常用的函式。除此之外還有一些其他的函式,能使程序間的通訊非常方便。

廣播操作,將各個執行緒的d陣列的n個值全部都和當前執行緒相同

將各個執行緒中num2求和並存在當前執行緒的sum_num2中。mpi_sum是加和操作,還有求最大值求最小值等。注意,加和時不能講num1和sum_num1都這是成乙個變數,會出錯,比如我們對a變數加和時可以 a = a+a;將得到的和仍然存在a中,這裡不行。和的儲存必須用另外乙個變數。

將各個程序中的num1數字加和儲存在sum_num1中。然後再將sum_num1廣播出去。

編譯c檔案

編譯c++檔案

開啟四個執行緒執行test程式

mpiexec是在mpi標準中定義的,具體mpi定義的標準是什麼可以自己google之

mpirun是有許多mpi各自實現的命名,因為他從來沒有被標準化過,所以各個版本的mpi總是存在細微的差異。

我們正常使用就用mpiexec即可。

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

boost庫編譯安裝以及mpi介面的使用

boost是乙個c 的庫,裡面雖然實現了mpi的一些介面,但是要使用的話,仍然需要配合mpi使用 找到x86 64的devel版本進行安裝 尋找mpich包所包含的檔案 找到mpich的二進位制執行資料夾 將二進位制執行檔案新增到環境變數的搜尋路徑中 使環境變數配置生效 解壓檔案 執行引導指令碼程式...

request庫的簡單使用

7種基本用法 首先安裝requests庫 如果你本地只有乙個python環境直接執行pip install requests 像我本地裝了3個不同的python怎麼使你安裝在你想要安裝的python下呢?我以安裝到python3.6為例 找到python的安裝位置下的scripts目錄複製 進入cm...