Automatic code generation for many-body electronic structure methods: the tensor contraction engine - Auer, Alexander A.; Baumgartner, Gerald; Bernholdt, David E.; Bibireata, Alina; Choppella, Venkatesh; Cociorva, Daniel; Gao, Xiaoyang; Harrison, Robert; Krishnamoorthy, Sriram; Krishnan, Sandhya; Lam, Chi-Chung; Lu, Qingda; et al. (Molecular physics, 2006)
As both electronic structure methods and the computers on which they are run become increasingly complex, the task of producing robust, reliable, high-performance implementations of methods at a rapid pace becomes increasingly daunting. In this paper we present an overview of the Tensor Contraction Engine (TCE), a unique effort to address issues of both productivity and performance through automatic code generation. The TCE is designed to take equations for many-body methods in a convenient high-level form and acts like an optimizing compiler, producing an implementation tuned to the target computer system and even to the specific chemical problem of interest. We provide examples to illustrate the TCE approach, including the ability to target different parallel programming models, and the effects of particular optimizations.