![]() |
|
||||||
| Home
| Mission
|
about SciDAC
|
Contact Us |
||||||
Alumni ProjectThe Technology and Infrastructure That Enable the CCASummaryThe Center for Component Technology for Terascale Simulation Software (CCTTSS) faces unique technical challenges in bringing the benefits of component technology – well established in commercial computing – to the scientific computing community. Component technology broadens the scope of software’s use, thereby reducing the need for tedious software customization or rewrites and increasing computational scientists’ productivity.The very nature of terascale computing is beyond the scope of commercial component systems. CCTTSS must address multiple architectures and operating systems (unlike Microsoft COM), multiple languages (unlike Java Beans), high performance in process interconnects (unlike CORBA), and support for massive parallelism, Fortran77/90/95, and Grid connectivity (unlike all the above). The CCTTSS is simultaneously conducting novel research and producing practical end-user tools in the areas of language interoperability, parallel data redistribution, and frameworks. Language Interoperability Chasm is an automatic wrapping tool to connect Fortran90/95 and C++. It generates wrappings implicitly by scanning existing source code. Chasm also has advanced capabilities in dealing with Fortran90 array descriptors – a particularly pernicious barrier to language interoperability. Babel is an IDL based tool that currently connects C, C++, Fortran77/90/95, Python, and Java. Babel’s approach is more scalable in the number of languages that it can support, but requires an explicit listing of what to wrap expressed in SIDL (Scientific Interface Definition Language). The CCA specification itself is written exclusively in SIDL. These two tools with their differing approaches complement each other effectively. Chasm is applying its Fortran90 and C++ automation techniques to produce SIDL. Babel is adopting Chasm’s Fortran90 array infrastructure to augment its own Fortran90 bindings.
MxN Parallel Data Redistribution MxN tools are currently implemented as components, built upon existing tools for interacting with parallel simulations. The CUMULVS system for interactive visualization, computational steering, and application fault-tolerance, has been wrapped as one component. The PAWS model coupling system has been wrapped as another. SciDAC funding of the CCTTSS has motivated – and CCA components have enabled – these two disparate communication models from CUMULVS and PAWS to be generalized into a common interface specification that subsumes the capabilities of both systems. To incorporate a variety of structured and unstructured mesh support, this research has progressed in cooperation with the CCA scientific data working group. Extensions are planned for particle data, adaptive meshes, and sparse arrays. Frameworks The CCTTSS supports three frameworks, each with its own specialties and purpose. Linkages between these frameworks provide a full complement of features to work with numerous application scenarios. Ccaffeine is the production CCTTSS framework best positioned for most terascale simulations. SCIRun and XCAT are research vehicles that are being used to prototype new ideas and push the CCA architecture in new directions. The Ccaffeine framework focuses on high-performance parallel components and provides a simple, single-threaded environment that uses MPI or PVM for interprocess communication. The XCAT framework is both CCA and Grid compliant, emphasizing distributed components on the Grid. These two frameworks function in a complementary fashion, such that Ccaffeine can be used to compose and run a parallel high-performance application, and XCAT can provide the connectivity from CCA to the rest of the planet to allow execution as a Grid resource. A combustion application demonstrated at SC02 exploited precisely this capability. SCIRun is a third framework that combines aspects of the other two and is evolving to provide connections to other component-based systems. It supports parallel components like Ccaffeine but regards them as a single distributed component, and it also supports distributed components similar to XCAT. Tying It All Together: An Example Contact Information:
|
Home | ASCR | Contact Us | DOE disclaimer |
|
|