Organization: University of Maryland
Co-principal investigators at UMD :
Joel Saltz (saltz@cs.umd.edu),
Alan Sussman (als@cs.umd.edu)
A. V. Williams
Building, Computer Science Department, University of Maryland, College
Park, MD 20742,
Title of effort: Common Runtime Support for High Performance Parallel Languages
Recent accomplishments:
Maryland has implemented a version of the PCRC Distributed Data Descriptors (DDD) interface for its CHAOS and Multiblock Parti libraries. The interface to the libraries is specified via a C header file, and contains all the functions required to produce local and global data descriptors (as described in the PCRC DDD specification), and perform collective communication using the data descriptors. The required functions have been implemented using the existing functionality of the CHAOS and Multiblock PARTI library, and example programs have been created and run using the DDD interface. For the CHAOS library, the example program is a kernel from an unstructured grid Euler solver, and performs a sweep over the edges of the unstructured mesh. The Multiblock Parti example is a kernel from the block structured CFD code TLNS3D. Both examples use the DDD functions to perform the required interprocessor communication, including filling ghost cells and copying grid sections across the processors.
The other major part of the Maryland effort has focused on developing techniques for transferring data between distributed data structures owned by different runtime libraries. These techniques have been implemented in the Maryland Meta-Chaos library, which currently is capable of transferring data between (distributed) arrays that have been created using HPF or the Maryland CHAOS and Multiblock PARTI libraries. For example, the library allows an irregularly distributed array created via the CHAOS library to be copied into a High Performance Fortran (HPF) distributed array (with an arbitrary HPF distribution) that has been created using the HPF compiler and runtime library. The only requirement on the libraries, so that Meta-Chaos can access their data, is that each library provide the functions specified in the DDD specification. Recently, the Indiana pC++ runtime library, Tulip, has also incorporated a Meta-Chaos interface, so that data can also be transferred from and to pC++ programs.
The Meta-Chaos library was demonstrated in the Center for Research on Parallel Computation (CRPC) booth at Supercomputing'95, showing data being transferred between programs parallelized using the various libraries and languages. Two distinct scenarios were shown. The first transferred data between two separate parallel programs, one written in HPF and the other written using Tulip. The second consisted of a single parallel program, transferring data between a regularly distributed array specified and managed by the Multiblock Parti library and an irregularly distributed array specified and managed by the CHAOS library. A paper on the library is in preparation.
The current implementation of Meta-Chaos uses the EXTRINSIC function facilities of HPF to acquire information about distributed array descriptors in HPF programs. We will be working on extending the Syracuse HPF runtime library to provide the functions required by the library, so that the software does not have to use the vendor-supplied (and somewhat unreliable) extrinsic function interface.
Date prepared: 1/31/96