下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第七講MPI的”點(diǎn)到點(diǎn)(Point-to-Point)”MPI的基本通信機(jī)消息交換雙方的不對(duì)稱(chēng)消息匹配的模標(biāo)準(zhǔn)模緩存模同步模就緒模消息交換的語(yǔ)順序進(jìn)展公平MPI的基本通信機(jī)以MPIruntimeposted狀態(tài)提出消息發(fā)送請(qǐng)求,消息數(shù)據(jù)已準(zhǔn)備好、可以發(fā)pending狀態(tài)posted狀態(tài)pending狀態(tài) 提出提出發(fā)送提出接收請(qǐng) NMPIruntime成功緩存數(shù)
返回用戶(hù)返回用戶(hù)程
同 返回用戶(hù)程 同
返回用戶(hù)程MPI_Send(s_buf,s_count,datatype,dest,s_tag,MPI_Recv(r_buf,r_count,datatype,source,r_tag,comm,status)message=(s_buf,s_count,datatype,source,dest,tag,交換什么?(s_bufs_countspecifiedbyapplicationonsendersideMessageMessage空specifiedbyMPIruntimeonsenderside
specifiedbyapplicationonreceiversidespecifiedbyMPIruntimeonreceiversidespecifiedbysendersideMessageMessage
specifiedbyapplicationonreceiverside空specifiedbyMPIruntimeonsenderside
specifiedbyMPIruntimeonreceiversidespecifiedbysenderside
MessagespecifiedbyapplicationMessage空specifiedbyMPIruntimeonsenderside
specifiedbyMPIruntimeonreceiverside可以對(duì)消息占用的空間執(zhí)行其他的操作MPI_Send(buf,count,datatype,dest,tag, 在MPIruntime的緩沖區(qū)中,在 到runtime另一部分在receiver端的runtimebuffer中receiver端的applicationbuffer MPI_Recv(buf,count,datatype,source,tag,comm,MPIruntime在執(zhí)行MPI_Recv時(shí),依據(jù)(datatypesource,檢查MPIruntime從runtimebuffer 到applicationbuffer從runtimebufferapplicationbufferreceiver端的applicationbuffer中其它消息發(fā)送語(yǔ)句(下一講講述數(shù) 的分 、1-N 、N-M 現(xiàn)N-Body計(jì)算時(shí),同一個(gè)超級(jí)計(jì)算步上將執(zhí)行task0,1、task1,2,這兩個(gè)任務(wù)對(duì)粒子子集1中各粒子加速度的規(guī)約運(yùn)數(shù)組片段A[k+1..2K*]時(shí),要用到數(shù)組片段A[0..K*]在上一數(shù) 的分類(lèi):1-N,務(wù)task1,i(i=0,1,2…)的結(jié)果進(jìn)行規(guī)約數(shù) 的分類(lèi):N-M如何編碼?以求素?cái)?shù) 從i+1個(gè)片段開(kāi)始的k個(gè)片段可以并行執(zhí)行,其中第i+k個(gè)片段的最后一個(gè)整數(shù)小于m2。這k需要的包含的素 編 的問(wèn)消 ——區(qū)分消息的類(lèi)文件的head塊 0#進(jìn)其他進(jìn)分0#進(jìn)其他進(jìn)0#進(jìn)其他結(jié)束0#進(jìn)其他s_tag:一個(gè)整數(shù), r_tag:所接收消息的類(lèi)型,可以是一個(gè)整數(shù), MPI_Send(bufcountdatatypedesttag,comm):所tag:[0UB]MPI_Recv(buf,count,datatype,source,tag, tag:可以是[0UB]中的一個(gè)整數(shù),也可以是前處理器的消息,依據(jù)(datatype,tag,comm)與MPIruntime緩理器的消息,依據(jù)(datatype,source,comm)與MPIruntime緩存
MPI_ANY_TAG、與MPI的問(wèn)題適應(yīng)Peer-to-peerClient-Producer-Master-_AN_TAG、_AN_ORCEndR11息交換,也能支持“1”Why“ANY_SOURCEconsumer事先不一定知道Why“ANY_TAG”?同一producer可能在不同的情況MPI基本通信機(jī)制的 當(dāng)消息數(shù)據(jù)不能被MPIruntime緩存時(shí),若發(fā)送 點(diǎn)到點(diǎn)通point-to-point通信的同步方法的分blockingcommunication:阻塞通信,由MPIruntime隱式同non-blockingcommunication:非阻塞通信,由應(yīng)用程序顯式同point-to-point通信的同步模式的分standard:標(biāo)準(zhǔn)模式,由MPIruntime自動(dòng)選擇發(fā) 接收方的同步buffered:緩沖模式,發(fā) 接收方無(wú)顯式同synchronous:同步模式,由發(fā)送方確認(rèn)同步ready:就緒模式point-to-point通信的語(yǔ)order:消息收發(fā)順progress:消息傳遞進(jìn)fairness:消息收發(fā)公平
標(biāo)準(zhǔn)模MPI_Send(buf,count,datatype,dest,tag,MPI_Recv(buf,count,datatype,source,tag,comm, count,datatype)指定的 緩沖模 由MPIruntime管理MPI將消息數(shù)據(jù)及其envelop放到由下面Buffer_attach建立的 MPI_Buffer_attach(INbuffer,INsize):在用戶(hù)空間為MPI應(yīng)用程MPI_Buffer_detach(OUTbufferOUT
返回用戶(hù)程提出接收請(qǐng) MPIMPI完成數(shù)據(jù)緩返返回用戶(hù)程 同 無(wú)論意中匹配的MPI_Recv是否已經(jīng)Postedsender
提出接收用戶(hù)程序睡N用戶(hù)程序睡成功緩存數(shù)
同
喚醒喚醒用戶(hù)程
喚醒用戶(hù)
提出接收請(qǐng) 提出發(fā)送請(qǐng)返回用戶(hù)程 返回用戶(hù)程MPI消息通信的同步發(fā)送非阻塞式點(diǎn)到點(diǎn)通 Non-blocking非阻塞的消息發(fā)送包括兩個(gè)獨(dú)立的部Non-blockingsendstart:把消息發(fā)送請(qǐng)求提交給MPI,但從用戶(hù)程序空取走消息的data和envelop前,即返回Non-blockingsendcomplete:檢查消息數(shù)據(jù)是否已經(jīng)由MPI從sender的序空間取出Non-blockingsendstart:包括四種模標(biāo)準(zhǔn)模緩沖模式同步模就緒模式Non-blockingsendcomplete:有兩種檢查模等待消息傳遞請(qǐng)求完成后才返查看消息傳遞請(qǐng)求是否完成:MPI_Test(request,flag,非阻塞的消息發(fā)送表MPI系統(tǒng)已經(jīng)可以從sender的消息緩沖區(qū)取數(shù)據(jù)在提交了消息發(fā)送請(qǐng)求之后、MPI完成消息發(fā)送之前,sender不能消息緩沖Non-blockingNon-blockingreceivestart:把消息接收請(qǐng)求提交給MPI,但 MPI_Irecv(buf,count,datatype,source,tag,comm,Non-blockingreceivecomplete:檢查消息數(shù)據(jù)是否已經(jīng)由 消息緩沖MPI_Isend和MPI_ISend(void*buf,intcount,MPI_Datatype,datatype,intdest,inttag, Mcomm,MPI_Request*request)MPI_IRecv(void*buf,intcount,MPI_Datatype,datatype,intsource,inttag, Mcomm,MPI_Request*request)與誰(shuí)匹配?MPI_SendMPI_BsendMPI_Ssend、能還 非阻塞通信的其它模MPI_Ibsend(void*buf,intcount,MPI_Datatype,datatype,intdest,inttag, Mcomm,MPI_Request*request)MPI_Issend(void*buf,intcount,MPI_Datatype,datatype,intdest,inttag, Mcomm,MPI_Request*request)何時(shí)返回?等到意中匹配的MPI_Recv已經(jīng)開(kāi)始接收消息數(shù)據(jù)MPI_Irsend(void*buf,intcount,MPI_Datatype,datatype,intdest,inttag, Mcomm,MPI_Request*request)非阻塞通信與并行性能優(yōu) 數(shù)據(jù)發(fā)送方:必須等到把消息數(shù)據(jù)傳遞給MPI系統(tǒng)之后,才能夠繼續(xù)后的計(jì)消息接收方:必須等到從MPI系統(tǒng)獲得了消息數(shù)據(jù)之后,才能夠繼續(xù)后的數(shù)據(jù)運(yùn)然而,在很多應(yīng)用問(wèn)題中 與數(shù)據(jù)計(jì)算之間有并行性,可以在執(zhí)一部分?jǐn)?shù)據(jù)的運(yùn)算時(shí),同時(shí)執(zhí)行另一部分?jǐn)?shù)據(jù)的交換,問(wèn)題本身的特征部分?jǐn)?shù)據(jù)的運(yùn)算與另使并行計(jì)算機(jī)中的“計(jì)算部件”和“通信部件”并行工“計(jì)算—通信 實(shí)例:Laplace計(jì)問(wèn)題描一個(gè)區(qū)域,是的邊上各點(diǎn)的F()固在內(nèi)的任何一點(diǎn),F(xiàn)()是由{F():}決定的,其中假定是一個(gè) ,數(shù)假定是一個(gè) ,數(shù)值解法如將離散化為一個(gè)二維網(wǎng)格F(0)(i,j)=0,F(0)(i,j)=0,0<i<N,F(0)(i,0)=A(i),F(0)(0,j)=B(j),F(0)(i,M)=C(i),0iN,0<j<M,數(shù)組A、B、C、D表示上各點(diǎn)的迭代,至F(t)(i,j)F(t-1)(i,j)F(t)(i,j)=(F(t-1)(i-1,j)+F(t-1)(i+1,j)+F(t-1)(i,j-1)+F(t-0<i<N,F(t)(i,0)=F(t-1)(i,0),F(0)(0,j)=F(t-1)(0,j),F(0)(i,M)=F(t-F(0)(N,j)=F(t-1)(N,j),0iN,假設(shè)有p個(gè)處理器,N=pq-處理器i用局部數(shù)組locF[q, 數(shù)組片段F[(i-1)q..iq-1,在第t個(gè)時(shí)間計(jì)算任務(wù)1:使用本地?cái)?shù)據(jù)更新locF[1..q-2,計(jì)算任務(wù)2:更新locF[0,1..M-1],使處理器i-1第t-1個(gè)時(shí)間步的locF[q-1,本地第t-1個(gè)時(shí)間步的locF[1,計(jì)算任務(wù)3:更新locF[q-1,1..M-1],使處理器i+1第t-1個(gè)時(shí)間步的locF[0,本地第t-1個(gè)時(shí)間步的locF[q-2,通信要求:在每個(gè)時(shí)間步t接處理器i-1第t-1個(gè)時(shí)間步的locF[q-1,處理器i+1第t-1個(gè)時(shí)間步的locF[0,發(fā)第t-1個(gè)時(shí)間步的locF[0,0..M]到處理器i-第t-1個(gè)時(shí)間步的locF[q-1,0..M]到處理器
顯然,在處理器i計(jì)算任務(wù)recv_msg:接收處理器i-1和處理器i+1發(fā)送的數(shù)send_msg:向處理器i-1和處理器i+1發(fā)送的數(shù)計(jì)算任務(wù)2:更新locF[0,1..M-1],使計(jì)算任務(wù)3:更新locF[q-1,1..M-1],使1計(jì)算任務(wù)時(shí)計(jì)算任務(wù)計(jì)算任務(wù)間計(jì)算任務(wù)計(jì)算任務(wù)計(jì)算任務(wù)MPI_ANY_TAG、 的問(wèn) tag、ANY_TAG、ANY_SOURCE示Char If(my_rank==0){//master(consumer/sever)MPI_Recv(buf,100,MPI_CHAR,MPI_ANY_SOURCE,M_WORLD,status);Case10:serial_procedure_1(buf,source,&flag);Case20:serial_procedure_2(buf,source,&flag);Case30:serial_procedure_3(buf,source,&flag);Default:serial_procedure_def(buf,source,&flag);}}}else{//slave(producer/client)MPI_send(buf,count,MPI_CHAR,0, }}多個(gè)發(fā)送者并發(fā)地向一個(gè)接收者發(fā)送消不同發(fā)送者的消息達(dá)到順序是任意每個(gè)消息(大小 )表示的請(qǐng)求不消息傳遞的順 (agu)的通道,進(jìn)行消息匹配從中選擇一個(gè)匹配成pull操作,從中取出匹配成功的第一條消IfMPI_R
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 苗木戰(zhàn)略協(xié)議書(shū)
- 蘋(píng)果網(wǎng)絡(luò)協(xié)議書(shū)
- 藤茶采購(gòu)合同范本
- 視頻剪輯協(xié)議書(shū)
- 認(rèn)父母的協(xié)議書(shū)
- 討要工錢(qián)協(xié)議書(shū)
- 設(shè)備調(diào)試協(xié)議書(shū)
- 設(shè)計(jì)制合同范本
- 試用機(jī)臺(tái)協(xié)議書(shū)
- 試驗(yàn)費(fèi)用協(xié)議書(shū)
- 2025年重慶青年職業(yè)技術(shù)學(xué)院非編合同制工作人員招聘68人備考題庫(kù)及一套答案詳解
- 2025年常熟市交通產(chǎn)業(yè)投資集團(tuán)有限公司(系統(tǒng))招聘14人備考題庫(kù)含答案詳解
- 臨沂市公安機(jī)關(guān)2025年第四季度招錄警務(wù)輔助人員備考題庫(kù)新版
- 2025年新版中醫(yī)藥學(xué)概論試題及答案
- 深圳市龍崗區(qū)2025年生物高一上期末調(diào)研模擬試題含解析
- 欄桿勞務(wù)分包合同范本
- 2025年黃帝內(nèi)經(jīng)章節(jié)題庫(kù)及答案
- 具身智能+醫(yī)療康復(fù)中多模態(tài)感知與自適應(yīng)訓(xùn)練系統(tǒng)研究報(bào)告
- 廣東省深圳市寶安區(qū)2026屆高一上生物期末聯(lián)考試題含解析
- 自動(dòng)化生產(chǎn)線(xiàn)調(diào)試與安裝試題及答案
- GB/T 7986-2025輸送帶滾筒摩擦試驗(yàn)
評(píng)論
0/150
提交評(píng)論