Massively parallel chemical potential calculation on graphics processing units
One- and two-stage free energy methods are common approaches for calculating the chemical potential from a molecular dynamics or Monte Carlo molecular simulation trajectory. Although these methods require significant amounts of CPU time spent on post-simulation analysis, this analysis step is well-suited for parallel execution. In this work, we implement this analysis step on graphics processing units (GPUs), an architecture that is optimized for massively parallel computation. A key issue in porting these free energy methods to GPUs is the trade-off between software efficiency and sampling efficiency. In particular, fixed performance costs in the software favor a higher number of insertion moves per configuration. However, higher numbers of moves lead to lower sampling efficiency. We explore this issue in detail, and find that for a dense, strongly interacting system of small molecules like liquid water, the optimal number of insertions per configuration can be as high as 105 10 5 for a two-stage approach like Bennetts method. We also find that our GPU implementation accelerates chemical potential calculations by as much as 60-fold when compared to an efficient, widely available CPU code running on a single CPU core.
graphics processing units free energy monte carlo methods phase equilibria