Center for Component Technology for Terascale Simulation Software (CCTTSS)

http://www.cca-forum.org/ccttss

PI: Rob Armstrong (rob@ca.sandia.gov)

Vision:

While the complexity of scientific simulations increasingly necessitates the combined use of software developed by different groups, this has been difficult for many of DOE's sophisticated packages due to differences in implementation languages, programming styles, and calling interfaces. Initial software interoperability work includes direct interfacing between tools with complementary functionalities (for example, between a library that provides finite element discretizations of PDEs and another library that provides linear solvers). However, because one-to-one interfacing requires writing new translations of interfaces and data for each tool that provides a particular functionality, this approach is excessively labor intensive and does not facilitate the incorporation of new tools. Thus, the CCTTSS advocates using a dynamic component-based approach, which clearly separates (1) community-defined domain-specific interfaces and (2) underlying implementations that may be developed by different groups.

Component technology represents an important new tool for software development. Unfortunately, commodity component models that are widely used in industry¾ such as CORBA, DCOM, and Enterprise JavaBeans¾ do not address parallelism and other needs of high-performance scientific software. The Common Component Architecture (CCA) component approach specifically targets the needs of large-scale, complex, high-performance, scientific simulations. We have demonstrated the basic principles of such a system. The CCTTSS focuses on taking the CCA from a conceptual prototype to a full-fledged, high-performance scientific component architecture. The technology developed within the Center will provide the following benefits:

Major Goals and Technical Challenges:

The goal of the CCTTSS is to develop component technology for high-performance parallel scientific computing that enables the interoperability and re-use of DOE simulation software. Components allow software developers to describe the calling interfaces of libraries and applications in a manner that hides low-level details, such as implementation language, compiler, parallelism, or location on a network. Developers therefore do not need to be concerned with questions such as "Can my Fortran program call this C++ solver library that was parallelized with MPI?" Components encapsulate the knowledge, experience, and work of other scientists, and they provide building blocks that speed application development.

Our work targets research, development, and deployment activities in four areas:

New capabilities that may be of particular interest to applications scientists include:

Major Milestones and Activities:

Current Connections with Other SciDAC Projects:

CCTTSS collaborations with other SciDAC projects include the following: