《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于并行云計(jì)算模式的建筑結(jié)構(gòu)設(shè)計(jì)
基于并行云計(jì)算模式的建筑結(jié)構(gòu)設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2011年第10期
劉曉群1, 鄒 欣1, 范 虹2
1. 河北建筑工程學(xué)院 現(xiàn)代教育技術(shù)中心, 河北 張家口075024; 2. 河北建筑工程學(xué)院 數(shù)理系, 河北 張家口 075024
摘要: 在建筑結(jié)構(gòu)并行計(jì)算與云計(jì)算相結(jié)合的基礎(chǔ)上,提出了結(jié)合兩種計(jì)算技術(shù)的軟硬件結(jié)構(gòu)及應(yīng)用方法。云計(jì)算及并行計(jì)算技術(shù)的結(jié)合為超高、超長(zhǎng)、大跨度復(fù)雜建筑工程計(jì)算問(wèn)題提供了實(shí)現(xiàn)高效能計(jì)算的可能。理論分析表明,該方法優(yōu)于傳統(tǒng)的并行計(jì)算技術(shù),能夠?yàn)閷?shí)現(xiàn)建筑結(jié)構(gòu)的高效能計(jì)算提供新思路。
中圖分類號(hào): TP393
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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


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


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

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

 

 

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

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

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