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.
2004-04-24