NWChem: scalable parallel computational chemistry



NWChem is a general-purpose computational chemistry code specifically designed to run on distributed memory parallel computers. The core functionality of the code focuses on molecular dynamics, Hartree–Fock theory, and density functional theory methods for both plane-wave basis sets as well as Gaussian basis sets, tensor contraction engine-based coupled cluster capabilities, and combined quantum mechanics/molecular mechanics descriptions. It was realized from the beginning that scalable implementations of these methods required a programming paradigm inherently different from what message-passing approaches could offer. In response, a global address space library, the Global Array toolkit, was developed. The programming model it offers is based on using predominantly one-sided communication. This model underpins most of the functionality in NWChem, and the power of it is exemplified by the fact that the code scales to tens of thousands of processors. In this paper, the core capabilities of NWChem are described as well as their implementation to achieve an efficient computational chemistry code with high parallel scalability. © 2011 John Wiley & Sons, Ltd. WIREs Comput Mol Sci 2011 1 888–894 DOI: 10.1002/wcms.62