并行計算機與并行計算課件
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,,?#?,,C,enter of,,C,omputational,C,hemistry,情況介紹,分子反應(yīng)動力學(xué)國家重點實驗室,交叉分子束動力學(xué)課題組,理論與計算化學(xué)國際合作中心,,,研究員2人,其中一位為中國科學(xué)院院士,高級訪問學(xué)者1人,博士后研究人員6人,,博士研究生18人,碩士研究生4人,與多個國際學(xué)術(shù)團隊有很好的合作,與紐約大學(xué)化學(xué)系張增輝教授合作建立理論與,計算化學(xué)國際合作研究中心,主要研究工作,實驗方面:,,,交叉分子束對光解,碰撞反應(yīng),立體化學(xué)動力學(xué)的研究,激光誘導(dǎo)熒光方法對光解,立體化學(xué)動力學(xué)的研究,飛秒激光對超快動力學(xué)過程的研究,理論方面:,,,準(zhǔn)經(jīng)典軌線方法對反應(yīng)動態(tài)學(xué)的研究,量子力學(xué)方法對反應(yīng)動態(tài)學(xué)的研究,復(fù)雜體系勢能面的構(gòu)造,擬和,量子化學(xué)及其他方法對分子結(jié)構(gòu),物質(zhì)特性,化學(xué)反應(yīng)過程的研究,1997-2001年,發(fā)表文章84篇,其中英文66篇,HPC Server,并行計算機與并行計算,為什么要建造并行計算機,并行計算機的類型,什么是并行計算,并行進(jìn)程的特性及并行模型的分類,工作站集群(,COW),的基本結(jié)構(gòu),中國科學(xué)院十五計劃中關(guān)于并行計算部分,為什么要建造并行計算機,什么是超級計算環(huán)境,,超級計算(,Supercomputing),,從技術(shù)的意義上說,是為了在問題的求解上具有更快的速度、更高的精度、更大的規(guī)模、更好的性能價格比而采用的非主流計算的設(shè)施和方式。,,計算速度的要求,問題: 科學(xué)和工程問題的數(shù)值模擬與仿真,計算密集,數(shù)據(jù)密集,網(wǎng)絡(luò)密集,三種混合,要求:在合理的時限內(nèi)完成計算任務(wù),秒級 制造業(yè),分鐘級 短時天氣預(yù)報(當(dāng)天),小時級 中期天氣預(yù)報(3~10日),盡可能快 長期天氣預(yù)報(氣候),可計算 湍流模擬,,問題的規(guī)模,,,計算機的規(guī)模:,TOP10 (2001,年7月),IBM Builds World's Fastest,Supercomputer to Simulate,Nuclear Testing for U.S. Energy,Department,以動物的食物鏈為例,打破高性能計算的壁壘,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2100,,,,,,,,,2100,,,,,,,,2100,,,,,,,,2100,,,,,,,,2100,,,,,,,,2100,,,,,,,,2100,,,,,,,,2100,,,,,,,,2100,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,單處理器,共享存儲,局域并行機群,廣域并行機群,GFLOPS,并行計算機分類,Flynn,分類法,SISD(,單指令流單數(shù)據(jù)流)系統(tǒng),SIMD(,單指令流多數(shù)據(jù)流)系統(tǒng),MISD(,多指令流單數(shù)據(jù)流)系統(tǒng),MIMD(,多指令流多數(shù)據(jù)流)系統(tǒng),,,,五種物理機模型: 實際的機器體系結(jié)構(gòu),,PVP (Parallel Vector Processor,,并行向量機),,SMP (Symmetric Multiprocessor,,對稱多處理機),,MPP (Massively Parallel Processor,,大規(guī)模并行處理機),,COW (Cluster of Workstation,,工作站機群),,DSM (Distributed Shared Memory,,分布共享存儲多處理機),,幾種我們常見的并行計算機,CPU,CPU,CPU,…,總線或交叉開關(guān),SM,(,a) SMP,,物理上單一地址空間,CPU,CPU,CPU,…,定制網(wǎng)絡(luò),LM,LM,LM,虛擬分布共享存儲(,DSM),,,,(,b) DSM,,邏輯上單一地址空間,P/C,P/C,P/C,…,定制/標(biāo)準(zhǔn)網(wǎng)絡(luò),LM,LM,LM,(,c) Cluster/COW,,物理/邏輯上多地址空間,,SMP,MPP,MPP,…,WAN,LM,DSM,SM,(,d) Grid (Cluster of Clusters),什么是并行計算,并行進(jìn)程的表述,及并行模型的分類,什么是并行計算,,,,,,,進(jìn)程 1,,,發(fā)送信息,,,進(jìn)程 2,,,接收信息,,,,,,,,傳統(tǒng)的,串行計算,,,分為“指令”,和“數(shù)據(jù)”兩個部分,并在程序,執(zhí)行時“獨立地申請和占有”內(nèi),存空間,且所有計算均局限于,該內(nèi)存空間。,,并行計算,將,進(jìn)程相對獨立的,分配于不同的節(jié)點上,由,各自獨立的操作系統(tǒng)調(diào)度,,享有獨立的,CPU,和內(nèi)存資源,(內(nèi)存可以共享);進(jìn)程間,相互信息交換通過消息傳遞,;,,,進(jìn)程 1,,,,,進(jìn)程 2,,,,并行算法的表述,在并行算法的表述中,所有描述串行算法的語句及進(jìn)程均可調(diào)用,,而只是為了表達(dá)并行性而引入幾條所謂的并行語句,當(dāng)幾個算法步要并行執(zhí)行時, 我們可以寫作,,Do,step i,to,j,in parallel,,step,,i,,step,,i,+1,…,,step j,或者是: 當(dāng)幾個處理器同時執(zhí)行相同的操作時,我們可以寫作,,for all,i,parallel do,.,.,.,end for,例如,n=2**k,個數(shù)的求和,輸入:,n=2**k,個數(shù)存入數(shù)組,A,中,輸出:,S=sigma(A(i)),,begin,(1) for i,=,1 to 4 parallel do,B(i),?A(i),end for,(2) for h,=,1 to logn=2 do,for i=1 to n/2**h=1 parallel do,B(i),?B(2i-1) + B(2i),end for,end for,(3) S?B(i),end,,把每一個,A(i),賦給,B(i,),n=4,k=2,,就是4個數(shù)的加和,h= 1 to 2,h=1,I=1 to 2 (4/2**1),B(1),?B(1)+B(2),B(2)?B(3)+B(4),h=2,I=1 to 1 (4/2**2),B(1)?B(1)+B(2),S?B(1),,若有2**2=4個處理器,則在1(,h),級可能的并行,運算數(shù)目為4/2**1=2.則運算任務(wù)分?jǐn)偨o前兩個,處理器,硬件結(jié)構(gòu)抽象模型(自然模型),共享存儲,的模型和語言(適于,PVP, SMP, DSM),X3H5, Pthread,OpenMP,消息傳遞,的模型和語言(適于,MPP, Cluster, COW),MPI (,Fortran, C, Gamess, Vasp,),PVM (,Fortran, C,),數(shù)據(jù)并行,的模型和語言(適于在,MPP/Cluster,上實現(xiàn),SPMD,應(yīng)用),Fortran 90,HPF(High Performance Fortran),并行模型的分類,基于程序構(gòu)造的模型,CSP,Linda (,Fortran, C, Gaussian,),Global (,Molpro,Columbus,),,基于問題描述的模型,GAMMA,UNITY,,基于并行計算理論的模型,PRAM,BSP,LogP,Yale,大學(xué),Nicholas Carriero,和,David Gelernter,于1986年基于分散數(shù)據(jù)結(jié)構(gòu)和共享存儲系統(tǒng)的并行計算模型.,,Linda,模型定義了一個功能強大的邏輯存儲器(,TS),和在其上的一組核心操作(,in, out, read, eval),,它們能夠方便地嵌入到不同的語言(如,,C, Fortran),中而構(gòu)成相應(yīng)的并行語言(,C-Linda,和,Fortran-Linda,等),該模型同時還支持動態(tài)程序設(shè)計和兩種不同的編程風(fēng)格(,Master/Slaver,和,Divide-and-Conquer),,為用戶開發(fā)不同類型 的應(yīng)用程序提供了靈活的手段.,Linda,模型,(進(jìn)程從,TS,中提取任務(wù)或數(shù)據(jù)進(jìn)行計算, 并將結(jié)果或生成的新任務(wù)放入,TS,中. 并行執(zhí)行,的進(jìn)程之間通過,TS,進(jìn)行間接的通信和同步.,TS,是一個可被多個進(jìn)程共享的、能同時存放,數(shù)據(jù)和任務(wù)的數(shù)據(jù)箱),,,TS,共享數(shù)據(jù)箱,,進(jìn)程 2,,,進(jìn)程 4,,,進(jìn)程 3,,,進(jìn)程 1,,,,,Linda,模型的應(yīng)用,-,Linda in Gaussian,HF: SP Opt Freq,MP2: Sp Opt Freq,DFT: SP Opt Freq,-,可以將串行代碼改編為并行代碼,支持,C,和,Fortran,語言,,MPI,已經(jīng)成為一種標(biāo)準(zhǔn),應(yīng)用越來越廣泛。而最流行的,MPI,工具集當(dāng)屬,mpich〔http://www-unix.mcs.anl.gov/mpi/mpich〕,,是目前高效率的超大規(guī)模并行計算(1000個處理器)最可信賴的平臺。,在當(dāng)前所有的消息傳遞軟件中, 最重要最流行的是,MPI,,它能運行在所有的并行平臺上, 包括,SMP,和,PVP.,二者已經(jīng)在,Windows NT,和,Windows 95,這樣的非,Unix,平臺上實現(xiàn). 程序設(shè)計語言支持,C, Fortran,和,Java.,在國產(chǎn)的三大并行機系列神威、銀河和曙光上都實現(xiàn)了對,MPI,和支持.,MPI,(Message Passing Interface),MPI,模型,目標(biāo): 是提供一個實際可用的、可移植的、高效的和靈活的消息傳遞,接口標(biāo)準(zhǔn).,MPI,以語言獨立的形式來定義這個接口庫, 并提供了與,C、,Fortran,和,Java,語言的綁定. 這個定義不包含任何專用于某個特別的,制造商、操作系統(tǒng)或硬件的特性. 由于這個原因,,MPI,在并行計算界,被廣泛地接受.,MPI,并行程序設(shè)計平臺由,標(biāo)準(zhǔn)消息傳遞函數(shù)及相關(guān)輔助函數(shù),構(gòu)成,多個進(jìn)程通過調(diào)用這些函數(shù)(類似調(diào)用子程序),進(jìn)行通信;,一個程序同時啟動多份,形成多個獨立的進(jìn)程,,在不同的處理機上運行,擁有獨立的內(nèi)存空間,,進(jìn)程間通信通過調(diào)用,MPI,函數(shù)來實現(xiàn);每個進(jìn)程,開始執(zhí)行時,將獲得一個唯一的序號(,rank)。,例如啟動,P,個進(jìn)程,序號依次為0,1,…,,P-1;,,MPI,并行進(jìn)程的實現(xiàn),,消息傳遞是相對于進(jìn)程間通信方式而言的,與具體并行機存儲模式無關(guān),,任何支持進(jìn)程間通信的并行機,均可支持消息傳遞并行程序設(shè)計;幾乎,有共享和分布存儲并行計算環(huán)境均支持進(jìn)程間的消息傳遞通信;,,進(jìn)程0發(fā)送一個整數(shù)給進(jìn)程1;進(jìn)程1將該數(shù)加1,傳遞給進(jìn)程2;進(jìn)程2再將,該數(shù)加1,再傳遞給進(jìn)程3;依次類推,最后,進(jìn)程,N-1,將該數(shù)傳遞給進(jìn)程0,,由進(jìn)程1負(fù)責(zé)廣播該數(shù)給所有進(jìn)程,并打印輸出。,,,進(jìn)程 1,傳遞信息,,,進(jìn)程 3,傳遞信息,,,進(jìn)程 2,傳遞信息,,,進(jìn)程 0,傳遞信息,,,,,,,,,,,在商品化的并行機上,,MPI,的環(huán)境一般是由系統(tǒng)管理人員事先設(shè)置好的,用戶不需要變動它.而在用戶自已配置的,NOW(,工作站機群)上運行,MPI,程序則需要設(shè)置以下配置文件:(1)由于加載程序到結(jié)點上運行需要調(diào)用了,Unix,系統(tǒng)的,rsh,命令,所以需要在每個結(jié)點上設(shè)置 .,rhosts,文件,以使,rsh,能正確執(zhí)行;(2) 由于,NOW,環(huán)境的異構(gòu)性,需要在啟動時指定運行結(jié)點的體系結(jié)構(gòu);若未指定,是指使用與啟動并行程序的結(jié)點具有相同體系結(jié)構(gòu)的結(jié)點.在啟動并行程序的機器里,具有相同體系結(jié)構(gòu)的幾臺機器的名字存放在一個名為$,MPICH/util/machines/machines.,的文件中,一臺機器的名字占有文件的一行,其中$,MPICH,是一個環(huán)境變量,指明,MPICH,軟件安裝后所在的目錄.并行程序加載運行時是按照文件中機器名字的先后順序依次加載的.,商業(yè)機中的,MPI,程序用以下并行,C,編譯器,mpcc,來編譯:,執(zhí)行下列命令將可執(zhí)行程序,myprog,加載到,n,個節(jié)點上:,mpcc myprog.c –o myprog,mpirun myprog –np n,,MPI,進(jìn)程是重型的單線進(jìn)程. 它們擁有不同的地址空間. 因此, 一個進(jìn)程不能直接訪問另一個進(jìn)程地址空間中的變量. 進(jìn)程間的通信用消息傳遞來實現(xiàn).,MPI,的編譯與運行,工作站集群(,COW),的基本結(jié)構(gòu),,COW,簡介,工作站機群(,Cluster of Workstation),是,將一群工作站用某種結(jié)構(gòu)的網(wǎng)絡(luò)互聯(lián)起來,充分利用各工作站的資源,統(tǒng)一調(diào)度、協(xié)調(diào)處理,以實現(xiàn)高效并行計算。,,通信原語庫以及并行程序設(shè)計環(huán)境工具:,,MPI、PVM、linda,互聯(lián)網(wǎng)絡(luò):,,LAN(,Myricom Myrinet/Gigabite/Ethernet,),節(jié)點:,,高檔微機,對稱多處理機,SMP,操作系統(tǒng):,,Unix、Linux、NT、,改進(jìn)和修改的操作系統(tǒng),通信協(xié)議:,,TCP/IP、,特定的協(xié)議,,基本實現(xiàn)原理,1,網(wǎng)絡(luò)文件系統(tǒng),NFS(Unix、Linux) 、,網(wǎng)絡(luò)驅(qū)動器(,Windows),MFS(Mosix kernel)...,2,網(wǎng)絡(luò)信息服務(wù),NIS (Unix、Linux) 、NIS+(Solaris)、,域(,NT),3,并行開發(fā)環(huán)境及編譯器,MPI、PVM ,Linda, HPF,,GNU GCC/G77,,…,4,數(shù)學(xué)庫,,Free Scalapack...,5,通信軟件,,Free Myricom GM,6,作業(yè)管理,,GNU Open PBS,7,系統(tǒng)管理,,GNU SCMS,8,監(jiān)控管理,,GNU OSCAR,9,負(fù)載均衡,,Mosix,,,Ø,,軟件配置,:,操作系統(tǒng),:每一個節(jié)點都裝有多用戶,多任務(wù)的,RH 7.2 linux(2.4.19),網(wǎng)絡(luò)文件系統(tǒng):,NFS,MFS,網(wǎng)絡(luò)信息系統(tǒng),:,NIS,編譯器,:,GNU C, GNU Fortran 77, Absoft F95 F90 F77, PGI F90 F77,C C++,并行開發(fā)環(huán)境,:,LINDA, MPI,負(fù)載均衡,:,Mosix,數(shù)據(jù)并行語言高性能編譯器和運行庫,:,HF77, PGI HPF,F(xiàn)ree Scalapack,計算軟件,:,Parallelized Gaussian 98 A.9 (with Linda support),,Gamess, Molpro,,各種自編程序和交流程序,HPC Server,中國科學(xué)院十五計劃中,關(guān)于并行計算部分,中國科學(xué)院網(wǎng)絡(luò)信息中心高性能計算研究室,現(xiàn)有計算設(shè)備,:,-Power Challenge XL,并行對稱多處理系統(tǒng),,,,,,-日立,SR2201,超級計算并行機系統(tǒng),,,,,,-曙光2000-,II,超級服務(wù)器,,詳細(xì)配置可以查詢:,,預(yù)備引進(jìn),:,,-聯(lián)想,i,Cluster1800,高性能機群服務(wù)器(已由數(shù)學(xué)研究院引進(jìn),正在試運行),,-超過2萬億次的超級計算機(預(yù)計2004年9月到位),目前正在征求意見,建立用戶資料庫,1.,什么任務(wù)適合在超級計算環(huán)境內(nèi)運行,?,一般來說,計算量極大而使,PC,不能滿足要求或者根本不能計算的任務(wù)是適合在,超級計算環(huán)境中運行的。比如,,,(1)需要分布式并行處理的科學(xué)計算任務(wù),包括:由于對計算資源要求過大而,使現(xiàn)在的硬件條件無法滿足要求的計算任務(wù),通過將串行源代碼改編為并行源,代碼來進(jìn)行計算,或者有通行的并行計算程序(商業(yè)或非商業(yè));,(2)雖然可以計算但是時間過長的問題等。,,,2.,超級計算環(huán)境可以提供怎樣的支持,?,現(xiàn)行的超級計算環(huán)境是基于,Linux,或,Unix,操作系統(tǒng)的,所以對于商業(yè)程序,應(yīng)該是,支持這兩種操作系統(tǒng)的;而對于自編的源代碼,可以在超級計算機上編譯通過產(chǎn)生,可執(zhí)行文件。如果希望把串行的代碼改編為并行,可以得到超級計算中心技術(shù)人員,的幫助。,,我們所的使用,量子化學(xué)和化學(xué)動力學(xué)涉及的相關(guān)課題,生物分子、藥物分子的設(shè)計、模擬及結(jié)構(gòu)特性,基元化學(xué)反應(yīng)的量子化學(xué)研究,材料科學(xué)和表面科學(xué),物理有機化學(xué)及催化過程的研究,催化反應(yīng)動力學(xué)及其表征,,量子動力學(xué)研究分子的動態(tài)過程,,PEMFC,內(nèi)流體流動與傳遞現(xiàn)象研究,,流場理論計算及多維物理場耦合計算,,謝謝!,內(nèi)容總結(jié),情況介紹。博士研究生18人,碩士研究生4人。與多個國際學(xué)術(shù)團隊有很好的合作,與紐約大學(xué)化學(xué)系張增輝教授合作建立理論與。問題: 科學(xué)和工程問題的數(shù)值模擬與仿真。秒級 制造業(yè)。分鐘級 短時天氣預(yù)報(當(dāng)天)。小時級 中期天氣預(yù)報(3~10日)。可計算 湍流模擬。GFLOPS。而只是為了表達(dá)并行性而引入幾條所謂的并行語句。例如 n=2**k個數(shù)的求和。輸入: n=2**k個數(shù)存入數(shù)組A中。若有2**2=4個處理器,則在1(h)級可能的并行。運算數(shù)目為4/2**1=2.則運算任務(wù)分?jǐn)偨o前兩個。硬件結(jié)構(gòu)抽象模型(自然模型)。數(shù)據(jù)和任務(wù)的數(shù)據(jù)箱)。-可以將串行代碼改編為并行代碼。任何支持進(jìn)程間通信的并行機,均可支持消息傳遞并行程序設(shè)計。由進(jìn)程1負(fù)責(zé)廣播該數(shù)給所有進(jìn)程,并打印輸出。流場理論計算及多維物理場耦合計算。謝謝,