Abstract
With the increasing amount of parallelism obtainable on multicore platforms, stream programming has been proposed as an effective solution for exposing distributed parallelization. Nonetheless, a pressing demand of scheduling task and data parallelism in stream programming exists that can accomplish robust multicore performance in the face of varying application characteristics. This paper addresses the problem of scheduling task and data parallelism in stream programming. We present StreamMDE, an asynchronous concurrency stream programming framework which offers a novel parallel programming model for scheduling task and data parallelism in the message-driven execution paradigm. A key property of this framework is exposing controlled-grained parallelism, which allows us to control the granularity of task and data parallelism in stream graph. Our empirical evaluation of StreamMDE shows that higher efficiency of mixed task and data parallelism in stream programming can be exploited with the appropriate granularity control. The framework bridges the gap between the parallel scale and the architecture of stream programs and facilitates in designing and coding stream features in different schedules.
Original language | English |
---|---|
Pages (from-to) | 488-509 |
Number of pages | 22 |
Journal | Journal of Supercomputing |
Volume | 70 |
Issue number | 1 |
DOIs | |
Publication status | Published - 1 Oct 2014 |
Keywords
- C++11
- Controlled-grained parallelism
- Message-driven execution
- Multicore
- Stream programming