Presentation is loading. Please wait.

Presentation is loading. Please wait.

MPI 第三章 需要邊界資料交換的平行程式.

Similar presentations


Presentation on theme: "MPI 第三章 需要邊界資料交換的平行程式."— Presentation transcript:

1 MPI 第三章 需要邊界資料交換的平行程式

2 outline 何謂『需要邊界資料交換』? MPI_Sendrecv() MPI_Bcast() 邊界資料交換的循序程式T3SEQ 資料不切割的邊界資料交換平行程式 T3CP 資料切割的邊界資料交換平行程式 T3DCP_1

3 何謂『需要邊界資料交換』? 平行處理的精神在於將計算從一顆處理器分散到多顆處理器上,借以縮短運算時間。其過程會將資料以各種方式交給每一顆處理器。 『需要邊界資料交換』的平行程式是最常見的一種平行處理程式。   a[i]=(b[i-1]+b[i]+b[i+1])*c[i]

4 MPI_Sendrecv() itag = 110;
MPI_Sendrecv((void *)&b[iend], icount, DATA_TYPE,r_nbr,itag,(void*)&b[istartm1], icount,DATA_TYPE,l_nbr,itag,comm,istat); b[iend] 是要送出去的資料起點 icount 是要送出去的資料數量 DATA_TYPE 是要送出去的資料類別 r_nbr 是要送出去的目的地CPUid(右鄰) I tag 是要送出去的資料標籤 b[iend] 是要接收的資料起點 icount 是要接收的資料數量 DATA_TYPE 是要接收的資料類別 r_nbr 是要接收的來源地CPUid(左鄰) I tag 是要接收的資料標籤 Istat 是叫用這個函式執行後的狀況

5 MPI_Bcast() b 是要送出去的資料起點,簡單變數或陣列名稱 icount 是要送出的資料數量
Iroot = 0; MPI_Bcast((void *)&b,icount,DATA_TYPE,iroot,comm); b 是要送出去的資料起點,簡單變數或陣列名稱 icount 是要送出的資料數量 DATA_TYPE 是要送出去的資料類別 iroot 是要送出去資料的CPUid

6 … 邊界資料交換的循序程式T3SEQ for(i=1;i<ntotal-1;i++){
a[i]=c[i]*d[i]+(b[i-1]+2.0*b[i]+b[i+1])*0.25; amax=max(amax,a[i]); }

7 資料不切割的邊界資料交換平行程式 T3CP

8 資料切割的邊界資料交換平行程式 T3DCP_1


Download ppt "MPI 第三章 需要邊界資料交換的平行程式."

Similar presentations


Ads by Google