資源描述:
《《MPI并行程序設(shè)計》PPT課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、九月21MPI并行程序設(shè)計1/217機群應用開發(fā)并行編程原理及程序設(shè)計ParallelProgramming:FundamentalsandImplementation曙光信息產(chǎn)業(yè)有限公司九月21九月21MPI并行程序設(shè)計2/217參考文獻黃鎧,徐志偉著,陸鑫達等譯.可擴展并行計算技術(shù),結(jié)構(gòu)與編程.北京:機械工業(yè)出版社,P.33~56,P.227~237,2000.陳國良著.并行計算—結(jié)構(gòu)、算法、編程.北京:高等教育出版社,1999.BarryWilkinsonandMichaelAllen.ParallelProgrammi
2、ng(TechniquesandApplicationsusingNetworkedWorkstationsandParallelComputers).PrenticeHall,1999.李曉梅,莫則堯等著.可擴展并行算法的設(shè)計與分析.北京:國防工業(yè)出版社,2000.張寶琳,谷同祥等著.數(shù)值并行計算原理與方法.北京:國防工業(yè)出版社,1999.都志輝著.高性能計算并行編程技術(shù)—MPI并行程序設(shè)計.北京:清華大學出版社,2001.九月21MPI并行程序設(shè)計3/217相關(guān)網(wǎng)址MPI:http://ww.mpi-forum.org,htt
3、p://www.mcs.anl.gov/mpiPthreads:http://www.oreilly.comPVM:http://www.epm.ornl.gov/pvm/OpemMP:http://www.openmp.org網(wǎng)上搜索:www.google.com九月21MPI并行程序設(shè)計4/217MPI并行程序設(shè)計ParallelProgrammingwiththeMassagePassingInterface(MPI)九月21MPI并行程序設(shè)計5/217多線程庫標準–Win32API.–POSIXthreads.編譯制導標準
4、–OpenMP–可移植共享存儲并行編程標準.消息傳遞庫標準–MPI–PVM并行編程標準本討論的重點九月21MPI并行程序設(shè)計6/217消息傳遞并行程序設(shè)計消息傳遞并行程序設(shè)計指用戶必須通過顯式地發(fā)送和接收消息來實現(xiàn)處理機間的數(shù)據(jù)交換。在這種并行編程中,每個并行進程均有自己獨立的地址空間,相互之間訪問不能直接進行,必須通過顯式的消息傳遞來實現(xiàn)。這種編程方式是大規(guī)模并行處理機(MPP)和機群(Cluster)采用的主要編程方式。并行計算粒度大,特別適合于大規(guī)??蓴U展并行算法由于消息傳遞程序設(shè)計要求用戶很好地分解問題,組織不同進程間的數(shù)
5、據(jù)交換,并行計算粒度大,特別適合于大規(guī)??蓴U展并行算法.消息傳遞是當前并行計算領(lǐng)域的一個非常重要的并行程序設(shè)計方式九月21MPI并行程序設(shè)計7/217什么是MPI?MassagePassingInterface:是消息傳遞函數(shù)庫的標準規(guī)范,由MPI論壇開發(fā),支持Fortran和C一種新的庫描述,不是一種語言。共有上百個函數(shù)調(diào)用接口,在Fortran和C語言中可以直接對這些函數(shù)進行調(diào)用MPI是一種標準或規(guī)范的代表,而不是特指某一個對它的具體實現(xiàn)MPI是一種消息傳遞編程模型,并成為這種編程模型的代表和事實上的標準九月21MPI并行程序
6、設(shè)計8/217MPI的發(fā)展過程發(fā)展的兩個階段MPI1.1:1995MPICH:是MPI最流行的非專利實現(xiàn),由Argonne國家實驗室和密西西比州立大學聯(lián)合開發(fā),具有更好的可移植性.MPI1.2~2.0:動態(tài)進程,并行I/O,支持F90和C++(1997).九月21MPI并行程序設(shè)計9/217為什么要用MPI?高可移植性MPI已在IBMPC機上、MSWindows上、所有主要的Unix工作站上和所有主流的并行機上得到實現(xiàn)。使用MPI作消息傳遞的C或Fortran并行程序可不加改變地運行在IBMPC、MSWindows、Unix工作站
7、、以及各種并行機上。九月21MPI并行程序設(shè)計10/217講座內(nèi)容提示基本的MPI基本概念點到點通信(Pointtopoint)MPI中API的主要內(nèi)容,為MPI最基本,最重要的內(nèi)容MPI程序的編譯和運行深入MPI用戶自定義(/派生)數(shù)據(jù)類型(User-defined(Derived)datatype)事實上MPI的所有數(shù)據(jù)類型均為MPI自定義類型支持異構(gòu)系統(tǒng)允許消息來自不連續(xù)的或類型不一致的存儲區(qū)(結(jié)構(gòu),數(shù)組散元)集合通信(Collective)數(shù)據(jù)移動,數(shù)據(jù)聚集,同步基于pointtopoint構(gòu)建MPI環(huán)境管理函數(shù)組,上下文
8、和通信空間/通信子的管理實例九月21MPI并行程序設(shè)計11/217從簡單入手!下面我們首先分別以C語言和Fortran語言的形式給出一個最簡單的MPI并行程序Hello(下頁).該程序在終端打印出HelloWorld!字樣.“HelloWorld”