ProtoMol, an object-oriented framework for prototyping novel algorithms for molecular dynamics
Article
Matthey, T, Cickovski, T, Hampton, S et al. (2004). ProtoMol, an object-oriented framework for prototyping novel algorithms for molecular dynamics
. 30(3), 237-265. 10.1145/1024074.1024075
Matthey, T, Cickovski, T, Hampton, S et al. (2004). ProtoMol, an object-oriented framework for prototyping novel algorithms for molecular dynamics
. 30(3), 237-265. 10.1145/1024074.1024075
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.