Support for Distributed Dynamic Data Structures in C++

Loading...
Thumbnail Image

Files

CS-TR-3416.ps (162 KB)
No. of downloads: 335
CS-TR-3416.pdf (174.1 KB)
No. of downloads: 1061

Publication or External Link

Date

1998-10-15

Advisor

Citation

DRUM DOI

Abstract

Traditionally, applications executed on distributed memory architectures in single-program multiple-data (SPMD) mode use distributed (multi-dimensional) data arrays. Good performance has been achieved by applying runtime techniques to such applications executing in a loosely synchronous manner. However, many applications utilize language constructs such as pointers to synthesize dynamic complex data structures, such as linked lists, trees and graphs, with elements consisting of complex composite data types. Existing runtime systems that rely on global indices cannot be used for these applications, as no global names or indices are imposed upon the elements of these data structures.

A portable object-oriented runtime library is presented to support applications that use dynamic distributed data structures, including both arrays and pointer-based data structures. In particular, CHAOS++ deals with complex data types and pointer-based data structures by providing {\em mobile objects} and {\em globally addressable objects}. Preprocessing techniques are used to analyze communication patterns, and data exchange primitives are provided to carry out efficient data transfer. Performance results for applications taken from three distinct classes are also included to demonstrate the wide applicability of the runtime library. (Also cross-referenced as UMIACS-TR-95-19)

Notes

Rights