《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于并行云計算模式的建筑結(jié)構(gòu)設(shè)計
基于并行云計算模式的建筑結(jié)構(gòu)設(shè)計
來源:電子技術(shù)應(yīng)用2011年第10期
劉曉群1, 鄒 欣1, 范 虹2
1. 河北建筑工程學(xué)院 現(xiàn)代教育技術(shù)中心, 河北 張家口075024; 2. 河北建筑工程學(xué)院 數(shù)理系, 河北 張家口 075024
摘要: 在建筑結(jié)構(gòu)并行計算與云計算相結(jié)合的基礎(chǔ)上,提出了結(jié)合兩種計算技術(shù)的軟硬件結(jié)構(gòu)及應(yīng)用方法。云計算及并行計算技術(shù)的結(jié)合為超高、超長、大跨度復(fù)雜建筑工程計算問題提供了實現(xiàn)高效能計算的可能。理論分析表明,該方法優(yōu)于傳統(tǒng)的并行計算技術(shù),能夠為實現(xiàn)建筑結(jié)構(gòu)的高效能計算提供新思路。
中圖分類號: TP393
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2011)10-0123-03
Building structure design based on parallel cloud computing model
Liu Xiaoqun1, Zou Xin1, Fan Hong2
1. Modern Educational Technology Center, Hebei Institute of Architecture Civil Engineering, Zhangjiakou 075024, China; 2. Department of Mathematics and Physics, Hebei Institute of Architecture Civil Engineering, Zhangjiakou 075024, China
Abstract: The application method and the structure of software and hardware based on the combination of the cloud computing and the parallel computing are presented. The combination of the cloud computing and the parallel computing has made the high-performance computing of the computational problems in the high-rise, super-long, long-span building project possible. The theoretical analysis shows that this application method is superior to the traditional methods, and offers new ideas to the high-performance computing of building structure.
Key words : cloud computing; MPI; structure computing; MapReduce


    超高、超長、大跨度的復(fù)雜建筑工程設(shè)計涉及大量的復(fù)雜計算,對高性能計算技術(shù)有著重大的需求。目前,傳統(tǒng)的建筑工程設(shè)計的高性能有限元分析軟件工具主要基于并行計算技術(shù)。高性能并行計算以MPI標(biāo)準(zhǔn)為代表[1],其中最為著名且被廣泛使用的是由美國Argonne 國家實驗室完成的MPICH,它廣泛應(yīng)用于各種建筑結(jié)構(gòu)計算軟件(如ANSYS、FLUENT、PATRAN)中。然而,MPI進(jìn)行數(shù)據(jù)處理主要方式是將作業(yè)分配給集群,由集群訪問以存儲區(qū)域網(wǎng)絡(luò)為管理基礎(chǔ)的共享文件系統(tǒng),在大量數(shù)據(jù)的情況下網(wǎng)絡(luò)帶寬將限制這種處理方式[2],而新出現(xiàn)的云計算技術(shù)能夠有效地解決這個問題。云計算是IT界新近提出的以Hadoop技術(shù)為代表的分布式計算模式,Hadoop的MapReduce模式具有計算節(jié)點本地存儲數(shù)據(jù)的特性,能夠有效地避免MPI的網(wǎng)絡(luò)帶寬限制問題。相對于MPI賦予程序員的可控性,MapReduce則是在更高的層面上完成任務(wù)。
    本文闡述了建筑結(jié)構(gòu)并行計算(MPI)的云計算的應(yīng)用方法和思想,利用Google的MR_MIP庫(Library)結(jié)合相應(yīng)程序接口,發(fā)揮兩種計算方法各自的優(yōu)勢,實現(xiàn)了云計算與MPI相互融合。既利用了傳統(tǒng)的基于并行計算技術(shù)的建筑計算軟件的豐富資源,又使用云計算技術(shù)解決了現(xiàn)有方法存在的問題。
1 云計算與Hadoop
    云計算(Cloud Computing)是網(wǎng)格計算、分布式處理和并行處理的發(fā)展[3],是計算機科學(xué)概念的商業(yè)實現(xiàn)。其基本原理是把計算分配到大量的分布式計算機,而不是分配到本地計算機或遠(yuǎn)程的服務(wù)器上,使企業(yè)數(shù)據(jù)中心的運行類似于互聯(lián)網(wǎng)。企業(yè)能夠?qū)⒂邢薜馁Y源轉(zhuǎn)移到需要的應(yīng)用上,并根據(jù)自身需求訪問計算機及存儲系統(tǒng),降低了企業(yè)的成本。
    云計算是一種革命性的舉措,即把力量聯(lián)合起來給其中的某一個成員使用,計算機的計算能力能像商品一樣費用低廉取用方便。云計算最大的特點是通過互聯(lián)網(wǎng)提供服務(wù),只需要一臺筆記本或者一個網(wǎng)絡(luò)終端,而不需要用戶端安裝任何應(yīng)用程序?qū)崿F(xiàn)需要的一切,甚至包括超級計算等服務(wù)。
    IBM于2007年底推出了“藍(lán)云(Blue Cloud)”計劃,同時推出許多云計算產(chǎn)品。通過構(gòu)建一個類似分布式的資源結(jié)構(gòu),把計算從本地機器和遠(yuǎn)程服務(wù)器轉(zhuǎn)移到類似于互聯(lián)網(wǎng)的數(shù)據(jù)中心運行。Hadoop是基于Google Map-Reduce計算模型的開源分布式并行編程框架[4],根據(jù)Google GFS設(shè)計了自己的HDFS分布式文件系統(tǒng)[5],使Hadoop成為一個分布式的計算平臺。同時還提供了基于Java的MapReduce框架,能夠?qū)⒎植际綉?yīng)用部署到大型廉價集群上。
    Hadoop主要由分布式文件系統(tǒng)HDFS(Hadoop Distributed File System)和MapReduce兩部分構(gòu)成。HDFS 有著高容錯性的特點,并且設(shè)計用來部署在低廉的硬件上。它提供高傳輸率來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集的應(yīng)用程序。MapReduce依賴于HDFS實現(xiàn),通常MapReduce會在集群中數(shù)據(jù)的宿主機上進(jìn)行最便捷的計算。
2 MPI標(biāo)準(zhǔn)
    消息傳遞接口MPI(Message Passing Interface)是支持在異構(gòu)計算機上進(jìn)行計算任務(wù)的并行平臺[6],它是一種編程接口標(biāo)準(zhǔn),而不是一種具體的編程語言。該標(biāo)準(zhǔn)是由消息傳遞接口論壇MPIF(Message Passing Interface Form)發(fā)起討論并進(jìn)行規(guī)范化。該標(biāo)準(zhǔn)的主要目的是提高并行程序的可移植性和使用的方便性。MPI并行計算環(huán)境下的應(yīng)用軟件庫以及軟件工具都可以透明地移植,是目前最重要的并行編程工具。MPI的最大優(yōu)點是其高性能,具有豐富的點到點通信函數(shù)模型、可操作數(shù)據(jù)類型及更大的群組通信函數(shù)庫。
    MPI標(biāo)準(zhǔn)定義了一組具有可移植性的編程接口。設(shè)計了應(yīng)用程序并行算法,調(diào)用這些接口,鏈接相應(yīng)平臺上的MPI庫,就可以實現(xiàn)基于消息傳遞的并行計算。正是由于MPI提供了統(tǒng)一的接口,該標(biāo)準(zhǔn)受到各種并行平臺上的廣泛支持,這也使得MPI程序具有良好的移植性。目前MPI支持多種編程語言,包括Fortran 77、Fortran 90以及C/C++;同時,MPI支持多種操作系統(tǒng),包括大多數(shù)的類UNIX系統(tǒng)以及Windows系統(tǒng)等;同時還支持多核、對稱多處理機、集群等各種硬件平臺。
2.1 MPI的通信模式
    (1)標(biāo)準(zhǔn)通信模式(StandardMode)。在MPI采用標(biāo)準(zhǔn)通信模式時,是否對發(fā)送的數(shù)據(jù)進(jìn)行緩存是由MPI自身決定的,而不是由程序來控制。如果MPI決定緩存將要發(fā)出的數(shù)據(jù),發(fā)送操作不管接收操作是否執(zhí)行都可以進(jìn)行,而且發(fā)送操作可以正確返回而不要求接收操作收到發(fā)送的數(shù)據(jù)。
    (2)緩存通信模式(BufferedMode)。緩存通信模式若需要直接對通信緩沖區(qū)進(jìn)行控制,可采用緩存通信模式。在這種模式下由用戶直接對通信緩沖區(qū)進(jìn)行申請、使用和釋放,因此緩存模式下對通信緩沖區(qū)的合理與正確使用是由程序設(shè)計人員自己保證。采用緩存通信模式時,消息發(fā)送能否進(jìn)行及能否正確返回,不依賴于接收進(jìn)程,而是完全依賴于是否有足夠的通信緩沖區(qū)可用,當(dāng)緩存發(fā)送返回后,并不意味者該緩沖區(qū)可以自由使用,只有當(dāng)緩沖區(qū)中的消息發(fā)送出去后才可以釋放該緩沖區(qū)。
    (3)同步通信模式(Synehronous-mode)。同步通信模式的開始不依賴于接收進(jìn)程相應(yīng)的接收操作是否己經(jīng)啟動,但是同步發(fā)送卻必須等到相應(yīng)的接收進(jìn)程開始后才可以正確返回。因此同步發(fā)送返回后意味著發(fā)送緩沖區(qū)中的數(shù)據(jù)已經(jīng)全部被系統(tǒng)緩沖區(qū)緩存,并且己經(jīng)開始發(fā)送,這樣當(dāng)同步發(fā)送返回后,發(fā)送緩沖區(qū)可以被釋放或重新使用。
    (4)就緒通信模式(Ready-mode)。在就緒通信模式中,只有當(dāng)接收進(jìn)程的接收操作已經(jīng)啟動時才可以在發(fā)送進(jìn)程啟動發(fā)送操作,否則當(dāng)發(fā)送操作啟動而相應(yīng)的接收還沒有啟動時發(fā)送操作將出錯。就緒通信模式的特殊之處在于它要求接收操作先于發(fā)送操作而被啟動,因此在一個正確的程序中,一個就緒發(fā)送能被一個標(biāo)準(zhǔn)發(fā)送替代。該模式對程序的語義沒有影響,而對程序的性能有影響。    
2.2 MPI調(diào)用的參數(shù)說明
    對于有參數(shù)的MPI調(diào)用,MPI首先給出一種獨立于具體語言的說明。對各個參數(shù)的性質(zhì)進(jìn)行介紹,然后在給出它相對于FORTRAN和C的原型說明。在MPI-2中還給出了C++形式的說明,MPI對參數(shù)說明的方式有IN、OUT和INOUT三種。它們的含義分別是: IN為輸入調(diào)用部分傳遞給MPI的參數(shù),MPI除了使用該參數(shù)外不允許對這一參數(shù)做任何修改;OUT為輸出MPI返回給調(diào)用部分的結(jié)果參數(shù),該參數(shù)的初始值對MPI沒有任何意義;INOUT為輸入輸出調(diào)用部分,首先將該參數(shù)傳遞給MPI,MPI對這一參數(shù)引用、修改后,將結(jié)果返回給外部調(diào)用。該參數(shù)的初始值和返回結(jié)果都有意義。
    如果某一個參數(shù)在調(diào)用前后沒有改變,例如某個隱含對象的句柄,但是該句柄指向的對象被修改了,則這一參數(shù)仍然被說明為OUT或INOUT。MPI的定義在最大范圍內(nèi)避免了INOUT參數(shù)的使用,因為這些使用易于出錯,特別是對標(biāo)量參數(shù)的使用。
    還有一種情況是MPI函數(shù)的一個參數(shù)被一些并行執(zhí)行的進(jìn)程用作IN,而被另一些同時執(zhí)行的進(jìn)程用作OUT。雖然在語義上它不是同一個調(diào)用的輸入和輸出,這樣的參數(shù)語法上也記為INOUT。
    當(dāng)一個MPI參數(shù)僅對一些并行執(zhí)行的進(jìn)程有意義,而對其他的進(jìn)程沒有意義時,不關(guān)心該參數(shù)取值的進(jìn)程可以將任意的值傳遞給該參數(shù)。如圖1所示。


