The Common Component Architecture Forum
cca logo     The Common Component Architecture Forum
 
 
Quick Links
Main
  Components
  Contacts
  Docs
  Glossary
  Groups
  Help
  Meetings
  Members
  News
  Overview
  Scidac
  Software
  Mailing Lists
  Toolkit
  Tutorials
 
Search
 
About
The CCA Forum is a group committed to defining a standard component architecture for high performance computing. Please email the webmaster for suggestions about this site.
 
   

Requirements of Component Architectures for High-Performance Computing

Although minimal, the set of standard features defined for a CCA has to be large enough to ensure that it satisfies the union of objectives required by a set of different frameworks. Otherwise, component interoperability will be meaningless. Those features are:

  • Component characteristics. The CCA will be used primarily for high-performance components of both coarse and fine grain, implemented according to different paradigms such as SPMD-style as well as shared memory multi-threaded models. Examples of issues that need to be solved in order to build interactions of such components include the necessity to interact with multiple processes to deliver requests, the presence of sophisticated run-time systems, message passing libraries and threads, and efficient transfer of large data sets.
  • Heterogeneity. Whenever technically possible, the CCA should be able to combine within one multi-component application components executing on multiple architectures, implemented in different languages, and using different run-time systems. Furthermore, design priorities should be geared towards addressing software needs most common in HPC environment; for example interoperability with languages popular in scientific programming such as Fortran, C and C++ should be given priority.
  • Local and remote components. We define components to be local if they live in a single application address space and remote otherwise. Interaction between local components should cost no more than a function call; interaction of remote components should be able to take advantage of 0-copy protocols and exploit other advantages offered by state of the art networking. Whenever possible we would like to stage interoperability of both local and remote components and be able to seamlessly change interactions from local to remote. We will address the needs both of remote components running over a local area network and wide area network; component applications running over the HPC grid should be able to satisfy real-time constraints and interact with diverse supercomputing schedulers.
  • Integration. We will try to make the integration of components as smooth as possible. In general it should not be necessary to develop a component specially to integrate with the framework, or to rewrite an existing component substantially.
  • High-Performance. It is essential that the set of standard features agreed on contain mechanisms for supporting high-performance interactions; whenever possible we should be able to avoid extra copies, extra communication or synchronization and encourage efficient implementation such as parallel data transfers.
  • Openness. The CCA specification should be open, and used with open software. In HPC this flexibility is needed to keep pace with the ever-changing demands of the scientific programming world.


 
© Copyright 2002-2004