DocumentCode :
2495834
Title :
An object-oriented approach to nested data parallelism
Author :
Sheffler, Thomas J. ; Chatterjee, Siddhartha
Author_Institution :
Res. Inst. for Adv. Comput. Sci., NASA Ames Res. Center, Moffett Field, CA, USA
fYear :
1995
fDate :
6-9 Feb 1995
Firstpage :
203
Lastpage :
210
Abstract :
This paper describes an implementation technique for integrating nested data parallelism into an object-oriented language. Data-parallel programming employs data aggregates called “collections” and expresses parallelism as operations performed over the elements of a collection. When the elements of a collection are also collections, then there is the possibility for “nested data parallelism.” Few current programming languages support nested data parallelism however. In an object-oriented framework, a collection is a single object. Its type defines the parallel operations that may be applied to it. Our goal is to design and build an object-oriented data-parallel programming environment supporting nested data parallelism. Our initial approach is built upon three fundamental additions to C++. We add new parallel base types by implementing them as classes, and add a new parallel collection type called a “vector” that is implemented as a template. Only one new language feature is introduced: the foreach construct, which is the basis for exploiting elementwise parallelism over collections. The strength of the method lies in the compilation strategy, which translates nested data-parallel C++ into ordinary C++. Extracting the potential parallelism in nested foreach constructs is called “flattening” nested parallelism. We show how to flatten foreach constructs using a simple program transformation. Our prototype system produces vector code which has been successfully run on workstations, a CM-2 and a CM-5
Keywords :
C language; object-oriented languages; parallel programming; programming environments; CM-2; CM-5; compilation strategy; data aggregates; data-parallel programming; nested data parallelism; nested data-parallel C++; object-oriented approach; object-oriented language; parallel base types; parallel operations; programming environment; template; vector code; Aggregates; Computer languages; Computer science; Educational institutions; NASA; Parallel processing; Parallel programming; Programming environments; Prototypes; Workstations;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Frontiers of Massively Parallel Computation, 1995. Proceedings. Frontiers '95., Fifth Symposium on the
Conference_Location :
McLean, VA
Print_ISBN :
0-8186-6965-9
Type :
conf
DOI :
10.1109/FMPC.1995.380447
Filename :
380447
Link To Document :
بازگشت