• 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