CCA Common Component Architecture Insights from Quantum Chemistry Joseph P. Kenny Scalable Computing Research and Design Sandia National Laboratories Livermore, California Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000.
CCA Common Component Architecture Low-level Integration Integrating quantum chemistry (solve time independent S.E.) – GAMESS, Ames – MPQC, Sandia – NWChem, PNNL Early work interchanged chemistry packages, leveraged solver and linear algebra components (TAO, PETSc, GA) Now moving to deeper integration within chemistry packages – Integral evaluation first step in typical methods – Packages support different advanced integral types (relativistic, etc)
CCA Common Component Architecture Integral Evaluator Architecture MPQC Integral Evaluator Factory GAMESS Model Factory MPQC Model Factory Model Integral Evaluator Shell ID Buffer Completed Chemistry Components Babel Classes Integral Super Factory Supported Evaluator Types Evaluator Request NWChem Model Factory Chemistry Components in Progress
CCA Common Component Architecture Interface Performance (Babel/C++) Reference implementation in MPQC <10% overhead is probably acceptable to most users
CCA Common Component Architecture Implementation Details Sharing low-level functionality while maintaining high performance is likely to expose implicit dependencies Arbitrary order of Cartesian angular functions and buffer layout – Reorder costs may be substantial for non-standard codes (x y z) (x y z) = xx xy xz yx yy yz zx zy zz (y z x) (y z x) = yy yz yx zy zz zx xy xz xx
CCA Common Component Architecture Total Overhead Component/Babel overhead + reorder overhead <10% overhead is probably acceptable to most users
CCA Common Component Architecture Insights Millions of calls through Babel can be OK – Novice user could incur large overhead – Batching will reduce integral overhead, requires effort Long-term: standards agreement and adoption within domains is critical for high-performance and low-level integration to succeed – Just blessing an interface doesn't cut it
CCA Common Component Architecture CPU Architectures... So, those numbers where on Core 2 Duo (woodcrest) How do Pentium 4 / Netburst CPU's compare? L2 (instruction?) cache apparently gets hammered on Netburst