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

  • Authors:
  • Joseph P. Kenny;Curtis L. Janssen;Mark S. Gordon;Masha Sosonkina;Theresa L. Windus

  • Affiliations:
  • (Correspd. E-mail: jpkenny@sandia.gov) Scalable Computing Research and Design, Sandia National Laboratories, Livermore, CA, USA;Scalable Computing Research and Design, Sandia National Laboratories, Livermore, CA, USA;Department of Chemistry, Iowa State University, Ames, IA, USA and Scalable Computing Laboratory, Ames Laboratory/DOE, Iowa State University, Ames, IA, USA;Scalable Computing Laboratory, Ames Laboratory/DOE, Iowa State University, Ames, IA, USA;Department of Chemistry, Iowa State University, Ames, IA, USA

  • Venue:
  • Scientific Programming - Complexity in Scalable Computing
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.