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 participated in the development of the PCRC Distributed Data Descriptors (DDD) Specification, which provides a set of abstract data structures and function interfaces for describing distributed data structures. The DDD is intended to provide a standard API for compiler generated calls to runtime libraries that operate on distributed data structures and conform to the standard. By providing a common interface standard, the PCRC effort will allow a compiler for a distributed memory parallel machine to utilize the capabilities of multiple runtime libraries optimized for differing data distributions and data access patterns.
Maryland has implemented a version of the 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. For example, these techniques allow 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 current implementation of these techniques can transfer data between (distributed) arrays that have been created using HPF or the Maryland CHAOS and Multiblock PARTI libraries. The only requirement on the libraries, so that the library coupling software can access their data, is that each library provide the functions specified in the DDD specification. Our experience in developing the library coupling software has led us to identify several shortcomings in the DDD specification, and will help in the redesign necessary to make the specification widely applicable. The next step in the development of the library coupling software will involve incorporating the Indiana pC++ runtime library, so that data can also be transferred from and to pC++ programs. The current implementation of the library coupling software 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: 10/6/95