Components for Integral Evaluation in Quantum Chemistry
This article is from Journal of Computational Chemistry 29 (2008): 562, doi:10.1002/jcc.20815.
Sharing low-level functionality between software packages enables more rapid development of new capabilities and reduces the duplication of work among development groups. Using the component approach advocated by the Common Component Architecture Forum, we have designed a flexible interface for sharing integrals between quantum chemistry codes. Implementation of these interfaces has been undertaken within the Massively Parallel Quantum Chemistry package, exposing both the IntV3 and Cints/Libint integrals packages to component applications. Benchmark timings for Hartree-Fock calculations demonstrate that the overhead due to the added interface code varies significantly, from less than 1% for small molecules with large basis sets to nearly 10% for larger molecules with smaller basis sets. Correlated calculations and density functional approaches encounter less severe performance overheads of less than 5%. While these overheads are acceptable, additional performance losses occur when arbitrary implementation details, such as integral ordering within buffers, must be handled. Integral reordering is observed to add an additional overhead as large as 12%; hence, a common standard for such implementation details is desired for optimal performance.