聶寧明,胡長(zhǎng)軍,張?jiān)迫?,賀新福,張博堯,李士剛
1.中國(guó)科學(xué)院 計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京 100190
2.北京科技大學(xué) 計(jì)算機(jī)與通信工程學(xué)院,北京 100083
3.中國(guó)科學(xué)院 計(jì)算技術(shù)研究所,北京 100190
4.中國(guó)原子能科學(xué)研究院,北京 102413
材料微觀結(jié)構(gòu)演化大規(guī)模分子動(dòng)力學(xué)軟件比較*
聶寧明1+,胡長(zhǎng)軍2,張?jiān)迫?,賀新福4,張博堯1,李士剛3
1.中國(guó)科學(xué)院 計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京 100190
2.北京科技大學(xué) 計(jì)算機(jī)與通信工程學(xué)院,北京 100083
3.中國(guó)科學(xué)院 計(jì)算技術(shù)研究所,北京 100190
4.中國(guó)原子能科學(xué)研究院,北京 102413
分子動(dòng)力學(xué)模擬是研究材料輻照效應(yīng)下微觀結(jié)構(gòu)演化的重要工具。對(duì)4款主流材料計(jì)算大規(guī)模分子動(dòng)力學(xué)開(kāi)源軟件LAMMPS、Ls1-MarDyn、IMD和CoMD進(jìn)行了詳細(xì)的介紹,從數(shù)據(jù)結(jié)構(gòu)、計(jì)算方法、并行分解方式、原子存儲(chǔ)等多個(gè)方面進(jìn)行了橫向分析比較。通過(guò)設(shè)計(jì)算例測(cè)試了各軟件的計(jì)算效率、并行性能和內(nèi)存使用情況。針對(duì)壓力容器關(guān)鍵材料輻照缺陷演化計(jì)算特點(diǎn),提出了設(shè)計(jì)節(jié)省存儲(chǔ)空間的面向單晶的新型數(shù)據(jù)結(jié)構(gòu)的設(shè)想,為后續(xù)實(shí)現(xiàn)大時(shí)空尺度分子動(dòng)力學(xué)模擬研究提供了研究基礎(chǔ)。
分子動(dòng)力學(xué)模擬;數(shù)據(jù)結(jié)構(gòu);材料輻照損傷
材料輻照損傷研究涉及從原子尺度到宏觀尺度的9個(gè)數(shù)量級(jí)的跨越,以及皮秒量級(jí)原子鍵斷裂過(guò)程到幾十年工程結(jié)構(gòu)失效和破壞的跨時(shí)間尺度的非線性過(guò)程。這一演化和發(fā)展過(guò)程在實(shí)驗(yàn)中很難觀測(cè)和發(fā)現(xiàn)。因此,目前為止,材料工作者對(duì)材料輻照損傷過(guò)程中內(nèi)部微觀過(guò)程和演化機(jī)理尚缺乏深入的了解。高性能計(jì)算機(jī)技術(shù)的發(fā)展使人們從微觀層次深入理解材料成為可能,成為當(dāng)今國(guó)際材料界的重要研究領(lǐng)域。分子動(dòng)力學(xué)模擬作為原子尺度模擬的經(jīng)典計(jì)算方法,在材料微觀結(jié)構(gòu)演化規(guī)律研究中處于重要地位。
分子動(dòng)力學(xué)模擬(molecular dynamics simulation,MD)是通過(guò)利用計(jì)算機(jī)求解體系內(nèi)所有粒子的運(yùn)動(dòng)方程來(lái)模擬粒子的運(yùn)動(dòng)軌跡,從而獲得系統(tǒng)的溫度、體積、壓力、應(yīng)力等宏觀量和微觀過(guò)程量。從20世紀(jì)50年代發(fā)展以來(lái)[1-2],已經(jīng)在包括物理、計(jì)算化學(xué)、計(jì)算生物、材料科學(xué)、藥物設(shè)計(jì)等多個(gè)領(lǐng)域有了十分豐富的應(yīng)用。分子動(dòng)力學(xué)模擬作為一種非常有效的材料計(jì)算技術(shù),已成為與實(shí)驗(yàn)同等重要的科學(xué)研究方法。
由于計(jì)算能力的限制,目前分子動(dòng)力學(xué)通常模擬的是幾萬(wàn)到幾千萬(wàn)個(gè)原子條件下材料的內(nèi)部演化過(guò)程,而通常材料的微觀結(jié)構(gòu)及缺陷尺寸遠(yuǎn)遠(yuǎn)大于現(xiàn)有計(jì)算能力所實(shí)現(xiàn)的計(jì)算規(guī)模,計(jì)算模擬結(jié)果與實(shí)際材料的微觀演化過(guò)程及宏觀性能等還有很大的差異。因此分子動(dòng)力學(xué)模擬發(fā)展的關(guān)鍵在于空間規(guī)模的擴(kuò)大和時(shí)間尺度的延長(zhǎng)。只有在原子個(gè)數(shù)無(wú)限多,計(jì)算時(shí)間足夠長(zhǎng)時(shí),才能真實(shí)地反映材料性質(zhì)的宏觀行為。
近些年,隨著高性能計(jì)算機(jī)技術(shù)的飛速發(fā)展,分子動(dòng)力學(xué)計(jì)算技術(shù)被注入了新的活力。2015年7月,我國(guó)研制的“天河二號(hào)”超級(jí)計(jì)算機(jī)再度榮登全球超級(jí)計(jì)算機(jī)500強(qiáng)排行榜榜首,連續(xù)5次稱冠世界[3]。高性能計(jì)算機(jī)的發(fā)展為大規(guī)模分子動(dòng)力學(xué)模擬提供了發(fā)展的肥沃土壤。制約實(shí)際應(yīng)用的瓶頸在于大規(guī)模分子動(dòng)力學(xué)軟件的研發(fā)。開(kāi)展大規(guī)模分子動(dòng)力學(xué)模擬軟件的研究成為國(guó)際上的研究熱點(diǎn)??茖W(xué)家們基于混合架構(gòu)高性能計(jì)算機(jī)開(kāi)發(fā)了新的分子動(dòng)力學(xué)程序,例如LLNL與IBM的團(tuán)隊(duì)開(kāi)發(fā)了面向高性能計(jì)算機(jī)的經(jīng)典分子動(dòng)力學(xué)代碼——ddcMD代碼。2005年,他們首次從原子層次、原子尺度研究了金屬鉭和鈾在超高溫高壓下的凝固過(guò)程,在IBM BlueGene/L的131 072個(gè)CPU上,達(dá)到101.7萬(wàn)億次/秒的持續(xù)計(jì)算性能,獲得了Gordon Bell獎(jiǎng),該研究對(duì)評(píng)估核武器儲(chǔ)備的可靠性具有重要意義[4]。2007年,他們又實(shí)現(xiàn)了第一個(gè)基于分子動(dòng)力學(xué)的微米尺度原子級(jí)K-H不穩(wěn)定性數(shù)值模擬,在IBM BlueGene/L全系統(tǒng)212 992個(gè)CPU上,獲得了54.3萬(wàn)億次/秒的持續(xù)計(jì)算性能,再次獲得了Gordon Bell獎(jiǎng)[5]。近年來(lái)美國(guó)啟動(dòng)了名為“Spatio-Temporal Frontiers of Atomistic Simulations in the Petaflop Computational World”[6]的科研項(xiàng)目,旨在基于高性能計(jì)算機(jī)開(kāi)發(fā)可擴(kuò)展的分子動(dòng)力學(xué)程序,研究晶界與位錯(cuò)的相互作用以及材料中空洞的形核與長(zhǎng)大過(guò)程,在此基礎(chǔ)上采用可擴(kuò)展并行短程MD程序SPaSM在Roadrunner上對(duì)106~1012原子進(jìn)行了大規(guī)模的仿真模擬,達(dá)到了369萬(wàn)億次/秒持續(xù)計(jì)算性能[7]。除此之外,針對(duì)不同領(lǐng)域應(yīng)用的通用分子動(dòng)力學(xué)軟件也有許多,如LAMMPS(http://lammps. sandia.gov/)、NAMD(http://www.ks.uiuc.edu/Research/ namd/)、GROMACS(http://www.gromacs.org/)等,它們各有各的特點(diǎn),在不同領(lǐng)域獲得了廣泛的應(yīng)用。本文關(guān)注的是在材料計(jì)算領(lǐng)域廣泛使用,可進(jìn)行大規(guī)模并行計(jì)算的開(kāi)源分子動(dòng)力學(xué)軟件。選取了4款開(kāi)源分子動(dòng)力學(xué)軟件LAMMPS(large-scale atomic/ molecular massively parallel simulator)、Ls1-MarDyn(large systems 1:molecular dynamics)、IMD(ITAP molecular dynamics)和CoMD進(jìn)行詳細(xì)的比較說(shuō)明,為后續(xù)研發(fā)工作提供研究基礎(chǔ)與支持。
本文安排如下:首先是分子動(dòng)力學(xué)軟件的介紹,對(duì)選取的4款大規(guī)模并行計(jì)算的分子動(dòng)力學(xué)軟件LAMMPS、Ls1-MarDyn、IMD和CoMD進(jìn)行詳細(xì)介紹。接下來(lái),對(duì)這4款軟件在并行性能、數(shù)據(jù)結(jié)構(gòu)、原子結(jié)構(gòu)存儲(chǔ)等幾個(gè)方面進(jìn)行橫向比較,并通過(guò)數(shù)值算例進(jìn)行驗(yàn)證和分析說(shuō)明。最后,通過(guò)總結(jié)前文對(duì)4款MD軟件在大規(guī)模并行計(jì)算上特點(diǎn)的分析,提出針對(duì)輻照效應(yīng)下金屬材料計(jì)算特點(diǎn)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)思想,為下一步研究工作指出方向。
2.1 LAMMPS軟件
LAMMPS軟件是由美國(guó)Sandia國(guó)家實(shí)驗(yàn)室開(kāi)發(fā)的一款通用的大規(guī)模分子動(dòng)力學(xué)并行計(jì)算軟件,是世界上使用最廣泛的幾款分子動(dòng)力學(xué)軟件之一。從2004年到2011年之間,就達(dá)到了8萬(wàn)9千多次的下載量。
LAMMPS主要用于分子動(dòng)力學(xué)相關(guān)的一些計(jì)算和模擬工作,可在包括氣態(tài)、液態(tài)或者固態(tài)相形態(tài)、各種系綜下,采用不同的力場(chǎng)和邊界條件來(lái)模擬全原子、聚合物、生物、金屬、粒狀和粗?;w系,可實(shí)現(xiàn)從幾個(gè)粒子到上億粒子體系的分子動(dòng)力學(xué)計(jì)算。LAMMPS可提供并支持多種勢(shì)函數(shù)計(jì)算,包括對(duì)勢(shì),如Lennard-Jones(LJ)勢(shì)(多用于氣體、液體分子間作用力計(jì)算)、Morse勢(shì)等,多體勢(shì),如EAM(embedded atom model)勢(shì)(多用于單一金屬或合金體系計(jì)算)、MEAM(modified EAM)勢(shì)等,應(yīng)用十分廣泛。
LAMMPS軟件為開(kāi)源軟件,以C++編寫(xiě),支持用戶的自行修改和擴(kuò)展。LAMMPS支持串行與并行計(jì)算。并行LAMMPS采用MPI并行,針對(duì)并行計(jì)算特點(diǎn)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)與并行策略,具有良好的并行擴(kuò)展性。其軟件結(jié)構(gòu)可由如圖1所示的類結(jié)構(gòu)關(guān)系圖來(lái)展示。
Fig.1 Software structure chart of LAMMPS圖1LAMMPS軟件結(jié)構(gòu)示意圖
在計(jì)算粒子間相互作用時(shí),LAMMPS通過(guò)cutoff來(lái)設(shè)定每個(gè)粒子需計(jì)算的相互作用粒子范圍大小,采用neighbor list,也即近鄰列表的數(shù)據(jù)結(jié)構(gòu)來(lái)記錄每個(gè)粒子的鄰居粒子信息,如圖2所示。粒子信息存儲(chǔ)在數(shù)組中,每個(gè)粒子的鄰近表數(shù)組中存儲(chǔ)粒子的鄰居粒子索引。在計(jì)算時(shí),通過(guò)neighbor list來(lái)追蹤所有與該粒子有相互作用的粒子間作用力等信息。
Fig.2 Data structure of neighbor list for LAMMPS圖2 LAMMPS neighbor list數(shù)據(jù)結(jié)構(gòu)展示
LAMMPS采用空間分解方法來(lái)并行分配模擬區(qū)域。將整個(gè)模擬區(qū)域分解成若干子區(qū)域并分配到各個(gè)處理器上。在每個(gè)處理器的計(jì)算子區(qū)域上設(shè)置ghost區(qū)域來(lái)存儲(chǔ)子區(qū)域邊界原子信息,以便并行計(jì)算時(shí)各個(gè)處理器間可以相互通信與計(jì)算。
LAMMPS提供了兩種方法來(lái)實(shí)現(xiàn)負(fù)載均衡,Shift方法和RCB方法,分別如圖3(a)和圖3(b)所示。Shift方法通過(guò)改變處理器間的分割線,來(lái)調(diào)整分給每個(gè)處理器的空間。最后劃分的子區(qū)域還是網(wǎng)格的形式。RCB方法是一種類似“砌瓷磚”的方法,它不是把模擬區(qū)域劃成網(wǎng)格狀,而是劃成大小不等的四邊形區(qū)域,來(lái)讓每個(gè)區(qū)域有相等數(shù)目的原子。
Fig.3 Load balancing method of LAMMPS圖3LAMMPS的負(fù)載均衡
此外,LAMMPS已有支持其他架構(gòu)計(jì)算的版本,包括GPU(支持CUDA、OpenCL)和Intel Xeon Phi等架構(gòu),以及OPENMP版本的代碼。
2.2 IMD軟件
IMD是一款由德國(guó)University of Stuttgart于1997年開(kāi)始研發(fā)的用于經(jīng)典分子動(dòng)力學(xué)模擬的開(kāi)源軟件包[8],支持包括對(duì)勢(shì)、適用于金屬材料的EAM勢(shì)、適用于共價(jià)系統(tǒng)的Stillinger-Weber和Tersoff勢(shì),以及適用于液體的Gay-Berne勢(shì)等多種勢(shì)函數(shù)的分子動(dòng)力學(xué)計(jì)算。1999年,IMD在德國(guó)Julich超算中心的超級(jí)計(jì)算機(jī)T3E-1200-262上用512核實(shí)現(xiàn)了5×109個(gè)粒子的分子模擬,取得了當(dāng)時(shí)的世界紀(jì)錄[9]。
IMD采用模塊化設(shè)計(jì),C語(yǔ)言編寫(xiě),使用標(biāo)準(zhǔn)的MPI庫(kù)來(lái)實(shí)現(xiàn)并行消息傳遞。其軟件結(jié)構(gòu)如圖4所示。IMD采用link cell的數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)數(shù)據(jù)。先將整個(gè)box分成若干cell,每個(gè)cell是個(gè)結(jié)構(gòu)體,每一項(xiàng)存儲(chǔ)指向原子相關(guān)信息數(shù)組的指針,具體如圖5所示。此外,IMD還提供可選項(xiàng),對(duì)于3D的EAM勢(shì)計(jì)算算例,可提供與LAMMPS類似的neighbor list的數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)存儲(chǔ)[10]。
Fig.4 Software structure of IMD圖4 IMD軟件結(jié)構(gòu)示意
并行分解時(shí),IMD將處理器排列成三維的笛卡爾網(wǎng)格,然后按區(qū)域?qū)ox里cells數(shù)組細(xì)分成相同大小的塊,并將它們分配給不同的處理器。各處理器設(shè)置ghost區(qū)域用作接收與發(fā)送粒子數(shù)據(jù)的緩沖區(qū)。IMD不提供負(fù)載平衡的策略。
Fig.5 Data structure of cell in IMD圖5 IMD中cell的數(shù)據(jù)結(jié)構(gòu)展示
IMD除支持MPI的版本之外,還有OpenMP、MPI+OpenMP和GPU版本的實(shí)現(xiàn)。
2.3 Ls1-MarDyn軟件
以IMD的開(kāi)發(fā)團(tuán)隊(duì)為基礎(chǔ),德國(guó)University of Stuttgart、University of Kaiserslautern、Technische Universit?t München和University of Paderborn幾家大學(xué)聯(lián)合開(kāi)發(fā)了旨在挑戰(zhàn)萬(wàn)億級(jí)別的分子模擬的MD代碼——“Ls1-MarDyn”[11]。Ls1-MarDyn保持了目前最大規(guī)模的分子動(dòng)力學(xué)模擬紀(jì)錄,在德國(guó)萊布尼茲超級(jí)計(jì)算中心的超級(jí)計(jì)算機(jī)SuperMUC上用14萬(wàn)核實(shí)現(xiàn)了4×1012個(gè)粒子的分子模擬[12]。Ls1-MarDyn只支持剛性粒子和恒體積系綜下的MD計(jì)算,適用于短程力計(jì)算,因此Ls1不適用于離子計(jì)算。
Ls1-MarDyn是以C++編寫(xiě)的開(kāi)源代碼,基于MPI實(shí)現(xiàn)并行。Ls1-MarDyn采用模塊化設(shè)計(jì),將代碼分為物理模型計(jì)算模塊和并行算法模塊兩類,其軟件結(jié)構(gòu)如圖6所示。目前,Ls1-MarDyn只支持LJ勢(shì)、Tersoff勢(shì)等對(duì)勢(shì)計(jì)算,無(wú)法實(shí)現(xiàn)EAM等多體勢(shì)計(jì)算。
Fig.6 Software structure of Ls1-MarDyn圖6 Ls1-MarDyn軟件結(jié)構(gòu)示意圖
針對(duì)其適用于氣體流體之類分子運(yùn)動(dòng)變化頻繁的計(jì)算特點(diǎn),Ls1-MarDyn代碼設(shè)計(jì)link cell數(shù)據(jù)結(jié)構(gòu)來(lái)進(jìn)行數(shù)據(jù)存儲(chǔ)。將模擬區(qū)域以網(wǎng)格劃分成小的單元格cell,單元格長(zhǎng)為截?cái)喟霃剑罁?jù)分子位置信息,將每個(gè)分子對(duì)應(yīng)到相應(yīng)的cell中,如圖7(a)所示。針對(duì)不均勻的分子分布,Ls1-MarDyn對(duì)link cell數(shù)據(jù)結(jié)構(gòu)做出改進(jìn),對(duì)包含粒子數(shù)目較多的單元格進(jìn)行2次分割,設(shè)計(jì)了自適應(yīng)link cell的數(shù)據(jù)結(jié)構(gòu),如圖7(b)所示。
Ls1-MarDyn采用了兩種并行區(qū)域分解方式[13]。一種是按進(jìn)程數(shù)等分模擬區(qū)域,即將n個(gè)進(jìn)程以盡量分配給每個(gè)維度相同進(jìn)程數(shù)的原則建立笛卡爾坐標(biāo),將模擬區(qū)域等分為n個(gè)等體積的小區(qū)域并分到每個(gè)進(jìn)程。這種區(qū)域分解方法簡(jiǎn)單,易操作,只需初始化時(shí)建立一次即可。但是當(dāng)計(jì)算到后期粒子變化移動(dòng)較多時(shí),會(huì)造成計(jì)算負(fù)載不均衡。另一種是基于KD樹(shù)的區(qū)域分解方法,也即用垂直于坐標(biāo)軸的線將模擬區(qū)域遞歸地劃分為兩個(gè)負(fù)載相近的子區(qū)域,直到分割的子區(qū)域被分配到處理器上(負(fù)載近似于1/p),其中負(fù)載的計(jì)算以cell為基本單位進(jìn)行估算。Ls1-MarDyn暫時(shí)還未有支持GPU、OpenMP、Intel MIC等異構(gòu)計(jì)算版本代碼。
2.4 CoMD:Classical Molecular Dynamics Proxy Application軟件
CoMD(http://www.exmatex.org/comd.html)是由美國(guó)能源部ASCR資助的Exascale Co-Design Center forMaterialsinExtremeEnvironment(ExMatEx)中心設(shè)計(jì)開(kāi)發(fā)的MD代碼,由LANL的JamalMohd-Yusof、Chris Sewell和Sriram Swaminarayan基于SPaSM的分子動(dòng)力學(xué)代碼來(lái)進(jìn)行開(kāi)發(fā)維護(hù)。ExMatEx中心旨在極端環(huán)境下進(jìn)行材料特性的E級(jí)超大規(guī)模計(jì)算模擬研究,該項(xiàng)目強(qiáng)調(diào)多尺度模型、計(jì)算機(jī)科學(xué),以及通過(guò)協(xié)同設(shè)計(jì)實(shí)現(xiàn)百億億次的超大規(guī)模材料模擬。因此CoMD的研發(fā)是作為協(xié)同設(shè)計(jì)的工具,方便整個(gè)Ex-MatEx根據(jù)需要對(duì)新的體系結(jié)構(gòu)、編程模型等進(jìn)行多尺度建模計(jì)算、功能擴(kuò)展和重新實(shí)現(xiàn)以及性能測(cè)試等而開(kāi)發(fā)實(shí)現(xiàn)的。CoMD是開(kāi)源代碼,目前發(fā)布的是1.1版本[14],只能計(jì)算LJ勢(shì)和EAM勢(shì),EAM勢(shì)的計(jì)算只支持fcc晶格結(jié)構(gòu),只能建立規(guī)則的長(zhǎng)方體box。CoMD是以C語(yǔ)言編寫(xiě)的基礎(chǔ)MD程序,功能不多,主要結(jié)構(gòu)如圖8所示。
Fig.7 Data structure of link cell for Ls1-MarDyn圖7 Ls1-MarDyn的link cell數(shù)據(jù)結(jié)構(gòu)示意圖
Fig.8 Software structure of CoMD圖8CoMD軟件結(jié)構(gòu)示意圖
CoMD基于MPI實(shí)現(xiàn)并行,采用link cell的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),采用空間分解方法進(jìn)行任務(wù)劃分。CoMD根據(jù)cutoff大小劃分cell,按坐標(biāo)XYZ方向進(jìn)行處理器核數(shù)的劃分,再將每個(gè)方向上的cell均分到每個(gè)處理器上,將整個(gè)計(jì)算區(qū)域進(jìn)行空間的分解。CoMD暫時(shí)還未考慮負(fù)載平衡策略的實(shí)現(xiàn)。CoMD除MPI版本之外,還實(shí)現(xiàn)了OpenMP并行。對(duì)于不同計(jì)算架構(gòu),CoMD還實(shí)現(xiàn)了針對(duì)各計(jì)算架構(gòu)的版本,如AMD下的OpenCL版,基于NVDIA的GPU下的CUDA版,正在調(diào)試Intel MIC(aka Xeon Phi)和Intel's FF candidate architecture emulator架構(gòu)下的眾核計(jì)算版本[15]。
3.1 大規(guī)模并行分子動(dòng)力學(xué)軟件比較
通過(guò)上文的介紹,對(duì)LAMMPS、IMD、Ls1-Mar-Dyn以及CoMD這4種MD軟件的大致情況有了初步的了解,本節(jié)將對(duì)這4種軟件從數(shù)據(jù)結(jié)構(gòu)、計(jì)算方法與并行分解方式等角度進(jìn)行橫向的詳細(xì)比較。詳見(jiàn)表1。
4種軟件都采用空間分解的方式執(zhí)行并行分解任務(wù)。只有LAMMPS和Ls1-MarDyn兩種軟件提供了負(fù)載平衡技術(shù)。相比較而言,基于自適應(yīng)link cell結(jié)構(gòu)的Ls1-MarDyn在負(fù)載均衡的調(diào)節(jié)上會(huì)比LAMMPS更加靈活。
由于本文考慮的都是設(shè)置有cutoff的短程力計(jì)算,對(duì)于此類型計(jì)算,通常有兩類數(shù)據(jù)結(jié)構(gòu)用于粒子信息的存儲(chǔ),分別為neighbor list和link cell。neighbor list結(jié)構(gòu)是每個(gè)粒子都根據(jù)cutoff來(lái)確定并存儲(chǔ)自己的鄰居粒子,每次迭代時(shí)只遍歷自己的鄰居粒子。這種存儲(chǔ)方式的好處是計(jì)算時(shí)很容易找到需計(jì)算的對(duì)象,并且不會(huì)多出額外粒子的計(jì)算,計(jì)算效率很高。但是存儲(chǔ)代價(jià)高,每個(gè)粒子都要維護(hù)自己的list,在運(yùn)行一定步數(shù)之后還需更新自己的list。因此這類數(shù)據(jù)結(jié)構(gòu)更適合于鄰居粒子變化緩慢的應(yīng)用,如固體材料等的計(jì)算。LAMMPS便是采用neighbor list的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)原子,IMD也提供此類數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)選項(xiàng)。link cell是將計(jì)算區(qū)域劃分成若干cell,按cell來(lái)存儲(chǔ)粒子信息。計(jì)算時(shí),按照cutoff來(lái)確定每個(gè)cell的鄰居cell信息,按cell遍歷粒子進(jìn)行計(jì)算。這種方式計(jì)算效率低,每次迭代計(jì)算時(shí)都需遍歷本身以及周圍鄰近c(diǎn)ell,會(huì)多出非鄰居粒子的計(jì)算,計(jì)算量大。但是好處是存儲(chǔ)量較少,且易于做負(fù)載平衡。因此此類結(jié)構(gòu)更適于類似氣體、流體材料等鄰居粒子頻繁變化的計(jì)算。IMD、Ls1-MarDyn和CoMD都采用了link cell的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)粒子信息。
MD計(jì)算中對(duì)于粒子間作用力計(jì)算的關(guān)鍵在于勢(shì)函數(shù)的計(jì)算。對(duì)于EAM多體勢(shì)的計(jì)算,需要用到電子云密度,因此基本上都是采用的查表插值的方法來(lái)計(jì)算EAM勢(shì)。LAMMPS、IMD和CoMD都采用這種方式。Ls1-MarDyn只能計(jì)算對(duì)勢(shì)(LJ勢(shì)),采用參數(shù)化的方式計(jì)算勢(shì)。已經(jīng)有其他軟件,如ddcMD,嘗試過(guò)繞開(kāi)查表的方法使用參數(shù)化方式來(lái)計(jì)算EAM勢(shì),取得了不錯(cuò)的結(jié)果[5]。
隨著各種異構(gòu)計(jì)算系統(tǒng)的出現(xiàn),針對(duì)異構(gòu)計(jì)算設(shè)計(jì)優(yōu)化的軟件版本也日益增多。不論是成熟全面的LAMMPS、IMD,還是作為面向E級(jí)計(jì)算的ExMatEx項(xiàng)目中的基礎(chǔ)程序模塊的CoMD軟件,在異構(gòu)計(jì)算和節(jié)點(diǎn)內(nèi)優(yōu)化方面都做了些嘗試,在不同的計(jì)算機(jī)體系架構(gòu)(如AMD、NVDIA GPU、aka Xeon Phi等)上開(kāi)發(fā)了不同的程序版本(OpenACC、OpenCL、GPU、MIC等),并進(jìn)行了優(yōu)化。
Table 1 Summary of comparison for 4 kinds of softwares表1 4款軟件比較總結(jié)
3.2 MD計(jì)算模擬數(shù)值實(shí)驗(yàn)
本節(jié)將對(duì)以上4款MD軟件進(jìn)行算例測(cè)試。所有的測(cè)試算例都是在中科院超級(jí)計(jì)算中心的超級(jí)計(jì)算集群“元”上完成。其計(jì)算節(jié)點(diǎn)配置為2顆Intel E5-2680 V2(Ivy Bridge|10C|2.8 GHz)處理器,每個(gè)處理器上有10個(gè)CPU核,共64 GB DDR3 ECC 1 866 MHz內(nèi)存。采用的MPI版本為OPENMPI1.6.5。采用的編譯器為Intel composer_xe_2013_sp1.0.080。
本文設(shè)計(jì)了銅熔化的算例來(lái)測(cè)試各MD軟件性能,對(duì)銅原子系統(tǒng)在600 K的溫度下的分子動(dòng)力學(xué)過(guò)程進(jìn)行了計(jì)算模擬,cutoff為5埃,時(shí)間步為0.005 ps。對(duì)于LAMMPS、IMD和CoMD軟件,都選取了單核內(nèi)存占用量最大的原子規(guī)模進(jìn)行計(jì)算,也即LAMMPS為7.4×108原子,IMD為8.6×108原子,CoMD為3.4×108原子。由于Ls1-MarDyn軟件無(wú)法計(jì)算EAM勢(shì),采用的是其自帶的4萬(wàn)原子的LJ勢(shì)計(jì)算算例。
4款MD軟件的測(cè)試結(jié)果如表2所示。其中,參數(shù)原子更新頻率表征的是MD軟件計(jì)算效率的高低,由“每步計(jì)算時(shí)間×CPU核數(shù)/原子數(shù)”計(jì)算得到。從算例測(cè)試結(jié)果來(lái)看,計(jì)算效率最高的是LAMMPS,原子更新頻率達(dá)到了1.646 9。其次是IMD,原子更新頻率在7.7左右。CoMD軟件的計(jì)算效率,比LAMMPS低了一個(gè)數(shù)量級(jí),但也能有12左右。以上3款MD軟件的并行性能與可擴(kuò)展性都非常好。Ls1-Mar-Dyn軟件串行計(jì)算時(shí)原子更新頻率為66.965 8。雖然Ls1-MarDyn計(jì)算的是LJ勢(shì),但由于其原子密度大,link cell中鄰居多,遍歷開(kāi)銷大,導(dǎo)致其原子更新頻率差。
本文對(duì)4款MD軟件在計(jì)算時(shí)原子存儲(chǔ)所占空間也進(jìn)行了測(cè)試。對(duì)于LAMMPS、IMD和CoMD軟件的測(cè)試,選取的是使得程序在每CPU核上所能運(yùn)行的內(nèi)存達(dá)到最大時(shí)的原子規(guī)模的算例。而Ls1-MarDyn軟件測(cè)試的是其自帶的小規(guī)模算例,其測(cè)試結(jié)果不具比較意義。測(cè)試結(jié)果如表2所示。從測(cè)試結(jié)果來(lái)看,每原子所占空間最少的是IMD,LAMMPS次之,最多的是CoMD。分析3款軟件的原子存儲(chǔ)構(gòu)成,大致都包括原子變量存儲(chǔ)空間、通信buffer空間和neighbor list或link cell的存儲(chǔ)空間3類,其理論分析結(jié)果與測(cè)試結(jié)果基本一致。
從以上的測(cè)試結(jié)果來(lái)看,若根據(jù)現(xiàn)有有限的計(jì)算資源情況估計(jì),也即每個(gè)計(jì)算節(jié)點(diǎn)有20個(gè)CPU核,共64 GB內(nèi)存,每CPU核計(jì)算內(nèi)存不能超過(guò)2.5 GB,那么理論上對(duì)應(yīng)10萬(wàn)核時(shí)的原子計(jì)算規(guī)模,LAMMPS為6.6×1011,CoMD為3.4×1011,IMD為8.6×1011。Ls1-MarDyn軟件因?yàn)闆](méi)有測(cè)試其內(nèi)存使用的最大規(guī)模而無(wú)法準(zhǔn)確估計(jì),但從上面的分析來(lái)看,Ls1-MarDyn在10萬(wàn)核上計(jì)算的原子規(guī)模量級(jí)與前3款軟件差不多。
因此從存儲(chǔ)角度上來(lái)說(shuō),要在現(xiàn)有內(nèi)存條件計(jì)算節(jié)點(diǎn)上,實(shí)現(xiàn)10萬(wàn)核上核材料輻照缺陷演化的1012的原子規(guī)模的計(jì)算,還需對(duì)現(xiàn)有MD軟件進(jìn)行存儲(chǔ)優(yōu)化。下一步將考慮從核材料輻照缺陷演化模擬計(jì)算的特點(diǎn)出發(fā),針對(duì)該材料的特殊性設(shè)計(jì)更加節(jié)省存儲(chǔ)空間的數(shù)據(jù)結(jié)構(gòu)來(lái)減少分子動(dòng)力學(xué)計(jì)算中對(duì)于鄰居存儲(chǔ)的需要,從而達(dá)到擴(kuò)大可計(jì)算的原子模擬規(guī)模的目的。
Table 2 Results of software parallel performance and atomic storage test表2 軟件并行性能與原子存儲(chǔ)測(cè)試結(jié)果
本文對(duì)4款主流材料計(jì)算大規(guī)模分子動(dòng)力學(xué)開(kāi)源軟件LAMMPS、Ls1-MarDyn、IMD和CoMD進(jìn)行了詳細(xì)的介紹,從數(shù)據(jù)結(jié)構(gòu)、計(jì)算方法、并行分解方式、原子存儲(chǔ)等多個(gè)方面進(jìn)行橫向分析比較。在數(shù)據(jù)結(jié)構(gòu)方面,MD模擬中常見(jiàn)兩類數(shù)據(jù)結(jié)構(gòu)neighbor list和link cell,分別被LAMMPS和IMD、Ls1-MarDyn以及CoMD所采用。LAMMPS采用了易于查找鄰居粒子信息的neighbor list結(jié)構(gòu),在金屬材料銅熔化算例測(cè)試中獲得了最好的計(jì)算效率。采用link cell結(jié)構(gòu)的IMD、CoMD等軟件由于cell結(jié)構(gòu)特征增加了多余的計(jì)算量,計(jì)算效率稍遜于LAMMPS。但由于cell結(jié)構(gòu)節(jié)省了存儲(chǔ)量,也使得IMD軟件在同等內(nèi)存限制條件下能計(jì)算更大規(guī)模的分子動(dòng)力學(xué)模擬。算例測(cè)試展示了幾款軟件不俗的并行性能,想要得到更有區(qū)分度的測(cè)試結(jié)果,還需要更大規(guī)模(幾千甚至上萬(wàn)核)的算例實(shí)驗(yàn)。通過(guò)對(duì)各軟件內(nèi)存使用情況的測(cè)試和分析,在下一步的研究工作中,將針對(duì)材料輻照缺陷演化計(jì)算特點(diǎn),提出節(jié)省原子存儲(chǔ)量的新型數(shù)據(jù)結(jié)構(gòu),希望在10萬(wàn)CPU核上實(shí)現(xiàn)1012原子規(guī)模的分子動(dòng)力學(xué)模擬。
[1]Alder B J,Wainwright T E.Phase transition for a hard sphere system[J].The Journal of Chemical Physics,1957, 27(5):1208-1209.
[2]Alder B J,Wainwright T E.Studies in molecular dynamics I general method[J].The Journal of Chemical Physics,1959, 31(2):459-466.
[3]TOP500 supercomputer[EB/OL].[2015-11-12].http://www. top500.org/.
[4]Streitz F H,Glosli J N,Patel M V,et al.100+TFlop solidification simulations on BlueGene/L[C]//Proceedings of the 2005 ACM/IEEE Supercomputing Conference,Seattle, USA,Nov 12-18,2005.New York:ACM,2005.
[5]Glosli J N,Richards D F,Caspersen K J,et al.Extending stability beyond CPU millennium:a micron-scale atomistic simulation of Kelvin-Helmholtz instability[C]//Proceedings of the 2007 ACM/IEEE Conference on Supercomputing, Reno,USA,Nov 10-16,2007.New York:ACM,2007:1-11. [6]Spatio-temporal frontiers of atomistic simulations in the petaflop computational world[EB/OL].[2015-11-12].http://lanl. gov/orgs/adtsc/sc10/Heterogwebfiles/Germann.pdf.
[7]Germann T C,Kadau K,Swaninarayan S.369 Tflop/s molecular dynamics simulations on the petaflop hybrid supercompute“rRoadrunner”[J].Concurrency and Computation: Practice and Experience,2009,21(17):2143-2159.
[8]Stadle J,Mikulla R,Trebin H R.IMD:a software package for molecular dynamics studies on parallel computers[J]. International Journal of Modern Physics C,1997,8(5): 1131-1140.
[9]Roth J,G?hler F,Trebin H-R.A molecular dynamics run with 5 180 116 000 particles[J].International Journal of Modern Physics C,2000,11(2):317-322.
[10]IMD.The ITAP molecular dynamics program[EB/OL]. [2015-11-12].http://imd.itap.physik.uni-stuttgart.de/.
[11]Large systems 1:molecular dynamics[EB/OL].(2014-08-19) [2015-11-12].http://www.ls1-mardyn.de/.
[12]Eckhardt W,Heinecke A,Bader R,et al.591 TFLOPS multi-trillion particles simulation on superMUC[C]//LNCS 7905:Proceedings of the 28th International Supercomputing Conference,Leipzig,Germany,Jun 16-20,2013.Berlin,Heidelberg:Springer,2013:1-12.
[13]Eckhardt W,Heinecke A.An efficient vectorization of linkedcell particle simulations[C]//Proceedings of the 9th Conference on Computing Frontiers,Cagliari,Italy,May 15-17, 2012.New York:ACM,2012:241-244.
[14]“CoMD:classicalmolecular dynamics proxy application, version 1.1”[GB/OL].(2013-02)[2015-11-12].https://github. com/exmatex/CoMD.
[15]Mohd-Yusof J.CoDesign molecular dynamics(CoMD)proxy app deep dive[C]//Exascale Research Conference,Arlington, USA,Oct 1-3,2012.
NIE Ningming was born in 1983.She received the Ph.D.degree in computational mathematics from Academy of Mathematics and Systems Science,Chinese Academy of Sciences in 2010.Now she is an associate professor at Computer Network Information Center,Chinese Academy of Sciences.Her research interest is high performance computing.
聶寧明(1983—),女,湖南衡陽(yáng)人,2010年于中國(guó)科學(xué)院數(shù)學(xué)與系統(tǒng)科學(xué)研究院獲得博士學(xué)位,現(xiàn)為中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心副研究員,主要研究領(lǐng)域?yàn)楦咝阅苡?jì)算。
HU Changjun is a full professor and Ph.D.supervisor at School of Computer and Communication Engineering, University of Science and Technology Beijing,and the member of CCF.His research interest is high performance computing.
胡長(zhǎng)軍,男,北京科技大學(xué)計(jì)算機(jī)與通信工程學(xué)院教授、博士生導(dǎo)師,CCF會(huì)員,主要研究領(lǐng)域?yàn)楦咝阅苡?jì)算。
ZHANG Yunquan was born in 1973.He received the Ph.D.degree from Institute of Software,Chinese Academy of Sciences in 2000.Now he is a professor and Ph.D.supervisor at Institute of Computing Technology,Chinese Academy of Sciences,and the member of CCF.His research interests include heterogeneous computing,large scale parallel software optimization,parallel programming model and performance model,etc.
張?jiān)迫?973—),男,2000年于中國(guó)科學(xué)院軟件研究所獲得博士學(xué)位,現(xiàn)為中國(guó)科學(xué)院計(jì)算技術(shù)研究所研究員、博士生導(dǎo)師,CCF會(huì)員,主要研究領(lǐng)域?yàn)楫悩?gòu)計(jì)算,大規(guī)模并行軟件優(yōu)化,并行程序模型和性能模型等。
HE Xinfu was born in 1981.He is an associate professor at China Institute of Atomic Energy.His research interest is multiscale modeling of radiation damage in nuclear materials.
賀新福(1981—),男,中國(guó)原子能科學(xué)研究院副研究員,主要研究領(lǐng)域?yàn)楹瞬牧陷椪論p傷的多尺度建模。
ZHANG Boyao was born in 1987.He is an assistant engineer at Computer Network Information Center,Chinese Academy of Sciences.His research interest is parallel computing.
張博堯(1987—),男,中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心助理工程師,主要研究領(lǐng)域?yàn)椴⑿杏?jì)算。
LI Shigang is an assistant professor at Institute of Computing Technology,Chinese Academy of Sciences,and the member of CCF.His research interests include large-scale parallel computing based on MPI,heterogeneous computing and scalable deep learning algorithms on multi-/many-core clusters,etc.
李士剛,男,中國(guó)科學(xué)院計(jì)算技術(shù)研究所助理研究員,CCF會(huì)員,主要研究領(lǐng)域?yàn)榛贛PI的大規(guī)模并行計(jì)算,多核眾核集群上的異構(gòu)計(jì)算和可擴(kuò)展深度學(xué)習(xí)算法研究等。
Comparison of Large-Scale Molecular Dynamics Software for Materials Microstucture Evolution*
NIE Ningming1+,HU Changjun2,ZHANG Yunquan3,HE Xinfu4,ZHANG Boyao1,LI Shigang3
1.Computer Network Information Center,ChineseAcademy of Sciences,Beijing 100190,China
2.School of Computer and Communication Engineering,University of Science and Technology Beijing,Beijing 100083,China
3.Institute of Computing Technology,ChineseAcademy of Sciences,Beijing 100190,China
4.China Institute ofAtomic Energy,Beijing 102413,China
+Corresponding author:E-mail:nienm@sccas.cn
Molecular dynamics simulation is an important tool for studying materials microstructure evolution under radiation effects.This paper introduces four kinds of mainstream large-scale molecular dynamics open source software for materials computing,LAMMPS,Ls1-MarDyn,IMD and CoMD,and compares and analyzes data structures,computational methods,parallel decomposition methods and atomic storage,etc.By the design examples,this paper testscomputational efficiency,parallel performance and memory usage.A new idea of less memory-used data structure design for the single crystal is prepared for the simulation characteristics of metal materials evolution under irradiation defects.It provides the basis for subsequent research to realize large temporal and spatial scale molecular dynamics simulation.
molecular dynamics;data structure;material irradiation damage
10.3778/j.issn.1673-9418.1512050
A
:TP391
*The National Natural Science Foundation of China under Grant No.61303050(國(guó)家自然科學(xué)基金);the High Technology Research and Development Program of China under Grant No.2015AA01A303(國(guó)家高技術(shù)研究發(fā)展計(jì)劃(863計(jì)劃));the Program of Youth Innovation Promotion Association,Chinese Academy of Sciences under Grant No.2015375(中國(guó)科學(xué)院青年創(chuàng)新促進(jìn)會(huì)項(xiàng)目);the Informationization Project of ChineseAcademy of Sciences under Grant No.XXH2503-02(中國(guó)科學(xué)院信息化專項(xiàng)).
Received 2015-12,Accepted 2016-02.
CNKI網(wǎng)絡(luò)優(yōu)先出版:2016-02-03,http://www.cnki.net/kcms/detail/11.5602.TP.20160203.1126.008.html
NIE Ningming,HU Changjun,ZHANG Yuquan,et al.Comparison of large-scale molecular dynamics software for materials microstucture evolution.Journal of Frontiers of Computer Science and Technology,2017,11(3):355-364.