DocumentCode :
104838
Title :
Safe Data Parallelism for General Streaming
Author :
Schneider, Scott ; Hirzel, Martin ; Gedik, Bugra ; Kun-Lung Wu
Author_Institution :
IBM T.J. Watson Res. Center, Yorktown Heights, NY, USA
Volume :
64
Issue :
2
fYear :
2015
fDate :
Feb. 2015
Firstpage :
504
Lastpage :
517
Abstract :
Streaming applications process possibly infinite streams of data and often have both high throughput and low latency requirements. They are comprised of operator graphs that produce and consume data tuples. General streaming applications use stateful, selective, and user-defined operators. The stream programming model naturally exposes task and pipeline parallelism, enabling it to exploit parallel systems of all kinds, including large clusters. However, data parallelism must either be manually introduced by programmers, or extracted as an optimization by compilers. Previous data parallel optimizations did not apply to selective, stateful and user-defined operators. This article presents a compiler and runtime system that automatically extracts data parallelism for general stream processing. Data-parallelization is safe if the transformed program has the same semantics as the original sequential version. The compiler forms parallel regions while considering operator selectivity, state, partitioning, and graph dependencies. The distributed runtime system ensures that tuples always exit parallel regions in the same order they would without data parallelism, using the most efficient strategy as identified by the compiler. Our experiments using 100 cores across 14 machines show linear scalability for parallel regions that are computation-bound, and near linear scalability when tuples are shuffled across parallel regions.
Keywords :
graph theory; parallel processing; pattern clustering; pipeline processing; program compilers; compilers; computation-bound parallel regions; data parallel optimizations; data parallelism; data streams; data tuples; distributed runtime system; graph dependencies; operator graphs; parallel systems; pipeline parallelism; safe data parallelism; stream programming model; streaming application process; user-defined operators; Aggregates; Data mining; Optimization; Parallel processing; Pipelines; Runtime; Safety; Data processing; distributed computing; parallel programming;
fLanguage :
English
Journal_Title :
Computers, IEEE Transactions on
Publisher :
ieee
ISSN :
0018-9340
Type :
jour
DOI :
10.1109/TC.2013.221
Filename :
6671605
Link To Document :
بازگشت