A Domain Specific Language for Performance Portable Molecular Dynamics Algorithms

Research output: Contribution to journalArticle

  • 1 Citations

Abstract

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.
LanguageEnglish
Pages119–135
Number of pages17
JournalComputer Physics Communications
Volume224
Early online date22 Nov 2017
DOIs
StatusPublished - 1 Mar 2018

Fingerprint

Molecular dynamics
molecular dynamics
Hardware
Computer systems
Parallel architectures
hardware
Partial differential equations
Scalability
Physics
Crystalline materials
simulation
Data storage equipment
Atoms
programmers
distributed memory
Computer simulation
photographic developers
biology
partial differential equations
grids

Keywords

  • cs.DC
  • cs.SE
  • physics.comp-ph
  • D.1.3; D.2.11; J.2; G.4

Cite this

A Domain Specific Language for Performance Portable Molecular Dynamics Algorithms. / Saunders, William R.; Grant, James; Müller, Eike.

In: Computer Physics Communications, Vol. 224, 01.03.2018, p. 119–135.

Research output: Contribution to journalArticle

@article{dca7bb68113e4d88a802fcc5e1d60998,
title = "A Domain Specific Language for Performance Portable Molecular Dynamics Algorithms",
abstract = "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.",
keywords = "cs.DC, cs.SE, physics.comp-ph, D.1.3; D.2.11; J.2; G.4",
author = "Saunders, {William R.} and James Grant and Eike M{\"u}ller",
year = "2018",
month = "3",
day = "1",
doi = "10.1016/j.cpc.2017.11.006",
language = "English",
volume = "224",
pages = "119–135",
journal = "Computer Physics Communications",
issn = "0010-4655",
publisher = "Elsevier",

}

TY - JOUR

T1 - A Domain Specific Language for Performance Portable Molecular Dynamics Algorithms

AU - Saunders,William R.

AU - Grant,James

AU - Müller,Eike

PY - 2018/3/1

Y1 - 2018/3/1

N2 - 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.

AB - 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.

KW - cs.DC

KW - cs.SE

KW - physics.comp-ph

KW - D.1.3; D.2.11; J.2; G.4

U2 - 10.1016/j.cpc.2017.11.006

DO - 10.1016/j.cpc.2017.11.006

M3 - Article

VL - 224

SP - 119

EP - 135

JO - Computer Physics Communications

T2 - Computer Physics Communications

JF - Computer Physics Communications

SN - 0010-4655

ER -