Brief Description
CDS1 is a portable parallel communication library based on virtually-shared
dynamic memory regions. (No special MMU support is required.) Communication is
performed by passing virtualized pointers to these regions among processes
through queue-like constructs called communication cells. As a result, both
shared-memory and message-passing communication, as well as Linda-like
production-consumption paradigms, are possible using a small set of simple
primitives while still offering the user control over the placement and
movement of data. The entire library of 26 functions also supports
- multicast,
- dynamic non-blocking process creation,
- demand-driven communication (i.e. "get"),
- asynchronous prefetch and data forwarding,
- communication-driven execution (i.e. handlers), and
- support for data translation for heterogeneous environments.
In spite of its simplicity, programs
(using any or all of the primitives) are efficient in shared-memory,
message-passing, and cluster environments, because:
As in shared memory models
- Copying is not necessary for communication
- Reading processes may share access to data (with copy-on-write to
prevent race conditions)
- Consuming processes can retrieve data from producing processes
As in message-passing models
- Producing processes can forward data to consuming processes to compensate
for latency in high-latency environments
- Handlers can be installed to be invoked on the presence or absence of
communicated data
- Communicated data can be queued while awaiting processing
A prototype of the CDS1 interface has been
implemented on SGI and Solaris clusters.
CDS1 is the lowest level of a larger system, called
The Cooperative Data Sharing System (CDS). CDS is a means of programming parallel
computers by describing how the data should be shared among the processors,
rather than explicitly describing how the data should be communicated among
the processors. This can yield more portable and correct programs, since
the mechanics of communication can be handled automatically and can be
performed using the most efficient mechanisms available for a particular
architecture.
CDS2 is a higher-level subroutine layer, built upon CDS1, to provide a more
complete interface for applications programmers at the cost of some
additional overhead. CDS1 and CDS2 can be used together within the same user
program. CDS2 is not yet complete.
More Information
Please Note: The papers listed are covered by the respective
publisher's copyright. Although they can be viewed from this page for individual use,
the rights of the publisher must be observed.
- "A Simple and Efficient Process and Communication Abstraction for Network
Operating Systems" ,
David C. DiNucci, Proceedings of the Workshop on Communication and Architectural
Support for Network-Based Parallel Computing (CANPC) '97,
San Antonio, Feb 1-2, 1997, published as LNCS volume 1199, pp. 31-45, D. Panda
and C. Stunkel Eds.
- Slides (Postscript)
Brief description of entire CDS1 package
- "The Cooperative Data Sharing System, Level 1 (CDS1): A Reference
Manual and User's Guide" , Working copy, unpublished, last
updated 3/19/97.
- "Cooperative Data Sharing: A Layered Approach to an Architecture-Independent Message-Passing Interface",
David C. DiNucci, Proceedings of the Second MPI Developer's Conference,
Notre Dame, July 1996, IEEE, pp. 58-65.
- Paper (Postscript)
CDS1 description slightly outdated, but includes brief description of CDS2.
- Slides (Postscript)
- "Cooperative Data Sharing: An Architecture-Independent Interface for Implementing Parallel CFD
Applications" ,
David C. DiNucci, HPCC Computational Aerosciences Workshop, August 1996,
NASA Ames Research Center
- Brief Tutorial
Obtaining the Prototype
A prototype of the CDS1, which runs on SGI IRIX 5.3, IRIX 6.x, and (some) Sun
Solaris platforms is currently available under the HPCC beta agreement. Until
it is posted to the
NAS Software Archive,
requests should be sent to dinucci@nas.nasa.gov
 |
 |
Do not
bookmark this page. This content from the old NAS website is moving from www.nas.nasa.gov to a new site. Please visit our new home
page for up-to-date news and information about the NAS Systems Division.
Updated:
Tuesday, 03-Aug-1999 17:08:45 PDT
WebWork: Robert Hood
NASA Responsible Official: Subhash Saini
|