![]() |
|
||||||
| Home
| Mission
|
about SciDAC
|
Contact Us |
||||||
Alumni ProjectCCA Infrastructure and Enabling Technology R. Armstrong (SNL, PI) SummaryThe Center for Component Technology for Terascale Simulation Software (CCTTSS) delivers component technology to terascale simulations. Component-based software is easier to use, compose, specialize, share, and evolve. To provide these benefits new infrastructure is needed; commercial component frameworks are not practical in this context. CCTTSS technology activities are vertically integrated to provide the vital infrastructure, spanning the range from conducting novel research to deploying production frameworks, components, tools. Frameworks CCA frameworks support the composition of components into terascale applications by implementing and enforcing the CCA-specified behavior designed to maximize interoperability. Frameworks manage components: their creation, connection, and cleanup. The CCA specification is amenable to multiple parallelism models, such as SPMD, distributed, and multithreaded, as well as arbitrary combinations thereof. The CCTTSS supports three production frameworks, each with its own specialties and research emphasis. Linkages among these frameworks provide a full complement of features for various application scenarios. Ccaffeine provides high-performance parallel components via a single-threaded environment using MPI for interprocess communication. XCAT emphasizes distributed computing, providing Grid and Web Services connectivity to CCA. SCIRun2 supports CCA with a mix of parallelism models and bridges capabilities to the original SCIRun data-flow model.
Research in this area is not limited to the three production frameworks. Decaf, Dune, DCA, and Uintah are all CCA research frameworks that quickly explore novel features and transfer technology back to production frameworks. MxN Parallel Data Redistribution Data layout is critical for high performance. Simulations, each with their own tailored parallel distribution of data, demand intricate data movement to retain their high-performance when combined with other simulations. We call this coupling problem in its most general form “MxN.” The CCA will make generalized parallel model coupling a reality. Coupling of parallel simulations is most commonly done ad hoc today. The ESMF (NASA) and MCT are coupling tools tailored specifically for climate modeling. CCA's MxN tools – building on PAWS, CUMULVS, SCIRun and MetaChaos (Maryland) – are implemented as CCA components. CCA componentization enabled generalizing the disparate communication models in these tools into a common interface that subsumes all the basic capabilities. To incorporate a variety of structured and unstructured mesh support, research continues in cooperation with the CCA Scientific Data working group and the TSTT Center1. In the distributed computing, assumptions implicit in coupling codes break down, such as component co-location. Understanding the impact of distributed frameworks has on MxN and CCA is subject of ongoing research. SCIRun2 and DCA in particular are exploring the issues and semantics behind parallel remote method invocation (PRMI). Language Interoperability CCA components are language neutral units of software (compiled or interpreted) that are loaded into a high-performance compiled environment at runtime. Whether a component is a piece of Fortran 90 engineering code, a C++ numeric library, or Python rendering module, no component ever knows (or cares) what languages it gets called from or is calling to. With this level of language interoperability, many details that preclude effective reuse evaporate. The CCA specification is written in SIDL (Scientific Interface Definition Language). The Babel language interoperability tool reads SIDL to encapsulate components written in C, C++, Fortran77/90/95 and Python. There are several research efforts related to lnaguage interoperability. Chasm is an automatic wrapping tool to connect Fortran90/95 and C++. It generates wrappings implicitly by scanning existing source code. Babel leverages Chasm's infrastructure for dealing with Fortran90 array descriptors – a pernicious barrier to language interoperability. Utah has a SIDL variant called PIDL (Parallel Interface Definition Language) that explores adding parallel directives to SIDL. Proteus and Babel are working together to add multi-protocol remote method invocation (RMI). Tying It All Together: Meta-Components Two promising trends are emerging from CCA frameworks and technologies. First, CCA framework implementations are bridging multiple component models, and external systems have started to implement CCA of their own accord (e.g. LegionCCA). Second, and more subtly, the frameworks themselves are becoming smaller – more componentized. Together, these give rise to the concept of component multi-models, or meta-component frameworks. Lighter, feature rich, and change oriented, these new frameworks exemplify why the future of terascale computing is with component software. For further information on this subject contact: 1 SciDAC Terascale Simulation Tools and Technology Center (TSTT), www.tstt-scidac.org
|
Home | ASCR | Contact Us | DOE disclaimer |
|
|