如圖所示,假設每乙個程序代表乙個節點,在集群中,由於每台裝置的效能不同,那麼獲取集群中每台裝置的速度就顯得尤為必要,了解每台裝置的情況可以更加高效地進行任務分配。
現在,每個程序都擁有乙個隨機數,我們需要將其收集上來並進行排序,然後將對應的排名順序分發給各個子程序,這樣每個子程序都可以知道自己在整個系統中的排名。
//定義 程序-隨機數結構體
int main(int argc,char **argv)
srand(time(null)+rank);
sbuf = rand() % 100;//生成隨機數
mpi_gather(&sbuf,1,mpi_int,rbuf,1,mpi_int,0,comm);//收集每個程序的資料
//////
//////
//////
///////
int rank_buff[size],rcv_rank_buf[1];
dic dic[size];
if(rank == 0)
/////////
//////
//////
//////
//////
////////
int tmp;
for(int m = 0; m < size - 1; m++)
for(int n = 0; n < size - 1 - m; n++)
}//對收集上來的資料進行排序
for(int x = 0; x < size; x++)}}
}//分發到各個子程序
mpi_scatter(rank_buff,1,mpi_int,rcv_rank_buf,1,mpi_int,0,comm);
printf("process %d rank %d\n",rank,rcv_rank_buf[0]);
mpi_finalize();
return
0;}如圖所示,開十個程序,上半部分為初始的資料,下半部分為每個程序的排名。
MPI並行程式設計
了解並熟悉mpi並行程式開發環境,學會並行程式編譯方法,並行程式作業提交方法,並行程式執行狀態觀察與分析方法,本實驗的內容主要包括學習如何編譯執行mpi程式以及通過較簡單的 helloworld.c 程式的實際執行來進一步的熟悉 實驗一,本實驗的內容主要包括學習如何編譯執行mpi程式以及通過較簡單的...
初識併發程式設計 MPI
mpi是乙個跨語言的通訊協議,用於併發程式設計。mpi標準定義了一組具有可移植性的程式設計介面。解壓檔案 tar xzvf mpich 3.2.1.tar.gz cd mpich 3.2.1 usr local cellar mpich 改為你要安裝 mpich 的路徑 configure pref...
雲計算 MPI程式設計
mpi是一種平行計算架構,mpich是mpi的一種實現,本集群使用虛擬機器安裝,作業系統是ubuntu14.04,使用三颱機器,使用者名稱都是ubuntu,機器名分別是ub0,ub1,ub2 測試程式 include mpi.h include include double f double dou...