Computational Chemistry Using Graphics Processing Units

Lead investigators

Alán Aspuru-Guzik (Harvard Department of Chemistry and Chemical Biology)

Description

The elementary steps in all chemical reactions are essentially quantum mechanical. Their study requires the use of heavy computational resources that usually consume a significant fraction of the computer time at national supercomputer centers. Quantum chemistry calculations can help in many areas of science, ranging from the understanding of complex enzyme mechanisms in biology to the design of new materials and the prediction of molecules in space. Computational quantum chemistry aims to develop and apply methodologies for computing the properties of molecules in an accurate, efficient and scalable manner. The Aspuru-Guzik group is exploring the use of commodity video cards (made up of graphics processing units, or GPUs) for substantially accelerating these calculations.

The recent release of graphics card manufacturer NVIDIA’s compute unified device architecture (CUDA) development toolkit for high-end graphics cards allows developers to code algorithms in a C-like language. CUDA greatly eases the transition to general-purpose GPU (GPGPU) computing, as evidenced by the application of CUDA-implemented algorithms. Along with CUDA, NVIDIA has also released compute unified basic linear algebra subprograms (CUBLAS) as a library for cards that support CUDA.

We explore using GPGPU computing for electronic-structure applications, taking advantage of the relative ease of use that linear algebra subprograms offer in particular and, more generally, the stability of CUDA. As a first project, we undertook the task of accelerating the resolution-of-the-identity second-order Moeller-Plesset (RI-MP2) calculations as implemented in Q-Chem 3.1 by executing matrix-matrix multiplication operations using CUBLAS. We exploited the fact that large matrices can be multiplied about thirteen times faster on the GPU than on the host CPU. With this moderate programming effort, our code had a 4.3x speedup, considering the limited memory space the graphics cards include.

The challenges in electronic structure acceleration using GPGPU lie in modifying electronic-structure algorithms to take advantage of this specialized hardware in a way that minimizes changes to the code and allows for co-evolution with the hardware. We are exploring the interplay between the different layers of parallelism, namely multi-core processors, interconnects and GPUs. Currently, our group is accelerating Hartree-Fock calculations, which are essential and complementary to the actual RI-MP2 method of obtaining molecular properties.