ABSTRACT

Over the past decade, graphics processing units (GPUs) have become fully programmable parallel computing devices capable of accelerating a wide variety of data-parallel algorithms used in computational science and engineering. The tremendous computational capabilities of GPUs can be employed to accelerate molecular modeling applications, enabling molecular dynamics simulations and their analyses to be run much faster than before and allowing the use of scientific techniques that are impractical on conventional hardware platforms. In this chapter, we describe the key attributes of GPU hardware architecture and the algorithm design techniques required to successfully exploit the computational capabilities of GPUs for scientific applications. We illustrate these techniques for molecular modeling applications, describing the process involved in adapting or redesigning existing algorithms for high performance on GPUs. Many of these techniques can be applied beyond the molecular modeling field and should be of interest to anyone contemplating adaptation of existing algorithms to GPUs.