A component approach to collaborative scientific software development: Tools and techniques utilized by the Quantum Chemistry Science Application Partnership

Cutting-edge scientific computing software is complex, increasingly involving the coupling of multiple packages to combine advanced algorithms or simulations at multiple physical scales. Component-based software engineering (CBSE) has been advanced as a technique for managing this complexity, and complex component applications have been created in the quantum chemistry domain, as well as several other simulation areas, using the component model advocated by the Common Component Architecture (CCA) Forum. While programming models do indeed enable sound software engineering practices, the selection of programming model is just one building block in a comprehensive approach to large-scale collaborative development which must also address interface and data standardization, and language and package interoperability. We provide an overview of the development approach utilized within the Quantum Chemistry Science Application Partnership, identifying design challenges, describing the techniques which we have adopted to address these challenges and highlighting the advantages which the CCA approach offers for collaborative development.

[1]  Theresa L. Windus,et al.  Components for integral evaluation in quantum chemistry , 2008, J. Comput. Chem..

[2]  Lori A. Freitag,et al.  Creating Interoperable Meshing and Discretization Software: The Terascale Simulation Tools and Technology Center , 2002 .

[3]  Curtis L. Janssen,et al.  Parallel Processing for Ab Initio Quantum Mechanical Methods , 2002 .

[4]  James Arthur Kohl,et al.  A Component Architecture for High-Performance Scientific Computing , 2006, Int. J. High Perform. Comput. Appl..

[5]  Timothy J. Tautges,et al.  Interoperable mesh and geometry tools for advanced petascale simulations , 2007 .

[6]  Mark S. Shephard Interoperable Technologies for Advanced Petascale Simulations (ITAPS) , 2010 .

[7]  Allen D. Malony,et al.  Computational Quality of Service for Scientific CCA Applications: Composition, Substitution, and Reconfiguration , 2006 .

[8]  David E. Bernholdt,et al.  Component framework for coupled integrated fusion plasma simulation , 2007, CompFrame '07.

[9]  Jarek Nieplocha,et al.  Multilevel Parallelism in Computational Chemistry using Common Component Architecture and Global Arrays , 2005, ACM/IEEE SC 2005 Conference (SC'05).

[10]  Theresa L. Windus,et al.  Enabling new capabilities and insights from quantum chemistry by using component architectures , 2006 .

[11]  Masha Sosonkina,et al.  A component approach to collaborative scientific software development: Tools and techniques utilized by the Quantum Chemistry Science Application Partnership , 2008 .

[12]  Christian Janssen,et al.  Object-Oriented Implementation of Parallel Ab Initio Programs , 1995 .

[13]  Jarek Nieplocha,et al.  Component‐based integration of chemistry and optimization software , 2004, Journal of computational chemistry.

[14]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[15]  David E. Bernholdt,et al.  High performance computational chemistry: An overview of NWChem a distributed parallel application , 2000 .

[16]  Masha Sosonkina,et al.  Tackling component interoperability in quantum chemistry software , 2007, CompFrame '07.

[17]  James Arthur Kohl,et al.  Parallel PDE-Based Simulations Using the Common Component Architecture , 2006 .

[18]  Lois C. McInnes,et al.  A case study in the performance and scalability of optimization algorithms , 2001, TOMS.