PARA'04 State-of-the-Art
in Scientific Computing
June 20-23, 2004 (Home page)

Updated: 24 April 2004

Scientific Component Development

Boyana Norris
Argonne National Laboratory
USA
email: norris@mcs.anl.gov

Abstract:

Component-based software engineering (CBSE) practices are well-established in the business computing community (CORBA, COM, EJB). Relatively recently, the emergence of a component specification targeted at high-performance computing has led to initial experimentation with CBSE in scientific software. The Common Component Architecture Forum has produced a basic component architecture description that is semantically equivalent to other component models, while taking a minimalist approach in both programming requirements and performance impact. In addition to the usual benefits of a component system for managing software complexity, the CCA approach offers some new challenges and opportunities. As more functionally-equivalent component implementations become available, the task of selecting components and assembling them into an application with good overall performance becomes a complex process. Furthermore, as computational requirements change during the application's execution, the initial selection of components may no longer be suitable. Some of the considerations that influence the choice of implementation are particular to parallel codes, for example, the scalability of a given algorithm. Others deal with the robustness of the solution method, or its convergence speed (if known) for a certain class of problems. Extending early efforts that focus on specific issues in application assembly and adaptivity, we present a view of the scientific component development process that builds on the basic infrastructure of the CCA specification to provide methodology and tools for designing and implementing high-performance component software from an architectural perspective, including mechanisms for specifying quality of service requirements and provisions.

Home page


2004-04-24