Anansi: Progress Towards Developing a Highly Extensible High Performance Computing Molecular Dynamics Code Based on Generic Design Patterns
ORAL
Abstract
Many High Performance Computing (HPC) molecular dynamics (MD) codes (e.g. LAMMPS, NAMD, GROMACS, etc. ) have origins that are well before the extant programming languages and current Graphics Processing Unit (GPU) architectures. Furthermore, programming languages and computer architectures have substantially changed since these origins and will unabatedly continue to change. Unfortunately, these factors contribute to extreme difficulties in extending HPC MD codes to novel algorithms and computer architectures. The goal of Anansi is to develop a highly extendable MD code that can rapidly adapt to novel algorithms and evolving computer architectures. In this ongoing work, we present Anansi’s software design which makes extensive use of generic software design patterns. Specifically, we present a generic command pattern for limiting function side effects, and the use of the type erasure idiom for replacing traditional inheritance hierarchies. A secondary goal of this work is to serve as a best practice guide for motivating others in designing molecular simulation codes.
* This research used resources of the Oak Ridge Leadership Computing Facility, which is a DOE Office of Science User Facility supported under Contract DE-AC05-00OR22725.
–
Publication: Anansi: Progress Towards Developing a Highly Extensible High Performance Computing Molecular Dynamics Code Based on Generic Design Patterns (To be published when a fully functional Anansi version is completed)
Presenters
-
Arnold N Tharrington
Oak Ridge National Laboratory
Authors
-
Arnold N Tharrington
Oak Ridge National Laboratory