材料微观结构演化大规模分子动力学软件比较
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
材料微观结构演化大规模分子动力学软件比较
聂宁明1胡长军 2 张云泉3贺新福4张博尧1李士刚3
1中国科学院计算机网络信息中心,北京100190
2北京科技大学计算机与通信工程学院,北京100083
3中国科学院计算技术研究所,北京100190
4中国原子能科学院研究院,北京102413
(nienm@)
Comparison of Large-scale Molecular Dynamics Software for Materials Computing
Ningming Nie1 Changjun Hu2 Yuquan Zhang3 Xinfu He4 Boyao Zhang1 Shigang Li3
1(Computer Network Information Center, Chinese Academy of Science, Beijing 100190)
2 (School of Computer &Communication Engineering, University of Science &Technology Beijing, Beijing, 100083)
3(Institute of Computing Technology, Chinese Academy of Science, Beijing 100190)
4(China Institute of Atomic Energy, Beijing 102413)
Abstract Molecular dynamics simulation is an important tool for studying materials microstructure evolution under radiation effects. Four kinds of mainstream large-scale molecular dynamics open source software for materials computing, LAMMPS, Ls1-MarDyn, IMD and CoMD, are introduced in detail in this paper, with data structures, computational methods, parallel decomposition methods and atomic storage, etc. are compared and analyzed. By the design examples, computational efficiency, parallel performance and memory usage have been tested. It provides the basis for subsequent research to realize large temporal and spatial scale molecular dynamics simulation.
Key words Molecular Dynamics; Large-scale; Data Structure, Material Irradiation Damage
摘要分子动力学模拟是研究材料辐照效应下微观结构演化的重要工具。本文对四款主流材料计算大规模分子动力学开源软件LAMMPS,Ls1-MarDyn,IMD和CoMD进行了详细的介绍,从数据结构、计算方法、并行分解方式、原子存储等多个方面进行横向分析比较。通过设计算例测试了各软件的计算效率,并行性能和内存使用情况。为后续实现大时空尺度分子动力学模拟研究提供了研究基础。
关键词分子动力学模拟;大规模;数据结构;材料辐照损伤
中图法分类号TP391
材料辐照损伤研究涉及从原子尺度到宏观尺度的9个数量级的跨越,以及皮秒量级原子键断裂过程到几十年工程结构失效和破坏的跨时间尺度的非线性过程。这一演化和发展过程在实验很难观测和发现。因此,目前为止,材料工作者对材料辐照损伤过程中内部微观过程和演化机理尚缺乏深入的了解。高性能计算机技术的发展使人们从微观层次深入理解材料成为可能,成为当今国际材料界的重要研究领域。分子动力学模拟作为原子尺度模拟的经典计算方法,在材料微观结构演化规律研究中处于重要地位。
分子动力学模拟(moleculardynamics simulation , MD)是通过利用计算机求解体系内所有粒子的运动方程来模拟粒子的运动轨迹,从而获得系统的温度、体积、压力、应力等宏观量和微观过程量。从上世纪五十年代发展以来[1,2],已经在包括物理,计算化学,计算生物,材料科学,药物设计等多个领域有了十分丰富的应用。分子动力学模拟作为一种非常有效的材料计算技术,已成为与实验同等重要的科学研究的方法。
由于计算能力的限制,目前分子动力学通常模拟的是几万到几千万个原子条件下材料的内部演化过程,而通常材料的微观结构及缺陷尺寸远远大于现有计算能力所实现的计算规模,计算模拟结果与实际材料的微观演化过程及宏观性能等还有很大的差异。因此分子动力学模拟的发展的关键在于空间规模的扩大和时间尺度的延长。只有在原子个数无限多,计算的时间足够长时,才能真实地反映材料性质的宏观行为。
近些年,随着高性能计算机技术的飞速发展,分子动力学计算技术被注入了新的活力。2015年7月,
我国研制的“天河二号”超级计算机再度荣登全球超级计算机500强排行榜榜首,连续五次称冠世界[3]。高性能计算机的发展为大规模分子动力学模拟提供了发展的肥沃土壤。制约实际应用的瓶颈在于大规模分子动力学软件的研发。开展大规模分子动力学模拟软件的研究成为国际上的研究热点。科学家们基于混合架构高性能计算机开发了新的分子动力学程序,例如LLNL与IBM的团队开发了面向高性能计算机的经典分子动力学代码--ddcMD代码。2005年,他们首次从原子层次原子尺度研究了金属钽和铀在超高温高压下的凝固过程,在IBM BlueGene/L的131072个CPU上,达到101.7万亿次/秒的持续计算性能,获得了Gordon Bell奖,该研究对评估核武器储备的可靠性具有重要意义[4]。2007年,他们又实现了第一个基于分子动力学的微米尺度原子级K-H不稳定性数值模拟,在IBM BlueGene/L 全系统212,992个CPU 上,获得了54.3万亿次/秒的持续计算性能,再次获得了Gordon Bell奖[5]。近年来美国启动了名为“Spatio-Temporal Frontiers of Atomistic Simulations in the Petaflop Computational World”[6]的科研项目,旨在基于高性能计算机开发可扩展的分子动力学程序,研究晶界与位错的相互作用以及材料中空洞的形核与长大过程,在此基础上采用可扩展并行短程MD 程序SPaSM在Roadrunner上对106-1012原子进行了大规模的仿真模拟,达到了369 万亿次/秒持续计算性能[7]。除此之外,针对不同领域应用的通用分子动力学软件也有许多,如LAMMPS[8],NAMD[9],GROMACS[10]等等。它们各有各的特点,在不同领域获得了广泛的应用。本文关注的是在材料计算领域广泛使用,可进行大规模并行计算的开源分子动力学软件。我们选取了LAMMPS,Ls1-MarDyn,IMD和CoMD四款开源分子动力学软件进行详细的比较说明,为我们的后续研发工作提供研究基础与支持。
本文的安排如下:首先是分子动力学软件的介绍,将对选取的LAMMPS,Ls1-MarDyn,IMD和CoMD四款大规模并行计算的分子动力学软件进行详细介绍。接下来,对这四款软件在并行性能,数据结构,原子结构存储等几个方面进行横向比较,并通过数值算例进行验证和分析说明。最后是全文总结,通过总结前文对四款MD软件在大规模并行计算上特点的分析,提出针对辐照效应下金属材料计算特点的数据结构设计思想,为下一步研究工作指出方向。
1. 大规模材料计算分子动力学软件介绍
1.1LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)软件
LAMMPS软件[8]是由美国Sandia国家实验室开发的一款通用的大规模分子动力学并行计算软件,是世界上使用者最广泛的几款分子动力学软件之一。从2004年到2011年之间,就达到了8万9千多次的下载量。
LAMMPS主要用于分子动力学相关的一些计算和模拟工作,可在包括气态,液态或者固态相形态、各种系综下,采用不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗粒化体系。可实现从几个粒子到上亿粒子体系的分子动力学计算。LAMMPS可提供并支持多种势函数计算,包括对势,如Lennard-Jones(L-J)势(多用于气体,液体分子间作用力计算)、Morse势等,多体势,如Embedded Atom Model(EAM)势(多用于单一金属或合金体系计算)、modified EAM (MEAM)势等,应用十分广泛。
LAMMPS软件为开源软件,以C++编写,支持用户的自行修改和扩展。LAMMPS支持串行与并行计算。并行LAMMPS采用MPI并行,针对并行计算特点设计数据结构与并行策略,具有良好的并行扩展性。其软件结构可由如图1所示的类结构关系图来展示。
在计算粒子间相互作用时,LAMMPS通过cutoff 来设定每个粒子需计算的相互作用粒子范围大小,采用neighbor list,也即近邻列表的数据结构来记录每个粒子的邻居粒子信息,如图2所示。粒子信息存储在数组中,每个粒子的邻近表数组中存储粒子的邻居粒子索引。在计算时,通过neighbor list来追踪所有与该粒子有相互作用的粒子间作用力等信息。
LAMMPS采用空间分解方法来并行分配模拟区域。将整个模拟区域分解成若干子区域分配到各个处理器上。在每个处理器的计算子区域上设置ghost区域来存储子区域边界原子信息,以便并行计算时各个处理器间的相互通信与计算。LAMMPS
提供了两种
图1 LAMMPS软件结构示意图[8]
Fig. 1 Software Structure Chart of LAMMPS[8]