Dynamic expressivity with static optimization for streaming languages

Robert Soulé, Michael I. Gordon, Saman Amarasinghe, Robert Grimm, Martin Hirzel

Research output: Chapter in Book/Report/Conference proceedingConference contribution

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 Streamlt 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 Streamlt 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.

Original languageEnglish (US)
Title of host publicationDEBS 2013 - Proceedings of the 7th ACM International Conference on Distributed Event-Based Systems
Pages159-170
Number of pages12
DOIs
StatePublished - 2013
Event7th ACM International Conference on Distributed Event-Based Systems, DEBS 2013 - Arlington, TX, United States
Duration: Jun 29 2013Jul 3 2013

Other

Other7th ACM International Conference on Distributed Event-Based Systems, DEBS 2013
CountryUnited States
CityArlington, TX
Period6/29/137/3/13

Fingerprint

Processing
Dynamical systems
Scheduling
Throughput

Keywords

  • Stream processing
  • Streamlt

ASJC Scopus subject areas

  • Software
  • Control and Systems Engineering

Cite this

Soulé, R., Gordon, M. I., Amarasinghe, S., Grimm, R., & Hirzel, M. (2013). Dynamic expressivity with static optimization for streaming languages. In DEBS 2013 - Proceedings of the 7th ACM International Conference on Distributed Event-Based Systems (pp. 159-170) https://doi.org/10.1145/2488222.2488255

Dynamic expressivity with static optimization for streaming languages. / Soulé, Robert; Gordon, Michael I.; Amarasinghe, Saman; Grimm, Robert; Hirzel, Martin.

DEBS 2013 - Proceedings of the 7th ACM International Conference on Distributed Event-Based Systems. 2013. p. 159-170.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Soulé, R, Gordon, MI, Amarasinghe, S, Grimm, R & Hirzel, M 2013, Dynamic expressivity with static optimization for streaming languages. in DEBS 2013 - Proceedings of the 7th ACM International Conference on Distributed Event-Based Systems. pp. 159-170, 7th ACM International Conference on Distributed Event-Based Systems, DEBS 2013, Arlington, TX, United States, 6/29/13. https://doi.org/10.1145/2488222.2488255
Soulé R, Gordon MI, Amarasinghe S, Grimm R, Hirzel M. Dynamic expressivity with static optimization for streaming languages. In DEBS 2013 - Proceedings of the 7th ACM International Conference on Distributed Event-Based Systems. 2013. p. 159-170 https://doi.org/10.1145/2488222.2488255
Soulé, Robert ; Gordon, Michael I. ; Amarasinghe, Saman ; Grimm, Robert ; Hirzel, Martin. / Dynamic expressivity with static optimization for streaming languages. DEBS 2013 - Proceedings of the 7th ACM International Conference on Distributed Event-Based Systems. 2013. pp. 159-170
@inproceedings{952c43050e2d4c938553139d7ee142b2,
title = "Dynamic expressivity with static optimization for streaming languages",
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 Streamlt 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 Streamlt 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.",
keywords = "Stream processing, Streamlt",
author = "Robert Soul{\'e} and Gordon, {Michael I.} and Saman Amarasinghe and Robert Grimm and Martin Hirzel",
year = "2013",
doi = "10.1145/2488222.2488255",
language = "English (US)",
isbn = "9781450317580",
pages = "159--170",
booktitle = "DEBS 2013 - Proceedings of the 7th ACM International Conference on Distributed Event-Based Systems",

}

TY - GEN

T1 - Dynamic expressivity with static optimization for streaming languages

AU - Soulé, Robert

AU - Gordon, Michael I.

AU - Amarasinghe, Saman

AU - Grimm, Robert

AU - Hirzel, Martin

PY - 2013

Y1 - 2013

N2 - 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 Streamlt 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 Streamlt 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.

AB - 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 Streamlt 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 Streamlt 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.

KW - Stream processing

KW - Streamlt

UR - http://www.scopus.com/inward/record.url?scp=84881181133&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84881181133&partnerID=8YFLogxK

U2 - 10.1145/2488222.2488255

DO - 10.1145/2488222.2488255

M3 - Conference contribution

SN - 9781450317580

SP - 159

EP - 170

BT - DEBS 2013 - Proceedings of the 7th ACM International Conference on Distributed Event-Based Systems

ER -