Skip to content

PROGRAMMING TOOLS AND ENVIRONMENTS | Contents | Next

A Bridge for Exchanging Data within and between Parallel Applications

PROJECT LEADER
Joel Saltz
, Johns Hopkins University and University of Maryland

PARTICIPANTS
Alan Sussman, Seungho Cho, John Davis, University of Maryland
Richard Frost
, SDSC

COLLABORATIONS
Programming Tools and Environments
Active Data Repository
KeLP
PFortran and PC Compilers
Metasystems
Globus
Earth Systems Science
Bay and Estuary Simulations
Quantitative Geography for Ground Truth

Human translators provide a vital service--translating information recorded in one language for people who only comprehend other languages. Programmers writing programs for parallel computers must often be translators, too. A programmer might use pre-packaged, efficient code libraries to perform parts of the computation. If a simulation uses more than one such library and those libraries exchange data, the programmer must translate one library's data into the other's format. This translation can require learning much more about the inner workings of the libraries. NPACI partners at the University of Maryland are developing an automatic translator to make it easier to write more complex simulations.

The Maryland translator is called Meta-Chaos, and it provides a bridge between code libraries and even between parallel applications. As part of the NPACI Programming Tools and Environments thrust area, the Meta-Chaos team has recently released a new version of Meta-Chaos with improved documentation and support for more libraries, including KeLP from UC San Diego (see the April–June 1998 ENVISION).

"For application developers, Meta-Chaos provides a relatively simple interface to the other libraries and languages," said Joel Saltz, Meta-Chaos project leader and leader of the Programming Tools and Environments thrust area. "For library developers, Meta-Chaos requires relatively minimal modifications to provide this bridge."

A TRANSLATOR BETWEEN LIBRARIES

A BRIDGE BETWEEN APPLICATIONS

LOOKING AHEAD


Figure 1. Meta-Chaos in a parallel application
Figure 1. Bridging Libraries
Meta-Chaos can be used to simplify data exchange between parallel libraries used in one application.
Figure 2. Meta-Chaos bridging two parallel applications
Figure 2. Bridging Applications
Meta-Chaos can also be used to compute and execute a data schedule to move data between two parallel applications.

A TRANSLATOR BETWEEN LIBRARIES

Within a single application, Meta-Chaos uses a data format translator to exchange data between two different libraries' data descriptors. In some sense, Meta-Chaos functions like a pipeline between the libraries' data structures. As an example, the Maryland researchers used Meta-Chaos to couple two libraries they had developed at Maryland--Chaos and Multiblock Parti. Chaos, from which Meta-Chaos is derived, supports computations on irregular grids, while Multiblock Parti is designed for regular grids.

To take advantage of Meta-Chaos support, each library needs a small set of inquiry functions that allow it to send data and receive data using Meta-Chaos. These functions are written by the library developers themselves (or by the Meta-Chaos team with guidance from the library developers), but these are the people most familiar with the internal workings of the libraries (Figure 1).

"Bookkeeping is really what Meta-Chaos is doing," said Alan Sussman, a research scientist on the Chaos project at Maryland. "But it's much better than the poor applications programmer having to do it." The application developer has a much simpler set of tasks. First, the data to be exchanged must be specified. A single Meta-Chaos call computes the schedule for exchanging the data, and finally, the program must execute a command for copying data from one library to the other.

An example within NPACI of how Meta-Chaos is making possible such communication is as part of the P-language compiler project, led by Ridgway Scott at the University of Chicago. In that project, Meta-Chaos is the framework for allowing a program written with the P-language extensions, which support parallel programming with explicit communication constructs, to use and exchange data with the KeLP library, which provides an implicit communication model for operating on multiple structured grids.

Top| Contents | Next

Figure 3. Oil spill in Galveston BayFigure 3. Oil Spill in Galveston Bay
Mary Wheeler's group at the University of Texas is using Maryland's Active Data Repository (ADR) to couple three simulations to model pollution transport in bays and estuaries. Meta-Chaos moves the shared data between the various parallel programs. The colors show concentration of oil, with red being highest and blue contours showing lower oil concentrations.

A BRIDGE BETWEEN APPLICATIONS

Another programming challenge is to link two separately developed parallel applications that need to share information. One way to handle this situation might be to use output from one application as input to the other, but it's not always feasible. The other traditional method would be to combine the applications into a single, monolithic program, which adds not only time and effort, but also complexity.

Meta-Chaos provides another solution. In this case, the developers must modify each application to make Meta-Chaos calls to send data to or receive data from the other application. The application developers need to declare what data structures to send and where. Meta-Chaos computes and executes a data schedule to move data between the applications (Figure 2).

"For these multi-applications, it's not possible to treat either application as a black box," Sussman said. "To get the interaction right, the applications need to know something about one another. For completely general application interaction, that requires metacomputing techniques."

In fact, Meta-Chaos is now using the services of Globus, one of the projects of NPACI's Metasystems thrust area, to start programs and manage the underlying interprocessor communication. Experiments conducted by the Maryland group show that Meta-Chaos does not create substantial performance costs. Meta-Chaos performance compares favorably with the performance of a monolithic application to carry out equivalent tasks. Factoring in the complexity of writing the new application makes Meta-Chaos even more attractive.

In an NPACI Earth Systems Science project, Mary Wheeler at the University of Texas is leading an effort to link two applications and better simulate the behavior of bays and estuaries. The first application, UTBEST, simulates water movement in coastal areas. The second, CE-QUAL-ICM2, computes the chemical transport and reactions of pollutants in the water. The data that must be shared between these two simulators is substantial, and Wheeler's group is using Maryland's Active Data Repository (ADR) to couple the simulations efficiently. The glue holding all the components together is Meta-Chaos, which moves the shared data between the various parallel programs (Figure 3).

Top| Contents | Next

LOOKING AHEAD

The original application that motivated the Maryland group to develop Meta-Chaos was Titan, an image processor that performs land-cover classification using satellite imagery stored in the ADR. Under NPACI, the Titan effort is being leveraged in collaboration with Joseph Já Já and John Townshend at Maryland. Já Já and Townshend are the principle investigators on the NASA-funded Global Land Cover Facility (GLCF), and the NPACI Quantitative Geography for Ground Truth project of the Earth Systems Science thrust area (see the July-September 1998 ENVISION).

"We used the interface being developed for GLCF with Meta-Chaos to visualize multi-layer information, which we presented as a demonstration at SC98," Já Já said. "Joel Saltz's group is also porting ADR to HPSS, which should make it possible for our KRONOS tool to use ADR for accessing and manipulating remotely sensed data. The ADR will make it easier to subset data and visualize multi-resolution data."

In general, any ADR application can take advantage of the services that Meta-Chaos offers. In addition to the ADR and Maryland's Chaos and Multiblock Parti libraries, more NPACI projects are slated to be extended for Meta-Chaos, including KeLP and the P-languages. When a new library is added, Meta-Chaos itself doesn't change, and neither do the previously added libraries.

In 1999, plans call for more NPACI projects to use Meta-Chaos, including an Earth Systems Science project for linking multi-scale, multi-resolution climate modeling simulations. Led by C. Roberto Mechoso at UCLA, this effort is joining atmospheric and oceanic global circulation models.

Also, NPACI is in the process of supporting Meta-Chaos on all platforms, an effort led by Richard Frost at SDSC. Presently, Meta-Chaos runs on any platform on which Globus runs, including the IBM SP and the UC Berkeley NOW cluster.

"We are encouraging library developers to provide the interface functions needed by Meta-Chaos," Sussman said. "We are also currently studying ways to incorporate Meta-Chaos's distributed data parallel objects into the CORBA object model, which would let data parallel programs interoperate with distributed object systems. Meta-Chaos provides the infrastructure to tie these disparate libraries and programming models together." --DH

Top| Contents | Next
Top| Contents | Next