arXivDaily arXiv每日学术速递 周一至周五更新
北美退伍军人节(Veterans Day),12 日无更新
arXiv 1704.03329cs.DCcs.SEphysics.comp-ph
收藏

可移植分子动力学算法的领域专用语言

A Domain Specific Language for Performance Portable Molecular Dynamics Algorithms

William R. Saunders, James Grant, Eike H. Müller

摘要:

分子动力学(MD)代码的开发人员面临着重大挑战时,适应现有的模拟软件包,以新的硬件。在不断多样化的硬件环境中,科学家越来越难以成为自己领域(物理/化学/生物学)的专家和低级别并行化和优化代码的专家。为了解决这一挑战,我们描述了一个“分离的关注”的方法,用于开发并行和优化的MD代码:科学专家写代码在一个高抽象级别的域特定语言(DSL),然后翻译成有效的计算机代码的科学程序员。在一个相关的上下文中,一个抽象的偏微分方程的解决方案与网格为基础的方法,最近已实施的(Py)OP 2库。受这种方法的启发,我们开发了一个Python代码生成系统,用于在不同的并行架构上进行分子动力学模拟,包括大规模并行分布式内存系统和GPU。我们通过研究其在不同硬件上的性能和可扩展性来展示自动生成代码的效率,并将其与其他最先进的仿真软件包进行比较。随着数据量的增长,从模拟中提取有物理意义的信息变得越来越具有挑战性,并且需要同样有效的实现。我们的方法的一个特别的优点是这种分析算法的容易表达。我们考虑两种流行的方法推导出的晶体结构的材料从本地环境中的每个原子,显示它们如何可以表示在我们的抽象和实现它们的代码生成框架。

英文摘要:

Developers of Molecular Dynamics (MD) codes face significant challenges when adapting existing simulation packages to new hardware. In a continuously diversifying hardware landscape it becomes increasingly difficult for scientists to be experts both in their own domain (physics/chemistry/biology) and specialists in the low level parallelisation and optimisation of their codes. To address this challenge, we describe a "Separation of Concerns" approach for the development of parallel and optimised MD codes: the science specialist writes code at a high abstraction level in a domain specific language (DSL), which is then translated into efficient computer code by a scientific programmer. In a related context, an abstraction for the solution of partial differential equations with grid based methods has recently been implemented in the (Py)OP2 library. Inspired by this approach, we develop a Python code generation system for molecular dynamics simulations on different parallel architectures, including massively parallel distributed memory systems and GPUs. We demonstrate the efficiency of the auto-generated code by studying its performance and scalability on different hardware and compare it to other state-of-the-art simulation packages. With growing data volumes the extraction of physically meaningful information from the simulation becomes increasingly challenging and requires equally efficient implementations. A particular advantage of our approach is the easy expression of such analysis algorithms. We consider two popular methods for deducing the crystalline structure of a material from the local environment of each atom, show how they can be expressed in our abstraction and implement them in the code generation framework.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