Research‎ > ‎Research Blog‎ > ‎

Gaussian-based Volume and Surface Area algorithm for GPUs

posted Jan 8, 2017, 9:26 AM by Emilio Gallicchio   [ updated Feb 9, 2017, 9:59 AM ]

The model proposed by Grant & Pickup [J. Phys. Chem. 99, 3503-3510 (1995)] is a well-established method to estimate accurately volume and surface areas of molecules. The method is based on the inclusion-exclusion formula of statistical physics (also known as the Poincaré formula). It states that the volume of an object composed of multiple overlapping bodies is given by the sum of the volumes of the bodies, minus the sum of the overlap volumes between pairs of bodies, plus the sum of the overlap volumes between triplets of bodies, and so on:
Atomic volumes are represented by Gaussian densities and overlap volumes are computed using standard Gaussian overlap integrals. The model is fully analytic. For example, the solvent-accessible surface area of an atom is obtained as the derivative of the molecular volume with respect to the atomic radius of an atom.

The model leads to a tree-based algorithm in which overlap volumes are recursively evaluated. 
overlap tree
We have used this model extensively to implement the non-polar component and the self-adjusting pair-wise descreening method for the Generalized Born solvation electrostatic component of the of the AGBNP solvation model. Our CPU implementation is based on a dept-first traversal of the tree.

Lately we have been working on a GPU implementation of the Gaussian volumetric model. As one can imagine, tree-based recursive algorithms do not easily lend themselves to GPUs. However, we finally found an efficient solution based on a flat arrays representation of the tree and breadth-first traversal (see paper in JCC).
GPU tree traversal
The resulting GPU implementation is 50 to 100 times faster than our best CPU implementation. With the help with the development team at Stanford, the algorithm is now available as a plugin of the OpenMM molecular mechanics package.