ProtoMol, an object-oriented framework for prototyping novel algorithms for molecular dynamics

ProtoMol is a high-performance framework in C++ for rapid prototyping of novel algorithms for molecular dynamics and related applications. Its flexibility is achieved primarily through the use of inheritance and design patterns (object-oriented programming). Performance is obtained by using templates that enable generation of efficient code for sections critical to performance (generic programming). The framework encapsulates important optimizations that can be used by developers, such as parallelism in the force computation. Its design is based on domain analysis of numerical integrators for molecular dynamics (MD) and of fast solvers for the force computation, particularly due to electrostatic interactions. Several new and efficient algorithms are implemented in ProtoMol. Finally, it is shown that ProtoMol's sequential performance is excellent when compared to a leading MD program, and that it scales well for moderate number of processors. Binaries and source codes for Windows, Linux, Solaris, IRIX, HP-UX, and AIX platforms are available under open source license at http://protomol.sourceforge.net.

[1]  Ed Anderson,et al.  LAPACK Users' Guide , 1995 .

[2]  Jesús A. Izaguirre,et al.  An impulse integrator for Langevin dynamics , 2002 .

[3]  Andrei Alexandrescu,et al.  Modern C++ design: generic programming and design patterns applied , 2001 .

[4]  Steven J. Plimpton,et al.  A new parallel method for molecular dynamics simulation of macromolecular systems , 1994, J. Comput. Chem..

[5]  A. Ko,et al.  MDSimAid : AN AUTOMATIC RECOMMENDER FOR OPTIMIZATION OF FAST ELECTROSTATIC ALGORITHMS FOR MOLECULAR SIMULATIONS , 2002 .

[6]  Jesús A. Izaguirre,et al.  Targeted Mollified Impulse: A Multiscale Stochastic Integrator for Long Molecular Dynamics Simulations , 2003, Multiscale Model. Simul..

[7]  Scott S. Hampton,et al.  Shadow hybrid Monte Carlo: an efficient propagator in phase space of macromolecules , 2004 .

[8]  Bilha Sandak,et al.  Multiscale fast summation of long‐range charge and dipolar interactions , 2001, J. Comput. Chem..

[9]  L. Verlet Computer "Experiments" on Classical Fluids. I. Thermodynamical Properties of Lennard-Jones Molecules , 1967 .

[10]  David Fincham,et al.  Optimisation of the Ewald Sum for Large Systems , 1994 .

[11]  Jesús A. Izaguirre,et al.  Long time step molecular dynamics using targeted Langevin stabilization , 2003, SAC '03.

[12]  Thierry Matthey,et al.  Framework Design, Parallelization and Force Computation in Molecular Dynamics , 2002 .

[13]  M. Karplus,et al.  Stochastic boundary conditions for molecular dynamics simulations of ST2 water , 1984 .

[14]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[15]  Robert D. Skeel,et al.  Integration Schemes for Molecular Dynamics and Related Applications , 1999 .

[16]  A. Brandt,et al.  Multilevel matrix multiplication and fast solution of integral equations , 1990 .

[17]  T. Darden,et al.  A smooth particle mesh Ewald method , 1995 .

[18]  Thierry Matthey,et al.  PROTOMOL: A Molecular Dynamics Research Framework for Algorithmic Development , 2003, International Conference on Computational Science.

[19]  C Haythornwaite,et al.  Gamma, E., Helm, R., Johnson, R. & Vlissides, J. Design Patterns: Elements of Reusable Object Oriented Software. New York: Addison-Wesley, 1995. , 2002 .

[20]  Jack Dongarra,et al.  LAPACK Users' guide (third ed.) , 1999 .

[21]  M Drewsen,et al.  Coulomb bicrystals of species with identical charge-to-mass ratios. , 2003, Physical review letters.

[22]  Hans-Peter Lenhof,et al.  BALL: Biochemical Algorithms Library , 1999, Algorithm Engineering.

[23]  Loup Verlet COMPUTER 'EXPERIMENTS' ON LENNARD-JONES MOLECULES. I. THERMODYNAMICAL PROPERTIES. , 1966 .

[24]  G. Ciccotti,et al.  Numerical Integration of the Cartesian Equations of Motion of a System with Constraints: Molecular Dynamics of n-Alkanes , 1977 .

[25]  Robert D. Skeel,et al.  Multiple grid methods for classical molecular dynamics , 2002, J. Comput. Chem..

