A Domain Specific Language for Performance Portable Molecular Dynamics Algorithms
University of Bath, Bath BA2 7AY, Bath, United Kingdom
arXiv:1704.03329 [cs.DC], (11 Apr 2017)
@article{saunders2017domain,
title={A Domain Specific Language for Performance Portable Molecular Dynamics Algorithms},
author={Saunders, William R. and Grant, James and Muller, Eike H.},
year={2017},
month={apr},
archivePrefix={"arXiv"},
primaryClass={cs.DC}
}
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.
April 15, 2017 by hgpu
Your response
You must be logged in to post a comment.