SCnC: Efficient Unification of Streaming with Dynamic Task Parallelism
Citations Over Time
Abstract
Stream processing is a special form of the dataflow execution model that offers extensive opportunities for optimization and automatic parallelization. To take full advantage of the paradigm, however, typically requires programmers to learn a new language and re-implement their applications. This work shows that it is possible to exploit streaming as a safe and automatic optimization of a more general dataflow-based modelâ€"one in which computation kernels are written in standard, general-purpose languages and organizedas a coordination graph.We propose Streaming Concurrent Collections (SCnC), a streaming system that can efficiently run a subset of programs supported by Concurrent Collections (CnC). CnC is a general purpose parallel programming paradigm with a task-parallel look and feel but based on dataflow graph principles. Its expressiveness extends to any arbitrary task graph. Integration of these models would allow application developers to benefit from the performance and tight memory footprint of stream parallelism for eligible subgraphs of their application.In this paper we formally define the requirements (streaming access patterns) needed for using SCnC, and outline a static decision procedure for identifying and processing eligible SCnC subgraphs.We present initial results on an prototype implementation that show that transitioning from general CnC to SCnC leads to a throughput increase of up to 40x for certain benchmarks, and also enable programs with large data sizes to execute in available memory for cases where CnC execution may run out of memory.
Related Papers
- → A machine model for dataflow actors and its applications(2011)46 cited
- → Optimization of data stream processing(2004)16 cited
- → SCnC: Efficient Unification of Streaming with Dynamic Task Parallelism(2011)2 cited
- → Study of a simulated stream machine for dataflow computation(1986)
- → On the Concepts of Parallelism in Biomolecular Computing(2018)