Improving numerical reproducibility and stability in large-scale numerical simulations on GPUS
Saponaro Jr, Philip
University of Delaware
The advent of general purpose graphics processing units (GPGPU’s) brings about a whole new platform for running numerically intensive applications at high speeds. Their multi-core architectures enable large degrees of parallelism via a massively multi-threaded environment. Molecular dynamics (MD) simulations are particularly well-suited for GPU’s because their computations are easily parallelizable. Significant performance improvements are observed when single precision floating point arithmetic is used. However, this performance comes at the cost of accuracy: it is widely acknowledged that constant-energy (NVE) MD simulations accumulate errors as the simulation proceeds due to the inherent errors associated with integrators used for propagating the coordinates. A consequence of this numerical integration is the drift of potential energy as the simulation proceeds. Double precision arithmetic partially corrects this drifting but is significantly slower than single precision and is comparable to CPU performance. To address this problem, we present development of a library of mathematical functions that use fast and efficient algorithms to improve numerical reproducibility and stability of large-scale simulations. We test the library in terms of its performance and accuracy with a synthetic code that emulates the behavior of MD codes on GPU, and then we present results of a first integration of our library in a MD code. These first results show correction of the drifting with a performance much better than double precision.