Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2488222.2488255acmconferencesArticle/Chapter ViewAbstractPublication PagesdebsConference Proceedingsconference-collections
research-article

Dynamic expressivity with static optimization for streaming languages

Published: 29 June 2013 Publication History

Abstract

Developers increasingly use streaming languages to write applications that process large volumes of data with high throughput. Unfortunately, when picking which streaming language to use, they face a difficult choice. On the one hand, dynamically scheduled languages allow developers to write a wider range of applications, but cannot take advantage of many crucial optimizations. On the other hand, statically scheduled languages are extremely performant, but have difficulty expressing many important streaming applications.
This paper presents the design of a hybrid scheduler for stream processing languages. The compiler partitions the streaming application into coarse-grained subgraphs separated by dynamic rate boundaries. It then applies static optimizations to those subgraphs. We have implemented this scheduler as an extension to the StreamIt compiler. To evaluate its performance, we compare it to three scheduling techniques used by dynamic systems (OS thread, demand, and no-op) on a combination of micro-benchmarks and real-world inspired synthetic benchmarks. Our scheduler not only allows the previously static version of StreamIt to run dynamic rate applications, but it outperforms the three dynamic alternatives. This demonstrates that our scheduler strikes the right balance between expressivity and performance for stream processing languages.

References

[1]
D. J. Abadi, D. Carney, U. Cetintemel, M. Cherniack, C. Convey, S. Lee, M. Stonebraker, N. Tatbul, and S. Zdonik. Aurora: A new model and architecture for data stream management. The VLDB Journal, 12(2):120--139, Aug. 2003.
[2]
A. Arasu, S. Babu, and J. Widom. The CQL continuous query language: Semantic foundations and query execution. The VLDB Journal, 15(2):121--142, June 2006.
[3]
J. Auerbach, D. F. Bacon, P. Cheng, and R. Rabbah. Lime: A Java-compatible and synthesizable language for heterogeneous architectures. In Proc. ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 89--108, Oct. 2010.
[4]
G. Berry and G. Gonthier. The ESTEREL synchronous programming language: Design, semantics, implementation. Science of Computer Programming,19(2):87--152,Nov.1992.
[5]
I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan. Brook for GPUs: Stream computing on graphics hardware. In Proc. ACM International Conference on Computer Graphics and Interactive Techniques, pages 777--786, Aug. 2004.
[6]
M. I. Gordon, W. Thies, and S. Amarasinghe. Exploiting coarse-grained task, data, and pipeline parallelism in stream programs. In Proc. 12th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, pages 151--162, Oct. 2006.
[7]
M. I. Gordon, W. Thies, M. Karczmarek, J. Lin, A. S. Meli, A. A. Lamb, C. Leger, J. Wong, H. Hoffmann, D. Maze, and S. Amarasinghe. A stream compiler for communication-exposed architectures. In Proc. 10th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, pages 291--303, Dec. 2002.
[8]
M. Hirzel, H. Andrade, B. Gedik, V. Kumar, G. Losa, M. Mendell, H. Nasgaard, R. Soulé, and K.-L. Wu. Streams processing language specification. Research Report RC24897, IBM, Nov. 2009.
[9]
M. Hirzel, R. Soulé, S. Schneider, B. Gedik, and R. Grimm. A catalog of stream processing optimizations. Technical Report RC25215, IBM, Sept. 2011.
[10]
U. Hölzle, C. Chambers, and D. Ungar. Debugging optimized code with dynamic deoptimization. In Proc. ACM Conference on Programming Language Design and Implementation, pages 32--43, 1992.
[11]
A. H. Hormati, Y. Choi, M. Kudlur, R. Rabbah, T. Mudge, and S. Mahlke. Flextream: Adaptive compilation of streaming applications for heterogeneous architectures. In Proc. 18th International Conference on Parallel Architectures and Compilation Techniques, pages 214--223, Sept. 2009.
[12]
M. M. Michael and M. L. Scott. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In Proc. 15th ACM Symposium on Principles of Distributed Computing, pages 267--275, 1996.
[13]
M. Roesch. Snort- lightweight intrusion detection for networks. In Proc. 13th USENIX Large Installation System Administration Conference, pages 229--238, 1999.
[14]
J. Sermulins, W. Thies, R. Rabbah, and S. Amarasinghe. Cache aware optimization of stream programs. In Proc. ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems, pages 115--126, June 2005.
[15]
W. Thies, M. Karczmarek, and S. Amarasinghe. StreamIt: A language for streaming applications. In Proc. 11th International Conference on Compiler Construction, volume 2304 of LNCS, pages 179--196, Apr. 2002.
[16]
E. Waingold, M. Taylor, D. Srikrishna, V. Sarkar, W. Lee, et al. Baring It All to Software: Raw Machines. IEEE Computer,30(9):86--93,1997.
[17]
M. Welsh, D. Culler, and E. Brewer. SEDA: An architecture for well-conditioned, scalable Internet services. In Proc. 18th ACM Symposium on Operating Systems Principles, pages 230--243, Oct. 2001.
[18]
D. Wentzlaff, P. Griffin, H. Hoffmann, L. Bao, B. Edwards, C. Ramey, M. Mattina, C.-C. Miao, J. F. Brown III, and A. Agarwal. On-chip interconnection architecture of the tile processor. IEEE Micro, 27(5):15--31, Sept. 2007.

