焦善飛,何 晨,豆育升,唐 紅
(1.重慶郵電大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,重慶 400065);2.重慶郵電大學(xué)高性能計(jì)算與應(yīng)用研究所,重慶 400065)
Hadoop是目前比較流行的開(kāi)源分布式計(jì)算框架,它大大簡(jiǎn)化了并行程序的設(shè)計(jì)和開(kāi)發(fā),使開(kāi)發(fā)者集中精力分析復(fù)雜的應(yīng)用,擺脫并行化過(guò)程中的各種困擾。傳統(tǒng)的分子動(dòng)力學(xué)模擬研究一般是基于MPI、OpenMP 或Condor網(wǎng)格平臺(tái),在可靠性、可擴(kuò)展性、容錯(cuò)性和動(dòng)態(tài)負(fù)載均衡方面均有所欠缺。在傳統(tǒng)平臺(tái)上,個(gè)別節(jié)點(diǎn)死機(jī)時(shí)有發(fā)生,所有運(yùn)行的作業(yè)都將會(huì)受到影響,平臺(tái)本身缺少自動(dòng)重新調(diào)度子任務(wù)的機(jī)制,無(wú)法在單步內(nèi)對(duì)每個(gè)計(jì)算節(jié)點(diǎn)容錯(cuò),也不容易在各節(jié)點(diǎn)上實(shí)現(xiàn)動(dòng)態(tài)負(fù)載均衡,以充分利用有限的硬件資源。因此,在Hadoop云計(jì)算平臺(tái)上運(yùn)行分子模擬程序,具有克服傳統(tǒng)平臺(tái)固有的缺陷、節(jié)省各種軟硬件投資和縮短模擬時(shí)間等意義。
本文在深入研究Hadoop框架及其相關(guān)原理的基礎(chǔ)上,結(jié)合計(jì)算化學(xué)相關(guān)理論,將需要大量計(jì)算的短程力有效的分子動(dòng)力學(xué)模擬應(yīng)用到這種新型平臺(tái)上來(lái)。本文在使用分子動(dòng)力學(xué)模擬常用并行算法,即原子分解法的基礎(chǔ)上,提出了三種可行方案并主要實(shí)現(xiàn)和測(cè)試了其中的“讀寫(xiě)HDFS 同步法”,克服了Hadoop實(shí)現(xiàn)科學(xué)計(jì)算類應(yīng)用的難點(diǎn)——全局通信、同步方式和快速迭代,達(dá)到優(yōu)化模擬、克服傳統(tǒng)平臺(tái)的缺點(diǎn)和提高硬件資源利用率等目的,豐富了Hadoop 在科學(xué)計(jì)算領(lǐng)域中的應(yīng)用。
云計(jì)算[1]是并行計(jì)算、分布式計(jì)算、網(wǎng)格計(jì)算和虛擬化等技術(shù)的綜合發(fā)展和商業(yè)實(shí)現(xiàn),它將大規(guī)模的計(jì)算任務(wù)分解成多個(gè)子任務(wù)并行運(yùn)行在大量廉價(jià)PC或中低端服務(wù)器構(gòu)成的集群上,具有超大規(guī)模、高可靠性、可伸縮性、極其廉價(jià)、用戶按需使用虛擬化資源池等優(yōu)點(diǎn)。
Hadoop作為一個(gè)分布式系統(tǒng)基礎(chǔ)架構(gòu),克隆了Google運(yùn)行系統(tǒng)的主要框架,在底層可以實(shí)現(xiàn)對(duì)集群的管理和控制,在上層可以快速構(gòu)建企業(yè)級(jí)應(yīng)用。它為應(yīng)用程序提供了一系列接口,包括分布式計(jì)算編程模型MapReduce、分布式文件系統(tǒng)HDFS、分布式數(shù)據(jù)庫(kù)Hbase、分布式鎖服務(wù)Zoo-Keeper等組件。
Hadoop的主從架構(gòu)如圖1 所示,各slave通過(guò)網(wǎng)絡(luò)不斷地向master發(fā)送heartbeat,獲取所要執(zhí)行的task 或其它操作命令。數(shù)據(jù)按塊(默認(rèn)64MB)存儲(chǔ)在各個(gè)DataNode上,NameNode保存元數(shù)據(jù)并向client提供查詢服務(wù)。JobTracker接受client提交的作業(yè)后將作業(yè)劃分為多個(gè)任務(wù)(task),并分發(fā)到各個(gè)TaskTracker的mapslot/reduceslot(如圖1 中mapslot等,表示任務(wù)槽)上執(zhí)行,最后進(jìn)入reduce 階段輸出執(zhí)行結(jié)果到HDFS。
Figure 1 Structure model of Hadoop圖1 Hadoop的主從架構(gòu)模型[2]
Hadoop特別適合高吞吐量、一次寫(xiě)入多次讀取類應(yīng)用,雅虎、淘寶和百度等互聯(lián)網(wǎng)公司都有多個(gè)上千節(jié)點(diǎn)規(guī)模的Hadoop集群,用于日志分析、數(shù)據(jù)挖掘和搜索引擎等具體應(yīng)用,每天運(yùn)行數(shù)萬(wàn)個(gè)MapReduce作業(yè),處理PB 級(jí)的數(shù)據(jù)。但是,在科學(xué)計(jì)算方面的應(yīng)用還不夠廣泛,尤其是計(jì)算化學(xué)中的分子模擬領(lǐng)域,目前在國(guó)內(nèi)外極少有人嘗試。
分子動(dòng)力學(xué)MD(Molecular Dynamics)模擬是一種在原子級(jí)模擬固體、液體和分子性質(zhì)的常用的計(jì)算機(jī)模擬方法,廣泛應(yīng)用于物理學(xué)、材料科學(xué)和生命科學(xué)等領(lǐng)域[3]。它主要是通過(guò)求解粒子的運(yùn)動(dòng)方程,獲得其運(yùn)動(dòng)軌跡并計(jì)算各種宏觀物理量。
在模擬過(guò)程中需要大量的計(jì)算,普通服務(wù)器早已不能滿足要求,大型機(jī)[4]、并行向量機(jī)又非常昂貴。使用云計(jì)算服務(wù)商提供的彈性云計(jì)算等方案是比較好的選擇,可省去大筆的購(gòu)置和運(yùn)維費(fèi)用,僅需花較少的機(jī)時(shí)費(fèi)就可在很短的時(shí)間內(nèi)獲得模擬結(jié)果,縮短科研周期。因此,將分子動(dòng)力學(xué)模擬這類應(yīng)用從傳統(tǒng)的并行平臺(tái)遷移到云計(jì)算平臺(tái)上,有著較高的研究意義和實(shí)用價(jià)值。
下面將分別介紹MD 串行和傳統(tǒng)并行算法的基本原理和步驟。
典型的MD 串行算法步驟如圖2所示。
Figure 2 Steps of serial MD圖2 串行MD 的步驟
模擬體系中每個(gè)粒子的運(yùn)動(dòng)遵守牛頓運(yùn)動(dòng)方程:
本文使用有限差分法中最常用的verlet-velocity法求解粒子的運(yùn)動(dòng)方程:
在計(jì)算中需要知道上一個(gè)時(shí)刻的位置、速度和力,首先由方程(5)計(jì)算新的位置,然后計(jì)算新的力F(t+dt),再由方程(6)計(jì)算新時(shí)刻的速度。最后,運(yùn)用統(tǒng)計(jì)物理的方法來(lái)計(jì)算徑向分布函數(shù)、總動(dòng)能、總能量、熱傳導(dǎo)系數(shù)等,達(dá)到與實(shí)驗(yàn)對(duì)照檢驗(yàn),以及指導(dǎo)后續(xù)實(shí)驗(yàn)研究和預(yù)測(cè)物質(zhì)性質(zhì)等目的[6]。
在模擬過(guò)程中,分子間作用力的計(jì)算最為耗時(shí),占整體模擬時(shí)間的80%左右。有三種并行算法[7]可計(jì)算分子間作用力:力分解法、空間分解法和原子分解法。由于Hadoop系統(tǒng)中各計(jì)算節(jié)點(diǎn)通信時(shí)額外開(kāi)銷比較大,不宜頻繁通信。而前兩種方法都需要頻繁的節(jié)點(diǎn)間通信,并且并行算法本身也不易負(fù)載平衡;原子分解法容易實(shí)現(xiàn),可以實(shí)現(xiàn)負(fù)載均衡(忙節(jié)點(diǎn)少分原子,閑節(jié)點(diǎn)多分原子)。因此,本文的程序MRmd采用原子分解法。
傳統(tǒng)的MD 并行化是基于MPI、OpenMP[8]或MPI+OpenMP[9]兩級(jí)并行的并行機(jī)制。MPI是跨節(jié)點(diǎn)、消息傳遞型、進(jìn)程級(jí)并行的編程模型,比較擅長(zhǎng)計(jì)算密集型應(yīng)用。OpenMP 是在單機(jī)多核平臺(tái)上、線程級(jí)并行的編程模型,由于四路以上服務(wù)器價(jià)格昂貴,總線和IO 帶寬有限,OpenMP 的擴(kuò)展能力不強(qiáng)。
本文在Hadoop平臺(tái)上使用MapReduce開(kāi)源分布式框架來(lái)解決MD 這一科學(xué)計(jì)算問(wèn)題。采用Hadoop實(shí)現(xiàn)MD 相比傳統(tǒng)方案有以下優(yōu)勢(shì):
(1)較高的容錯(cuò)性。各節(jié)點(diǎn)平等地訪問(wèn)HDFS,每個(gè)計(jì)算節(jié)點(diǎn)(TaskTracker)同時(shí)又是數(shù)據(jù)節(jié)點(diǎn)(DataNode)。主節(jié)點(diǎn)會(huì)把失敗的子任務(wù)重新調(diào)度到另一個(gè)節(jié)點(diǎn)重新執(zhí)行,這樣就減少浪費(fèi)寶貴的硬件資源。此外,分布式文件系統(tǒng)的副本策略保證每個(gè)數(shù)據(jù)塊都有若干個(gè)副本,個(gè)別磁盤(pán)損壞對(duì)整體系統(tǒng)沒(méi)有影響。而MPI在底層上缺少這種分布式文件系統(tǒng),一旦中途某個(gè)節(jié)點(diǎn)宕機(jī),只能將整個(gè)作業(yè)重新提交;另一方面,在MPI上通常每五個(gè)時(shí)間步保存一次運(yùn)行結(jié)果,而Hadoop上可以做到保存每一時(shí)間步的模擬結(jié)果。
(2)較高的資源利用率。每個(gè)TaskTracker有多個(gè)mapslot或reduceslot,可并行運(yùn)行多個(gè)子任務(wù),最大限度地發(fā)揮SMP 和CMP 體系結(jié)構(gòu)的優(yōu)勢(shì),提高資源利用率;另一方面,也不存在MPI上常見(jiàn)的死鎖問(wèn)題。
(3)較強(qiáng)的伸縮性。傳統(tǒng)的并行框架伸縮性有限,隨著計(jì)算規(guī)模不斷擴(kuò)大或數(shù)據(jù)的指數(shù)級(jí)上升而出現(xiàn)各種瓶頸。而在Hadoop中只需簡(jiǎn)單地增加節(jié)點(diǎn)就能輕松應(yīng)對(duì)新的業(yè)務(wù)需求。
綜上,Hadoop在科學(xué)計(jì)算類應(yīng)用和海量數(shù)據(jù)處理方面都表現(xiàn)出了較好的優(yōu)勢(shì)。
常規(guī)的Hadoop 應(yīng)用程序執(zhí)行流程是:每個(gè)maptask(某時(shí)刻在mapslot上執(zhí)行的map 任務(wù))從HDFS取一部分?jǐn)?shù)據(jù)作為輸入,把每條記錄以鍵值對(duì)的形式處理后送到reduce進(jìn)行規(guī)約,再寫(xiě)回HDFS,中間產(chǎn)生的臨時(shí)數(shù)據(jù)是先寫(xiě)到本地硬盤(pán)再通過(guò)網(wǎng)絡(luò)傳輸給reducetask(某時(shí)刻在reduceslot上執(zhí)行的reduce任務(wù))。在Hadoop框架中,reduce階段是實(shí)現(xiàn)節(jié)點(diǎn)通信的惟一途徑。顯然,對(duì)MD 這種數(shù)據(jù)相關(guān)比較嚴(yán)重并且需要很多次迭代的應(yīng)用來(lái)說(shuō),常規(guī)執(zhí)行流程不能滿足要求,下一時(shí)間步需要上一時(shí)間步的全局位置信息。
在Hadoop平臺(tái)實(shí)現(xiàn)MD 的主要困難體現(xiàn)在全局通信、同步方法和快速迭代等方面。當(dāng)然,在MPI平臺(tái)上也存在編程困難、通信延遲大、負(fù)載不平衡和同步耗時(shí)之類的問(wèn)題。
目前解決方案有:
(1)每個(gè)Job計(jì)算一個(gè)時(shí)間步,由Distributed-Cache將上一時(shí)間步的全局位置信息分發(fā)到各節(jié)點(diǎn)的內(nèi)存中,maptask 負(fù)責(zé)計(jì)算,reducetask 負(fù)責(zé)匯總?cè)值男挛恢眯畔ⅲ缓笾匦聠?dòng)一個(gè)Job,再進(jìn)行下一步分發(fā)、計(jì)算和匯總。這種方法可以用來(lái)進(jìn)行迭代次數(shù)不多的模擬,每次迭代要占用大量的作業(yè)初始化時(shí)間[10]。限于篇幅,本文對(duì)該方案的實(shí)現(xiàn)和測(cè)試不做詳細(xì)介紹。
(2)讀寫(xiě)HDFS同步法。各計(jì)算節(jié)點(diǎn)平等地訪問(wèn)HDFS,從HDFS 取上一時(shí)間步的全局位置信息,把計(jì)算好的新位置信息寫(xiě)入到HDFS 供下一時(shí)間步的計(jì)算節(jié)點(diǎn)讀取,這是一個(gè)很好的實(shí)現(xiàn)全局通信的途徑。但是,HDFS有自身的缺點(diǎn)——不支持文件的追加,HDFS作為Google GFS的簡(jiǎn)化版和開(kāi)源實(shí)現(xiàn),去掉了GFS最復(fù)雜的部分,即多個(gè)客戶端對(duì)同一文件的并發(fā)追加。程序使用的同步方式為阻塞式通信,直到最慢的節(jié)點(diǎn)的計(jì)算完成,才能進(jìn)入下一輪計(jì)算。本文的程序MRmd正是采用了這一方案,在設(shè)計(jì)部分有詳細(xì)闡述。
(3)使用專門(mén)的節(jié)點(diǎn)負(fù)責(zé)同步和分發(fā)新的位置信息。此方法又可分為兩種:一種是在應(yīng)用程序上實(shí)現(xiàn),選一個(gè)節(jié)點(diǎn)(比如taskid=0所在節(jié)點(diǎn))來(lái)收集各計(jì)算節(jié)點(diǎn)報(bào)告的新位置信息,并回復(fù)全局位置信息以進(jìn)行下一時(shí)間步的模擬;另一種方法是在Hadoop系統(tǒng)底層實(shí)現(xiàn),各計(jì)算節(jié)點(diǎn)使用消息傳遞機(jī)制來(lái)實(shí)現(xiàn)通信。理論上后者能進(jìn)一步降低全局通信在總時(shí)間中的比重,但還未得到實(shí)驗(yàn)證明。
MapReduce采用key-value即鍵值對(duì)的形式序列化每條數(shù)據(jù)記錄[11],maptask 中有一個(gè)用戶自定義的map()函數(shù),該函數(shù)接受一個(gè)鍵值對(duì),處理后輸出。maptask 處理完split內(nèi)的鍵值對(duì)后,reducetask便開(kāi)始復(fù)制其輸出,以進(jìn)行shuffle、sort和reduce等工作[12]。
在圖3中各模塊的具體任務(wù)是:
(1)initialize:包括Java JVM 的啟動(dòng)及初始化和為當(dāng)前 maptask 做的初始化工作,如取maptaskID、分得的原子號(hào)列表,申請(qǐng)內(nèi)存空間保存全局原子的三維坐標(biāo)、速度和加速度等。
(2)read global:讀HDFS中指定的目錄下的所有文件,這些文件是由上步計(jì)算完成后寫(xiě)入的,提取全局原子ID 及位置信息。
(3)force:對(duì)分得的原子號(hào)列表中的每一個(gè)原子,分別用verlet-velocity 差分和Lennard-Jones作用勢(shì)計(jì)算其新的位置信息。
(4)sync wait:把分得的原子列表中所有原子新位置信息寫(xiě)到 HDFS 中以時(shí)間步序號(hào)和maptaskID 命名的文件上,進(jìn)入同步等待階段,不斷檢查HDFS的目錄下本輪輸出文件是否齊全,若不齊全則說(shuō)明仍有未完成的子任務(wù),循環(huán)等待直到所有子任務(wù)都完成再進(jìn)入下一時(shí)間步的計(jì)算。
(5)reduce phase:map phase完成后輸出一個(gè)鍵值對(duì),該鍵值包括子任務(wù)ID、各部分耗時(shí)等信息,reduce phase對(duì)所有輸出匯總,并寫(xiě)到HDFS,以便分析。
Figure 3 Flow of MRmd圖3 MRmd的執(zhí)行流程圖
在模擬結(jié)束后,啟用另一個(gè)Hadoop 程序MRmdEnergy來(lái)對(duì)所有時(shí)間步的位置信息生成統(tǒng)計(jì)信息,如每一時(shí)間步的溫度、動(dòng)能、勢(shì)能、總能量、可供jmol軟件導(dǎo)入演示動(dòng)畫(huà)用的坐標(biāo)文件和每個(gè)子任務(wù)的各部分耗時(shí)情況。比如maptask0取1~100時(shí)間步的所有位置信息,計(jì)算其各步的統(tǒng)計(jì)信息。為了保證兩個(gè)reduce phase輸出都按時(shí)間步有序,設(shè)計(jì)了特殊的key 并重寫(xiě)了Partitioner-Class。
根據(jù)Amdahl定律,加速比的定義為:
由Amdahl公式知,加速比是有最大限度的,最大值取決于不可并行部分所占的比重。
本文的測(cè)試環(huán)境為:1個(gè)主節(jié)點(diǎn),17個(gè)計(jì)算節(jié)點(diǎn),配置均為Intel Q6600@2.4GHz四核CPU,8GB內(nèi)存,1 500GB 硬盤(pán),百兆網(wǎng)絡(luò)。每個(gè)計(jì)算節(jié)點(diǎn)配置4 個(gè)mapslot,即最多可同時(shí)執(zhí)行4 個(gè)maptask。
經(jīng)典的分子動(dòng)力學(xué)模擬在研究階段常選用液態(tài)氬的分子運(yùn)動(dòng)作為研究對(duì)象。當(dāng)氬原子數(shù)分別為36 000、60 000和108 000,模擬200步,分別使用maps個(gè)子任務(wù)對(duì)該體系進(jìn)行測(cè)試,測(cè)得的加速比(對(duì)比MPI+OpenMP混合并行)如圖4所示。從圖4中可看出,當(dāng)原子數(shù)為36 000時(shí),Hadoop平臺(tái)的性能稍遜于傳統(tǒng)并行平臺(tái),具體原因?yàn)樯衔闹兴赋龅呐cHDFS通信開(kāi)銷大有關(guān)。同步時(shí)間、IO 時(shí)間和各種附加開(kāi)銷都是不可并行的,即使再增加節(jié)點(diǎn)數(shù),加速比也不會(huì)有大幅提高。當(dāng)模擬體系增加到60 000和108 000時(shí),Hadoop表現(xiàn)出了一定優(yōu)勢(shì),在本文實(shí)驗(yàn)結(jié)果中模擬時(shí)間縮短5%。隨模擬原子增加,該優(yōu)勢(shì)會(huì)逐漸凸顯,輸出文件中模擬體系的總能量隨時(shí)間變化在十萬(wàn)分位守恒,說(shuō)明了模擬程序在可接受誤差范圍內(nèi)的準(zhǔn)確性。
Figure 4 Speedup圖4 加速比
當(dāng)原子數(shù)為60 000時(shí),隨maps 增加,在所有節(jié)點(diǎn)上各部分的平均時(shí)間比重如圖5所示。
Figure 5 Ratio of cost-time圖5 各部分時(shí)間比重
(1)其它開(kāi)銷(other):包括作業(yè)初始化1s,分發(fā)子任務(wù)到所有計(jì)算節(jié)點(diǎn)、啟動(dòng)JVM、初始化各類參數(shù)3s,reduce 階 段 的shuffle、sort、reduce 占12s,總計(jì)16s左右,都是分布式系統(tǒng)框架內(nèi)必不可少的開(kāi)銷。
(2)平均IO 時(shí)間(IO):讀取HDFS得到全局位置信息、寫(xiě)入新位置信息到HDFS 的總時(shí)間。由于HDFS是網(wǎng)絡(luò)上的分布式文件系統(tǒng),IO 開(kāi)銷=網(wǎng)絡(luò)開(kāi)銷+磁盤(pán)開(kāi)銷。
(3)平均同步等待時(shí)間(sync):每一輪檢查各子任務(wù)是否都同步完成的等待時(shí)間。同步越來(lái)越耗時(shí)是因?yàn)槊總€(gè)節(jié)點(diǎn)有4個(gè)mapslot,可能占了1~4個(gè)不等的slot,造成節(jié)點(diǎn)負(fù)載有輕有重,以及受操作系統(tǒng)的進(jìn)程調(diào)度機(jī)制、系統(tǒng)進(jìn)程不斷變化和其他用戶進(jìn)程的影響。
(4)平均計(jì)算時(shí)間(calculate):所有子任務(wù)有效計(jì)算時(shí)間的平均值。
總體分析來(lái)看,第二種方案本身的通信方式以及集群中百兆網(wǎng)絡(luò)的低帶寬、高延遲,各節(jié)點(diǎn)負(fù)載不平衡造成同步等待比較耗時(shí),是制約加速比繼續(xù)提高的重要原因。正因?yàn)樽x寫(xiě)HDFS法實(shí)現(xiàn)同步與通信的代價(jià)略高,適合用于節(jié)點(diǎn)間通信不太頻繁、通信量也不大的場(chǎng)合中,所以本程序在大體系模擬時(shí)表現(xiàn)更好。
進(jìn)一步優(yōu)化程序以實(shí)現(xiàn)動(dòng)態(tài)負(fù)載平衡,即每一輪都要對(duì)比上一輪各子任務(wù)的執(zhí)行時(shí)間,如果差值超過(guò)一定范圍,就把原子重新分配來(lái)調(diào)整任務(wù)粒度,把運(yùn)算慢的節(jié)點(diǎn)上的原子減少,增加給運(yùn)算快的節(jié)點(diǎn)。實(shí)驗(yàn)表明,當(dāng)原子數(shù)大于36 000時(shí),負(fù)載平衡所引入的額外開(kāi)銷遠(yuǎn)小于改進(jìn)前的同步時(shí)間。
本文采用MapReduce分布式編程模型結(jié)合原子分解法這一并行算法實(shí)現(xiàn)并優(yōu)化了短程力下的分子動(dòng)力學(xué)模擬的并行算法,通過(guò)增加適量的IO就可以應(yīng)對(duì)節(jié)點(diǎn)失效問(wèn)題和實(shí)現(xiàn)全局通信,并在集群上以模擬不同體系大小的液態(tài)氬為例進(jìn)行了多種測(cè)試,取得了較好的加速比、擴(kuò)展性和容錯(cuò)性。實(shí)驗(yàn)證明,Hadoop并行平臺(tái)在應(yīng)用于大體系的分子模擬時(shí),不僅在性能上優(yōu)于傳統(tǒng)并行平臺(tái),而且彌補(bǔ)了傳統(tǒng)平臺(tái)在負(fù)載均衡和容錯(cuò)等方面的不足。但是,Hadoop在科學(xué)計(jì)算應(yīng)用上仍然有很多挑戰(zhàn)和不足,比如節(jié)點(diǎn)間通信不便和實(shí)時(shí)性不強(qiáng)。為了解決這些問(wèn)題,下一步將從Hadoop底層通信機(jī)制進(jìn)行改進(jìn),探索一種適合此類科學(xué)計(jì)算的二次開(kāi)發(fā)的并行框架。MD 方面將引入verlet近鄰表[13]降低算法復(fù)雜度,以加速模擬體系使其盡快達(dá)到平衡態(tài)。
[1]Weinhardt C,Anandasivam A,Blau B,et al.Cloud computing—a classification,business models,and research directions[J].Business & Information Systems Engineering,2009,1(1):391-399.
[2]Liu Peng.Cloud computing[M].Beijing:Publishing House of Electronics Industry,2010.(in Chinese)
[3]He Mu-jun,Guo Li,Yan Li.Research and analyze of commu-nication performance optimization in large-scale particle simulation system[J].Computers and Applied Chemistry,2008,25(9):1-3.(in Chinese)
[4]Zhang Bao-yin,Mo Ze-yao,Cao Xiao-lin.Performance optimization of a molecular dynamics code based on computational caching[J].Computer Engineering & Science,2009,31(11):77-83.(in Chinese)
[5]Verlet L.Computer experiments on classical fluids thermodynamical properties of Lennard-Jones molecules[J].Phys-Rev,1967,159(1):98-103.
[6]Zhang Qin-yong,Jiang Hong-chuan,Liu Cui-h(huán)ua.Research of optimization and parallelization for molecular dynamics simulation[J].Application Research of Computers,2005,22(8):84-86.(in Chinese)
[7]Wang Bing,Shu Ji-wu,Zheng Wei-min.Hybird decomposition method in parallel molecular dynamics simulation based on SMP cluster architecture[J].Tsinghua Science and Technology,2005,10(2):183-188.
[8]Bai Ming-ze,Cheng Li,Dou Yu-sheng,et al.Performance analysis and improvement of parallel molecular dynamics algorithm base on OpenMP[J].Journal of Computer Applications,2012,32(1):163-166.(in Chinese)
[9]Li Hong-jian,Bai Ming-ze,Tang Hong,et al.Application of hybrid parallel algorithm for simulating photochemical reaction[J].Journal of Computer Applications,2010,30(6):1687-1689.(in Chinese)
[10]Chen He.Molecular dynamics simulation based on hadoop MapReduce[D].University of Nebraska-Lincoln,2011.
[11]Dean J,Ghemawat S.MapReduce:Simplified data processing on large clusters[C]∥Proc of the 6th Symposium on operating Systems Design and Implentation,2008:1-12.
[12]White T.Hadoop:The definitive guide[M].California:O’Reilly Media,2009.
[13]Shu Ji-wu,Wang Bing,Chen Min,et al.Optimization techniques for parallel force decomposition algorithm in molecular dynamic simulations[J].Computer Physics Communications,2003,154(2):101-103.
附中文參考文獻(xiàn):
[2]劉鵬.云計(jì)算[M].北京:電子工業(yè)出版社,2010.
[3]何牧君,郭力,嚴(yán)歷.大規(guī)模并行粒子模擬系統(tǒng)通信性能優(yōu)化研究與分析[J].計(jì)算機(jī)與應(yīng)用化學(xué),2008,25(9):1-3.
[4]張寶印,莫?jiǎng)t堯,曹小林.基于計(jì)算緩存方法的分子動(dòng)力學(xué)程序性能優(yōu)化[J].計(jì)算機(jī)工程與科學(xué),2009,31(11):77-83.
[6]張勤勇,蔣洪川,劉翠華.分子動(dòng)力學(xué)模擬的優(yōu)化與并行研究[J].計(jì)算機(jī)應(yīng)用研究,2005,22(8):84-86.
[8]白明澤,程麗,豆育升,等.基于OpenMP的分子動(dòng)力學(xué)并行算法的性能分析與優(yōu)化[J].計(jì)算機(jī)應(yīng)用,2012,32(1):163-166.
[9]李鴻健,白明澤,唐紅,等.混合并行技術(shù)在激光化學(xué)反應(yīng)模擬中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2010,30(6):1687-1689.