高性能計(jì)算導(dǎo)論-MPIProgramming_第1頁
高性能計(jì)算導(dǎo)論-MPIProgramming_第2頁
高性能計(jì)算導(dǎo)論-MPIProgramming_第3頁
高性能計(jì)算導(dǎo)論-MPIProgramming_第4頁
高性能計(jì)算導(dǎo)論-MPIProgramming_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、MPI ProgrammingMPI Introductiono MPI-Message Passing Interfaceo MPI is a library, not a programming languageo MPI is a standard, not a specific implementationImplementations of MPI Specificationo MPICH (Argonne)o MSMPI (Microsoft)MPI程序的初始化o 任何一個任何一個MPI程序在調(diào)用程序在調(diào)用MPI函數(shù)之前,函數(shù)之前,首先調(diào)用的是初始化函數(shù)首先調(diào)用的是初始化函數(shù)MPI

2、_INIT. o 建立建立MPI的執(zhí)行環(huán)境的執(zhí)行環(huán)境o int MPI_Init(int *argc, char *argv)n Input Parameters: * argc - Pointer to the number of arguments * * * argv - Pointer to the argument vectorn 將命令行參數(shù)傳給各個進(jìn)程獲取通信域包含的進(jìn)程數(shù)o MPI_Comm_size(MPI_Comm, int *size)n MPI_Comm的默認(rèn)值為MPI_COMM_WORLD,它包括了初始化時可得的全部進(jìn)程。n 函數(shù)返回時,size中存放指定通信域中的進(jìn)

3、程數(shù)。獲取當(dāng)前進(jìn)程標(biāo)識o MPI_Comm_rank(MPI_Comm comm, int *rank)n 函數(shù)返回時,rank中存放當(dāng)前進(jìn)程在給定的通信域中的進(jìn)程標(biāo)識號。n 進(jìn)程標(biāo)識號用來將自身和其它的進(jìn)程區(qū)別開來,實(shí)現(xiàn)進(jìn)程間的通信。消息發(fā)送o 源進(jìn)程將緩存中的數(shù)據(jù)發(fā)送到目的進(jìn)程o MPI_Send(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)o buf:發(fā)送緩存的起始地址o count:發(fā)送的數(shù)據(jù)個數(shù)o datatype:數(shù)據(jù)類型o dest:目的進(jìn)程標(biāo)識號o Tag:消息標(biāo)志o

4、 comm:通信域MPI預(yù)定義的數(shù)據(jù)類型消息接收o 目的進(jìn)程從源進(jìn)程接受數(shù)據(jù),存入緩存中o MPI_Recv(void* buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status)o buf:接收緩存的起始地址o count:最多可接收的數(shù)據(jù)個數(shù)o datatype:數(shù)據(jù)類型o source:發(fā)送數(shù)據(jù)的進(jìn)程標(biāo)識號o Tag:消息標(biāo)志o comm:通信域o Status:返回狀態(tài)MPI程序結(jié)束o MPI程序的最后一個調(diào)用必須為:n MPI_Finalize()o 結(jié)束

5、MPI程序的執(zhí)行Hello WorldIllustration of point-to-point message passingSender & receiver must matcho Count and datatypeo Tag and communicatorMPI應(yīng)用環(huán)境o 應(yīng)用環(huán)境的基本元素nN 個進(jìn)程:0N-1n進(jìn)程之間的通信路徑o 通信域MPI_COMM_WORLDn進(jìn)程的集合以及通路nMPI_Comm_size:進(jìn)程的總數(shù)NnMPI_Comm_rank:某一進(jìn)程的具體標(biāo)識o 編譯及運(yùn)行(linux)nMpicc o hello Mpirun np 4 ./hello

6、Notes on program exampleo Each statement executes independently in each processo MPI_COMM_WORLD is defined by mpi.ho mpi.h must be #includedMPI的常用組通信接口-廣播o 根進(jìn)程將一條消息發(fā)送到組內(nèi)的所有其它的進(jìn)程,同時也包括它本身在內(nèi)。o MPI_Bcast(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm)n buffer:通信消息緩存的起始地址n count

7、:數(shù)據(jù)個數(shù)n datatype:數(shù)據(jù)類型n root:根進(jìn)程的標(biāo)識號n comm:通信域MPI的常用組通信接口-歸約o 將每個進(jìn)程緩沖區(qū)中的數(shù)據(jù)按給定的操作進(jìn)行計(jì)算,并將計(jì)算結(jié)果返回到根進(jìn)程的輸出緩沖區(qū)中。nMPI_Reduce(void* sendbuf, void* recvbuf, int count, MPI_Datatype, MPI_Op op, int root, MPI_Comm comm)o sendbuf:發(fā)送消息緩存的起始地址o recvbuf:接收消息緩存的起始地址o count:發(fā)送緩存中的數(shù)據(jù)個數(shù)o op:歸約操作符o root:根進(jìn)程序列號o comm:通信域MPI預(yù)定義的歸約操作o 用戶也可以使用MPI_Op_create自定義歸約操作MPI歸約操作的實(shí)現(xiàn)MPI_Bcast()和MPI_Reduce()應(yīng)用Barrierso Blocks until all processes in the communicator have reached this routineo A point at which all processes must wait until all other processes have reached that pointo MPI_Barrier(MPI_Comm comm)Synchronous &

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論