DCSECOMP-PHApr 11, 2017

A Domain Specific Language for Performance Portable Molecular Dynamics Algorithms

arXiv:1704.03329v214 citations
AI Analysis

This work addresses the problem for scientists and developers in physics, chemistry, and biology who need to write performance-portable MD codes without deep hardware expertise, though it is incremental as it builds on existing abstraction approaches like PyOP2.

The authors tackled the challenge of adapting molecular dynamics (MD) simulation codes to diverse hardware by developing a domain-specific language (DSL) and Python code generation system, which demonstrated efficient performance and scalability compared to state-of-the-art packages on various architectures, including GPUs and distributed memory systems.

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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes