CBSE provides a mechanism for managing software complexity and enabling hundreds of scientists to participate in the development of large-scale simulation software, something currently lacking in scientific computing. The CCA model of component-based development offers a standard approach to component and application construction that is specific to parallel scientific computing but also generally applicable to many domains within computational science. The CCA has already been proven successful in several scientific domains, including climate modeling , combustion , and computational chemistry .
The emergence of these component-based scientific codes has motivated the development of an abstract infrastructure for describing computational quality-of-service (CQoS) requirements and capabilities. CQoS requires an environment that contains services for monitoring and managing performance data, analyzing static and dynamic performance information, optimizing application assembly, and adaptively substituting components. A CQoS environment should be developed in a manner consistent with a CBSE methodology to maintain coherence with the engineering of scientific component applications. The work described here demonstrates the utility of such an environment and lays the groundwork for it. As parallel computing hardware becomes more mainstream, our hope is to see a corresponding increase in commodity simulation components that can be easily used to build parallel scientific applications.
Acknowledgments. This work has been supported in part by the U.S. Department of Energy's Scientific Discovery through Advanced Computing initiative, through the Center for Component Technology for Terascale Simulation Software. We thank Nick Trebon (University of Oregon) for his help in implementing the performance measurement infrastructure as well as the call graph pruning algorithms. We also thank Sanjukta Bhowmick (Penn State University) for her work in implementing the adaptive polyalgorithmic solvers and Gail Pieper (ANL) for copyediting a draft of this paper.