From the stone age to the lego block age of computing
In this scientific simulation using high-performance software components at last November's Supercomputing 2001 conference in Denver, Colorado, independently developed software modules work together in this "Common Component Architecture" demonstration of an unconstrained minimization problem (minimal surface area given boundary constraints) that combines Argonne National Laboratory’s TAO solver component with ORNL’s CUMULVS visualization and "MxN" components.
The Center for Component Technology for Terascale Simulation Software (CCTTSS), another of ORNL's projects to receive funding from DOE's Scientific Discovery through Advanced Computing (SciDAC) Program, may well revolutionize the way terascale software simulations are developed. Traditionally, large software codes have been chiseled from a single, monolithic "rock." The CCTTSS staff strive to pull scientific software development out of the "stone age" and build high-performance simulations, using flexible and powerful "component" building blocks that can be assembled in myriad ways—like Lego blocks—while maintaining high levels of performance.
As an offshoot of the ongoing Common Component Architecture (CCA) Forum effort, the CCTTSS [a $16-million joint project including Sandia, Argonne, Lawrence Livermore, Los Alamos (LANL), and Pacific Northwest national laboratories, as well as Indiana Univers-ity and the University of Utah] is creating high-performance, component-based software specifications and frameworks for use in next-generation scientific simulations. "While there is a variety of component systems available in industry, from Corba to DCOM to JavaBeans, they just aren't built for speed to suit the needs of scientific computing," says James Kohl, a co-principal investigator (Co-PI) and ORNL leader for the center.
Components encapsulate the functionality of one or more traditional software "objects" to make it easier to plug in components as large software systems are assembled. The use of components allows each code module in a complex software simu-lation to be "swapped out," even at run time, to change the capabilities or behavior of the simulation. For example, a particular linear solver component might be replaced with another one having the same functional interface but with an algorithm better suited to the given matrix properties.
CCTTSS and CCA staff members are developing tools that support the high-performance component interactions required for many new terascale scientific simulation projects for DOE's Office of Science. Special components and services are being constructed to assist in the description and manipulation of parallel datasets (where individual data elements are decomposed and distributed across a number of parallel processors).
Because many CCA-compliant components are themselves parallel entities, advanced technology is required to share and exchange their data in parallel. ORNL leads the CCTTSS effort in this so-called "MxN" (pronounced "M by N") parallel data redistribution technology, which allows one parallel model running on "M" processors to transfer data to another parallel model on "N" processors. ORNL is working closely with researchers at LANL to generalize existing technology for this parallel model coupling; two initial MxN component implementations are based on the CUMULVS system (ORNL) and the PAWS system (LANL).
The key to success is getting real scientific applications to exploit the advantages of a high-performance component environment. "The CCTTSS is reaching out to scientists and teaching them how to use this new CCA technology, and we're also actively supporting the integration of CCA into their simulation codes," says David Bernholdt, ORNL Co-PI and CCTTSS applications liaison.
The CCTTSS has already formed a number of collaborations, with national efforts in key application domains, including global climate modeling, computational chemistry, astrophysics, and fusion. Many other SciDAC centers are also working closely with the CCTTSS to incorporate component technology into the development of their simulation code and to use CCA-compliant components to deploy their tools and systems.
The CCTTSS had its first big public showing at the Supercomputing 2001 conference in November 2001 in Denver, Colorado. ORNL's booth hosted the main multi-lab CCA/CCTTSS presentation, which demonstrated three different scientific applications built from a variety of high-performance components. Several prototype components developed by ORNL, including "MxN," "Distributed Data Descriptor,"and "Visualization Proxy," were used in each of three simulations, illustrating the potential "re-use" and interoperability of DOE technology via CCA components. A public release of this initial software will be available as a tutorial in early 2002. (See the www.cca-forum.org web site for more details.)