3 建筑并行云計算架構(gòu)
3.1 ANSYS分布式并行計算

    ANSYS軟件是最常用的建筑結(jié)構(gòu)有限元求解軟件之一,其核心是一系列面向各個領(lǐng)域應(yīng)用的高級求解器。ANSYS支持在異種、異構(gòu)平臺上的網(wǎng)絡(luò)浮動,其強大的并行計算功能支持共享內(nèi)存(share memory)和分布式內(nèi)存(distributed memory)兩種并行方式。共享內(nèi)存式并行計算,是指單機多CPU的并行計算、分布內(nèi)存式并行計算及多機多CPU的并行計算;分布式內(nèi)存并行往往比共享內(nèi)存并行有更好的并行效能,ANSYS分布式求解技術(shù)核心是基于MPI的編制的計算程序。近幾年,隨著CPU多核,高速互聯(lián)等技術(shù)的發(fā)展,低成本高效率的Linux集群系統(tǒng)成為高性能計算平臺的主流。
3.2 Hadoop的MapReduce 模式計算流程
    Hadoop的MapReduce計算架構(gòu)實現(xiàn)了由Google工程師提出的MapReduce編程模型。它將復(fù)雜的、運行于大規(guī)模集群上的并行計算過程高度地抽象到了Map和 Reduce兩個函數(shù), 待處理的數(shù)據(jù)集可以分解成許多小的數(shù)據(jù)集,而且每一個小數(shù)據(jù)集都可以完全并行地進(jìn)行處理。MapReduce的計算流程如圖2所示。

 

 

    (1)數(shù)據(jù)劃分。首先將數(shù)量眾多的文件進(jìn)行劃分,分成大小不一的若干小塊數(shù)據(jù)。通常數(shù)據(jù)塊大小可以由用戶根據(jù)需要自行控制,然后將這些數(shù)據(jù)塊備份分配到各個機器集群中存儲。
    (2)讀取數(shù)據(jù)并在本地進(jìn)行歸并。被指定執(zhí)行映射任務(wù)的工作站節(jié)點讀取要處理的數(shù)據(jù)塊,然后從原始數(shù)據(jù)塊中將數(shù)據(jù)解析成鍵/值的形式,通過用戶定義的映射函數(shù)處理得到中間鍵/值對,存入本地內(nèi)存緩沖區(qū)。緩沖區(qū)中的數(shù)據(jù)集合被劃分函數(shù)分配到各個區(qū)域,然后寫入本機磁盤。返回管理機本地磁盤中數(shù)據(jù)的存放位置信息,管理機隨后將這些數(shù)據(jù)位置信息告訴執(zhí)行規(guī)約任務(wù)的相關(guān)工作站節(jié)點。
    (3)指派映射/規(guī)約任務(wù)。在這些數(shù)據(jù)塊備份中有一個管理機主程序,其余的均為工作站節(jié)點程序,由管理機指派任務(wù)給各工作站。主程序?qū)⒅概商幱诳臻e狀態(tài)的工作站來執(zhí)行規(guī)約任務(wù)或映射任務(wù)。
    (4)遠(yuǎn)程讀取。在通知執(zhí)行歸并任務(wù)的工作站數(shù)據(jù)的存儲位置信息后,reduce工作站通過遠(yuǎn)程方式讀取執(zhí)行map任務(wù)工作站中的緩存數(shù)據(jù)。reduce工作站取得所有需要的中間數(shù)據(jù)后,按照關(guān)鍵字對中間數(shù)據(jù)鍵/值對進(jìn)行排序,把相同關(guān)鍵字的數(shù)據(jù)劃分到同一類中去。不同的關(guān)鍵字映射后都要進(jìn)行相同的規(guī)約操作,所以對中間數(shù)據(jù)進(jìn)行排序非常必要。假如產(chǎn)生的中間數(shù)據(jù)集的數(shù)量非常大無法存入內(nèi)存,可以利用外部存儲器存儲。
    (5)寫入輸出文件。最后的reduce工作站對每個歸并操作的中間數(shù)據(jù)按中間關(guān)鍵字進(jìn)行排列,傳送中間鍵/值對數(shù)據(jù)給用戶定義的歸約函數(shù)。歸約函數(shù)的最終輸出結(jié)果將被追加到輸出結(jié)果文件中。在所有的映射任務(wù)和歸約任務(wù)完成之后,管理機喚醒用戶程序以繼續(xù)之前的程序執(zhí)行,完成下一階段的任務(wù)。
3.3 建筑結(jié)構(gòu)并行云計算方法
    建筑結(jié)構(gòu)有限元求解軟件ANSYS支持MPI并行編程模式,如何利用其高效的性能并結(jié)合云計算技術(shù)是一個新出現(xiàn)的研究問題。使用Google提供的MR_MIP庫(Library)能夠解決這個問題。MR-MPI提供了云計算的MPI庫,結(jié)合相應(yīng)程序接口可以實現(xiàn)并行計算與云計算的結(jié)合。圖3給出了兩種先進(jìn)的計算技術(shù)結(jié)合的高效能計算過程。

    在建筑結(jié)構(gòu)并行云計算的執(zhí)行過程中,Master占據(jù)核心位置,為計算程序的順利運行提供各種服務(wù)并負(fù)責(zé)任務(wù)的調(diào)度。為將要執(zhí)行的MPI程序提供MR-MPI庫,同時選擇執(zhí)行Map和Reduce程序的節(jié)點機,讀取節(jié)點機上相應(yīng)的數(shù)據(jù)塊進(jìn)行分布式并行計算。同時Master還定期探測worker,當(dāng)某個testworker任務(wù)失敗時,相應(yīng)的map操作將被通知重起。這種計算模式綜合了云計算和并行計算的各自優(yōu)勢,在高速計算的同時又實現(xiàn)了系統(tǒng)的負(fù)載均衡和故障恢復(fù)。
    高性能計算技術(shù)可高效地解決建筑行業(yè)中大型復(fù)雜結(jié)構(gòu)高精度分析、優(yōu)化和控制等問題,從而促進(jìn)建筑工程結(jié)構(gòu)設(shè)計水平和設(shè)計質(zhì)量的提高。本文給出了將Hadoop的MapReduce計算架構(gòu)與MPI相互整合的應(yīng)用方法,提出了云計算在建筑結(jié)構(gòu)程序并行化上的應(yīng)用,為大規(guī)模工程計算技術(shù)發(fā)展提供了新思路。
參考文獻(xiàn)
[1] MATTSON T G. 并行編程模式[M].北京:清華大學(xué)出版社,2005.
[2] 王文義,劉輝.并行程序設(shè)計環(huán)境MPICH的應(yīng)用機理分析[J].計算機應(yīng)用,2004,22(4):1-3.
[3] 王鵬. 云計算的關(guān)鍵技術(shù)與應(yīng)用實例[M]. 北京:人民郵電出版社, 2010.    
[4] WHITE T. Hadoop: the definitive guide[M].Oreilly Media, 2009.
[5] GHEMAWAT S, GOBIOFF H, LEUNG S T. The google file system[J].ACM SIGOPS Operating Systems,2003,9(8):1-5.
[6] 張林波,遲學(xué)斌,莫則堯.并行計算導(dǎo)論[M].北京:清華大學(xué)出版社,2006.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。