[26]  P. P. Ewald Die Berechnung optischer und elektrostatischer Gitterpotentiale , 1921 .

[27]  Axel T. Brunger,et al.  X-PLOR Version 3.1: A System for X-ray Crystallography and NMR , 1992 .

[28]  Berend Smit,et al.  Chapter 3 – Monte Carlo Simulations , 2002 .

[29]  Kenji Tsuruta,et al.  Competition between two forms of ordering in finite Coulomb clusters. , 2002, Physical review letters.

[30]  Todd L. Veldhuizen Blitz++: The Library that Thinks it is a Compiler , 2000 .

[31]  T. Darden,et al.  Particle mesh Ewald: An N⋅log(N) method for Ewald sums in large systems , 1993 .

[32]  Laxmikant V. Kale,et al.  NAMD2: Greater Scalability for Parallel Molecular Dynamics , 1999 .

[33]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[34]  J. Andrew McCammon,et al.  OOMPAA-Object-Oriented Model for Probing Assemblages of Atoms , 1999 .

[35]  David S. Johnson,et al.  A theoretician's guide to the experimental analysis of algorithms , 1999, Data Structures, Near Neighbor Searches, and Methodology.

[36]  C. Brooks Computer simulation of liquids , 1989 .

[37]  Mark E. Tuckerman,et al.  Exploiting multiple levels of parallelism in Molecular Dynamics based calculations via modern techniques and software paradigms on distributed memory computers , 2000 .

[38]  Hasse,et al.  Structure and Madelung energy of spherical Coulomb crystals. , 1991, Physical review. A, Atomic, molecular, and optical physics.

[39]  Mark E. Tuckerman,et al.  Reversible multiple time scale molecular dynamics , 1992 .

[40]  M. Klein,et al.  Nosé-Hoover chains : the canonical ensemble via continuous dynamics , 1992 .

[41]  Robert D. Skeel,et al.  Dangers of multiple time step methods , 1993 .

[42]  H. C. Andersen Rattle: A “velocity” version of the shake algorithm for molecular dynamics calculations , 1983 .

[43]  Jesús A. Izaguirre,et al.  Improved Sampling for Biological Molecules Using Shadow Hybrid Monte Carlo , 2004, International Conference on Computational Science.

[44]  Bruce Hendrickson,et al.  A new parallel method for molecular dynamics simulation of macromolecular systems , 1996 .

[45]  Berend Smit,et al.  Understanding Molecular Simulation , 2001 .

[46]  Thierry Matthey,et al.  ProtoMol: A Molecular Dynamics Framework with Incremental Parallelization , 2001, PPSC.

[47]  Jack Dongarra,et al.  ScaLAPACK Users' Guide , 1987 .

[48]  J. Perram,et al.  Simulation of electrostatic systems in periodic boundary conditions. I. Lattice sums and dielectric constants , 1980, Proceedings of the Royal Society of London. A. Mathematical and Physical Sciences.

[49]  J. Banavar,et al.  Computer Simulation of Liquids , 1988 .

[50]  K. Schulten,et al.  Steered molecular dynamics and mechanical functions of proteins. , 2001, Current opinion in structural biology.

[51]  David M. Beazley,et al.  Lightweight Computational Steering of Very Large Scale Molecular Dynamics Simulations , 1996, Proceedings of the 1996 ACM/IEEE Conference on Supercomputing.

[52]  Openmp: a Proposed Industry Standard Api for Shared Memory Programming , 2022 .

[53]  Ignacio Pagonabarraga,et al.  Self-consistent dissipative particle dynamics algorithm , 1998 .

[54]  Kenneth M. Merz,et al.  A highly portable parallel implementation of AMBER4 using the message passing interface standard , 1995, J. Comput. Chem..

[55]  S. Nosé A unified formulation of the constant temperature molecular dynamics methods , 1984 .

[56]  Maulik A. Dave Review of "Data Structures, Near Neighbor Searches, and Methodology: Fifth and Sixth DIMACS Implementation Challenge by Michael H. Goldwasser, David S. Johnson, Catherine C. McGeoch", American Mathematical Society 2002 , 2005, SIGA.

[57]  J. W. Perram,et al.  Simulation of electrostatic systems in periodic boundary conditions. III. Further theory and applications , 1983, Proceedings of the Royal Society of London. A. Mathematical and Physical Sciences.