NASA
High Performance Computing
and Communications Program
Computational AeroSciences Project
The Cooperative Data Sharing (CDS) System
Objective: The objective of the Cooperative Data Sharing (CDS) System project is to provide a single, simple, and efficient user interface (API) for parallel computing that allows the user to specify the semantics required of each communication so that it can execute with near-optimal performance on any target architecture -- shared-memory, message-passing, or cluster.
Approach: The CDS API consists of two layers -- A kernel level (CDS1), with objectives of minimality, orthogonality, portability, efficiency, and utility; and a user level (CDS2) built upon CDS1, with the sole objective of providing a useful user interface without interfering with the desirable characteristics of CDS1. The CDS1 library supports most basic parallel processing functions -- i.e. the initiation (and creation) of processes, the sharing of data among these processes, and the initiation of routines based upon the presence or absence of data. Communication is optimized by requiring minimal (or no) superfluous internal copying of data by allowing the user direct access to the memory used by the communication subsystem and by utilizing copy-on-write semantics. Performance on message-passing architectures is optimized by internally and invisibly overlapping communication with computation whenever possible. The CDS2 library adds collective and global operations, MPI-style communicators, and support for heterogeneous computing.
Accomplishments: Optimization, maintainance, and further refinement of the prototype has been performed, and presentations and papers describing its benefits and problems have been produced. This work has also provided a basis for evaluations of proposals being made for special forms of communication in the development of the MPI-2 standard.
Significance: CDS1 provides a stable, flexible, and simple programming platform for parallel CFD applications in the context of rapid changes and evolution in parallel architectures. The efficiency benefits can be realized on virtually all current hardware. This work can extend beyond support of CFD applications to serve as a resource in the development of standards for parallel processing support.
Status/Plans: The prototype implementation of CDS1 on the SGI Challenge Array (Cluster) and Sun Solaris systems is essentially complete. Testing will continue as further debugging and performance tuning is performed. Future work includes final design and implementation of CDS2, and porting CDS1 to other architectures.
Point(s) of Contact:
David C. DiNucci
NASA Ames Research Center
rhood@nas.nasa.gov
(415)604-4430