資源描述:
《《MPI并行程序設計》PPT課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、九月21MPI并行程序設計1/217機群應用開發(fā)并行編程原理及程序設計ParallelProgramming:FundamentalsandImplementation曙光信息產(chǎn)業(yè)有限公司九月21九月21MPI并行程序設計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.李曉梅,莫則堯等著.可擴展并行算法的設計與分析.北京:國防工業(yè)出版社,2000.張寶琳,谷同祥等著.數(shù)值并行計算原理與方法.北京:國防工業(yè)出版社,1999.都志輝著.高性能計算并行編程技術(shù)—MPI并行程序設計.北京:清華大學出版社,2001.九月21MPI并行程序設計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并行程序設計4/217MPI并行程序設計ParallelProgrammingwiththeMassagePassingInterface(MPI)九月21MPI并行程序設計5/217多線程庫標準–Win32API.–POSIXthreads.編譯制導標準
4、–OpenMP–可移植共享存儲并行編程標準.消息傳遞庫標準–MPI–PVM并行編程標準本討論的重點九月21MPI并行程序設計6/217消息傳遞并行程序設計消息傳遞并行程序設計指用戶必須通過顯式地發(fā)送和接收消息來實現(xiàn)處理機間的數(shù)據(jù)交換。在這種并行編程中,每個并行進程均有自己獨立的地址空間,相互之間訪問不能直接進行,必須通過顯式的消息傳遞來實現(xiàn)。這種編程方式是大規(guī)模并行處理機(MPP)和機群(Cluster)采用的主要編程方式。并行計算粒度大,特別適合于大規(guī)模可擴展并行算法由于消息傳遞程序設計要求用戶很好地分解問題,組織不同進程間的數(shù)
5、據(jù)交換,并行計算粒度大,特別適合于大規(guī)模可擴展并行算法.消息傳遞是當前并行計算領(lǐng)域的一個非常重要的并行程序設計方式九月21MPI并行程序設計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、設計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并行程序設計9/217為什么要用MPI?高可移植性MPI已在IBMPC機上、MSWindows上、所有主要的Unix工作站上和所有主流的并行機上得到實現(xiàn)。使用MPI作消息傳遞的C或Fortran并行程序可不加改變地運行在IBMPC、MSWindows、Unix工作站
7、、以及各種并行機上。九月21MPI并行程序設計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并行程序設計11/217從簡單入手!下面我們首先分別以C語言和Fortran語言的形式給出一個最簡單的MPI并行程序Hello(下頁).該程序在終端打印出HelloWorld!字樣.“HelloWorld”