title: Performance optimization of tensor contraction expressions for many-body methods in quantum chemistry.
abstract: Complex tensor contraction expressions arise in accurate electronic structure models in quantum chemistry, such as the coupled cluster method. This paper addresses two complementary aspects of performance optimization of such tensor contraction expressions. Transformations using algebraic properties of commutativity and associativity can be used to significantly decrease the number of arithmetic operations required for evaluation of these expressions. The identification of common subexpressions among a set of tensor contraction expressions can result in a reduction of the total number of operations required to evaluate the tensor contractions. The first part of the paper describes an effective algorithm for operation minimization with common subexpression identification and demonstrates its effectiveness on tensor contraction expressions for coupled cluster equations. The second part of the paper highlights the importance of data layout transformation in the optimization of tensor contraction computations on modern processors. A number of considerations, such as minimization of cache misses and utilization of multimedia vector instructions, are discussed. A library for efficient index permutation of multidimensional tensors is described, and experimental performance data is provided that demonstrates its effectiveness.
authors.affiliation: The Ohio State University, Columbus, Ohio, USA.
authors.forename: Albert
authors.initials: A
authors.lastname: Hartono
authors.forename: Qingda
authors.initials: Q
authors.lastname: Lu
authors.forename: Thomas
authors.initials: T
authors.lastname: Henretty
authors.forename: Sriram
authors.initials: S
authors.lastname: Krishnamoorthy
authors.forename: Huaijian
authors.initials: H
authors.lastname: Zhang
authors.forename: Gerald
authors.initials: G
authors.lastname: Baumgartner
authors.forename: David E
authors.initials: DE
authors.lastname: Bernholdt
authors.forename: Marcel
authors.initials: M
authors.lastname: Nooijen
authors.forename: Russell
authors.initials: R
authors.lastname: Pitzer
authors.forename: J
authors.initials: J
authors.lastname: Ramanujam
authors.forename: P
authors.initials: P
authors.lastname: Sadayappan