Cited By

View all
  • (2021)Resource aware scheduler for distributed stream processing in cloud native environmentsConcurrency and Computation: Practice and Experience10.1002/cpe.637333:20Online publication date: 20-May-2021
  • (2020)Multiple stream job performance optimization with source operator graph transformationsConcurrency and Computation: Practice and Experience10.1002/cpe.565832:16Online publication date: 6-Jan-2020
  • (2019)TÿchoACM Transactions on Embedded Computing Systems10.1145/336269218:6(1-25)Online publication date: 14-Dec-2019
  • Show More Cited By

Index Terms

  1. Dynamic expressivity with static optimization for streaming languages

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    DEBS '13: Proceedings of the 7th ACM international conference on Distributed event-based systems
    June 2013
    360 pages
    ISBN:9781450317580
    DOI:10.1145/2488222
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 29 June 2013

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. stream processing
    2. streamit

    Qualifiers

    • Research-article

    Conference

    DEBS '13

    Acceptance Rates

    DEBS '13 Paper Acceptance Rate 16 of 58 submissions, 28%;
    Overall Acceptance Rate 145 of 583 submissions, 25%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)4
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 13 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2021)Resource aware scheduler for distributed stream processing in cloud native environmentsConcurrency and Computation: Practice and Experience10.1002/cpe.637333:20Online publication date: 20-May-2021
    • (2020)Multiple stream job performance optimization with source operator graph transformationsConcurrency and Computation: Practice and Experience10.1002/cpe.565832:16Online publication date: 6-Jan-2020
    • (2019)TÿchoACM Transactions on Embedded Computing Systems10.1145/336269218:6(1-25)Online publication date: 14-Dec-2019
    • (2019)High-Level and Productive Stream Parallelism for Dedup, Ferret, and Bzip2International Journal of Parallel Programming10.1007/s10766-018-0558-x47:2(253-271)Online publication date: 1-Apr-2019
    • (2019)Stream Processing Languages and AbstractionsEncyclopedia of Big Data Technologies10.1007/978-3-319-77525-8_260(1600-1607)Online publication date: 20-Feb-2019
    • (2018)Stream Processing Languages and AbstractionsEncyclopedia of Big Data Technologies10.1007/978-3-319-63962-8_260-1(1-8)Online publication date: 2-Mar-2018
    • (2017)Machine fusionProceedings of the 19th International Symposium on Principles and Practice of Declarative Programming10.1145/3131851.3131865(139-150)Online publication date: 9-Oct-2017
    • (2017)SPLACM Transactions on Programming Languages and Systems10.1145/303920739:1(1-39)Online publication date: 6-Mar-2017
    • (2016)Icicle: write once, run onceProceedings of the 5th International Workshop on Functional High-Performance Computing10.1145/2975991.2975992(2-8)Online publication date: 8-Sep-2016
    • (2016)Mapping Streaming Applications on Commodity Multi-CPU and GPU On-Chip ProcessorsIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2015.243280927:4(1099-1115)Online publication date: 1-Apr-2016
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media