MPI是一個跨語言的通訊協(xié)議,用于編寫并行計算機。支持點對點和廣播。MPI是一個信息傳遞應(yīng)用程序接口,包括協(xié)議和和語義說明,他們指明其如何在各種實現(xiàn)中發(fā)揮其特性。MPI的目標(biāo)是高性能,大規(guī)模性和可移植性。MPI在今天仍為高性能計算的主要模型。
主要的MPI-1模型不包括共享內(nèi)存概念,MPI-2只有有限的分布共享內(nèi)存概念。但是MPI程序經(jīng)常在共內(nèi)存的機器上運行。在MPI模型周邊設(shè)計程序比在NUMA架構(gòu)下設(shè)計要好因為MPI鼓勵內(nèi)存本地化。
盡管MPI屬于OSI參考模型的第五層或者更高,他的實現(xiàn)可能通過傳輸層的sockets和Transmission Control Protocol(TCP)覆蓋大部分的層。大部分的MPI實現(xiàn)由一些指定慣例集(API)組成,可由C,C++,Fortran,或者有此類庫的語言比如C#,Java orPython直接調(diào)用。MPI優(yōu)于老式信息傳遞庫是因為他的可移植性和速度。
中文名信息傳遞接口
英文名MPI
用途編寫并行計算機
目標(biāo)高性能,大規(guī)模性和可移植性
簡介與OpenMP并行程序不同,MPI是一種基于信息傳遞的并行編程技術(shù)。消息傳遞接口是一種編程接口標(biāo)準(zhǔn),而不是一種具體的編程語言。簡而言之,MPI標(biāo)準(zhǔn)定義了一組具有可移植性的編程接口。
組成數(shù)據(jù)類型
定義了精確的數(shù)據(jù)類型參數(shù)而不使用字節(jié)計數(shù),以數(shù)據(jù)類型為單位指定消息的長度;對于C和Fortran,MPI均預(yù)定義了一組數(shù)據(jù)類型和一些附加的數(shù)據(jù)類型;可以發(fā)送或接收連續(xù)的數(shù)據(jù),還可以處理不連續(xù)的數(shù)據(jù);允許發(fā)送和接收不同的數(shù)據(jù)類型。
通信域
MPICH中的一個通信域定義了一組進程和一個通信的上下文,虛擬處理器拓?fù)洹傩缘葍?nèi)容。它以對象形式存在,作為通信操作的附加參數(shù)。MPI預(yù)定義的通信域:mpi?comm?world(包含所有進程)、mpi?comm?lf(只包含各個進程自己的進程組)。
6個MPI調(diào)用接口1.mpi?init()初始化MPI執(zhí)行環(huán)境,建立多個MPI進程之間的聯(lián)系,為后續(xù)通信做準(zhǔn)備;
2.mpi?finalize結(jié)束MPI執(zhí)行環(huán)境;
3.mpi?comm?rank用來標(biāo)識各個MPI進程的,給出調(diào)用該函數(shù)的進程的進程號,返回整型的錯誤值。兩個參數(shù):MPI_Comm類型的通信域,標(biāo)識參與計算的MPI進程組;&rank返回調(diào)用進程中的標(biāo)識號;
4.mpi?comm?size用來標(biāo)識相應(yīng)進程組中有多少個進程;
5.mpi?nd(buf,counter,datatype,dest,tag,comm):buf:發(fā)送緩沖區(qū)的起始地址,可以是數(shù)組或結(jié)構(gòu)指針;count:非負(fù)整數(shù),發(fā)送的數(shù)據(jù)個數(shù);datatype:發(fā)送數(shù)據(jù)的數(shù)據(jù)類型;dest:整型,目的的進程號;tag:整型,消息標(biāo)志;comm:MPI進程組所在的通信域
含義:向通信域中的dest進程發(fā)送數(shù)據(jù),數(shù)據(jù)存放在buf中,類型是datatype,個數(shù)是count,這個消息的標(biāo)志是tag,用以和本進程向同一目的進程發(fā)送的其它消息區(qū)別開來。
6.mpi?recv(buf,count,datatype,source,tag,comm,status):source:整型,接收數(shù)據(jù)的來源,即發(fā)送數(shù)據(jù)進程的進程號;status:MPI_Status結(jié)構(gòu)指針,返回狀態(tài)信息。
MPI并行編程并行編程模式
對等模式—程序的各個部分地位相同,功能和代碼基本一致,只是處理的數(shù)據(jù)或?qū)ο蟛煌恢鲝哪J健绦蛲ㄐ胚M程之間的一種主從或依賴關(guān)系。
點對點通信模式
阻塞—發(fā)送完成的數(shù)據(jù)已經(jīng)拷貝出發(fā)送緩沖區(qū),即發(fā)送緩沖區(qū)可以重新分配使用,阻塞接受的完成意味著接收數(shù)據(jù)已經(jīng)拷貝到接收緩沖區(qū),即接收方已可以使用。非阻塞—在必要的硬件支持下,可以實現(xiàn)計算和通信的重疊。4種通信模式:標(biāo)準(zhǔn)通信模式、緩存通信模式、同步通信模式、就緒通信模式。
組通信
一個特定組內(nèi)所有進程都參加全局的數(shù)據(jù)處理和通信操作。
功能:通信—組內(nèi)數(shù)據(jù)的傳輸;同步—所有進程在特定的點上取得一致;計算—對給定的數(shù)據(jù)完成一定的操作。
類型:1)數(shù)據(jù)移動:廣播(mpi?bcast)收集(mpi?gather)散射(mpi?scater)組收集(mpi?all?gather)全交換(all?to?all);2)聚集:規(guī)約(mpi?reduce)將組內(nèi)所有的進程輸入緩沖區(qū)中的數(shù)據(jù)按,定操作OP進行運算,并將起始結(jié)果返回到root進程的接收緩沖區(qū)掃描(mpi?scan)要求每一個進程對排在它前面的進程進行規(guī)約操作,結(jié)果存入自身的輸出緩沖區(qū);3)同步:路障(mpi?barrier)實現(xiàn)通信域內(nèi)所有進程互相同步,它們將處于等待狀態(tài),直到所有進程執(zhí)行它們各自的MPI-BARRIER調(diào)用。
歷史創(chuàng)建信息傳遞接口的討論始于1991的夏天,一個組研究員于在奧地利進行山中修養(yǎng)時。那次討論之后,于1992年4月29-30號于弗吉尼亞威廉姆斯伯格召開了一次關(guān)于分布式內(nèi)存環(huán)境下的信息傳遞標(biāo)準(zhǔn)設(shè)置研討會。在這次研討會上討論了對標(biāo)準(zhǔn)信息傳遞接口至關(guān)重要的一些基本特征,并創(chuàng)建了一個繼續(xù)標(biāo)準(zhǔn)化此過程的工作組。Jack?Dongarra,Rolf?Hempel,Tony?Hey,and?David?W.Walker于1992年11月提出了一些初始草稿提議,后被稱為MPI1。在1992年11月,一個MPI的工作組會議在Minneapolis召開,他們決定了為此標(biāo)準(zhǔn)化過程創(chuàng)建一個更正式的標(biāo)注。MPI工作組在1993年的頭九個月每6個星期見面一次。MPI標(biāo)準(zhǔn)草稿在93年11月的超級計算機會議上提出。在經(jīng)過一陣子的公眾論議后,MPI修改了一些部分,并于1994年6月發(fā)布了MPI1.0版本。這些會議和郵件共同創(chuàng)建了MPI論壇,此論壇后來開放至所有高性能計算的成員。在一九九七年的七月在對原來的MPI作了重大擴充的基礎(chǔ)上又推出了MPI的擴充部分MPI-2而把原來的MPI各種版本稱為MPI-1。MPI-2的擴充很多但主要是三個方面并行I/O,遠程存儲訪問和動態(tài)進程管理。
MPI包含了80個人40個組織的共同努力,他們主要都在美國和歐洲。主要的時下電腦供應(yīng)商也涉入MPI,還有大學(xué)的研究員,政府公務(wù)員和產(chǎn)業(yè)界。
MPI標(biāo)準(zhǔn)定義了核心庫的語法和語義,這個庫可以被Fortran和C調(diào)用構(gòu)成可移植的信息傳遞程序。MPI提供了適應(yīng)各種并行硬件商的基礎(chǔ)集,他們都被有效的實現(xiàn)。這導(dǎo)致了是硬件商可以基于這一系列底層標(biāo)準(zhǔn)來創(chuàng)建高層次的慣例,從而為分布式內(nèi)存交互系統(tǒng)提供他們的并行機。MPI提供了一個簡單易用的可移植接口,足夠強大到程序員可以用它在高級機器上進行進行高性能信息傳遞操作。
在創(chuàng)建“真正”的MPI標(biāo)準(zhǔn)過程中,研究員們集成了幾個系統(tǒng)最有用的特征到MPI中,而不是用一個系統(tǒng)來適應(yīng)標(biāo)準(zhǔn)。其特征為IBM,Intel,nCUBE,PVM,Express,P4?and?PARMACS等系統(tǒng)所用。
信息傳遞模式非常之吸引人,皆因它的廣泛可移植性,以及能被用于分布式內(nèi)存/共享內(nèi)存的多核處理器,工作站網(wǎng)絡(luò),和這些架構(gòu)的組合。信息傳遞模式可用于多重設(shè)定,獨立于網(wǎng)絡(luò)速度和內(nèi)存架構(gòu)。
參考資料本文發(fā)布于:2023-06-01 18:58:56,感謝您對本站的認(rèn)可!
本文鏈接:http://m.newhan.cn/zhishi/a/92/186817.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。
本文word下載地址:MPI(信息傳遞接口).doc
本文 PDF 下載地址:MPI(信息傳遞接口).pdf
| 留言與評論(共有 0 條評論) |