[Back]


Publications in Scientific Journals:

J. Hong, K. Hong, B. Burgstaller, J. Blieberger:
"StreamPI: A stream-parallel programming extension for object-oriented programming languages";
Journal of Supercomputing, 61 (2012), 1; 118 - 140.



English abstract:
Because multicore CPUs have become the standard with all major hardware manufacturers, it becomes increasingly important for programming languages to provide programming abstractions that can be mapped effectively onto parallel architectures. Stream processing is a programming paradigm where computations are expressed as independent actors that communicate via FIFO data-channels. The coarse-grained parallelism exposed in stream programs facilitates such an effcient mapping of actors onto the underlying multicore hardware.

We propose a stream-parallel programming abstraction that extends object-oriented languages with stream-programming facilities. StreamPI consists of a class-hierarchy for actor-specification together with a language-independent run-time system that supports the execution of stream programs on multicore architectures. We show that the language-specific part of StreamPI, i.e., the class-hierarchy, can be implemented as a library-level programming language extension. A library-level extension has the advantage that an existing programming language implementation need not be touched. Legacy-code can be mixed with a stream-parallel application, and the use of sequential legacy code with actors is supported. Unlike previous approaches, StreamPI allows dynamic creation and subsequent execution of stream programs. StreamPI actors are typed. Type-safety is achieved through type-checks at stream graph creation time.

We have implemented StreamPI´s language-independent run-time system
and language interfaces for Ada 2005 and C++ for Intel multicore architectures. We have evaluated StreamPI for up to 16 cores on a 2 CPU 8-core Intel Xeon X7560 server, and we provide a performance comparison with StreamIt [13], which is the defacto-standard for stream-parallel programming. Although our approach provides greater programming flexibility than StreamIt, the performance of StreamPI compares favorably to the static compilation model of StreamIt.


"Official" electronic version of the publication (accessed through its Digital Object Identifier - DOI)
http://dx.doi.org/10.1007/s11227-011-0656-7


Created from the Publication Database of the Vienna University of Technology.