[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3001886.3001891acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Pluggable scheduling for the reactor programming model

Published: 30 October 2016 Publication History

Abstract

The reactor model is a foundational programming model for distributed computing, whose focus is modularizing and composing computations and message protocols. Previous work on reactors dealt mainly with the programming model and its composability properties, but did not show how to schedule computations in reactor-based programs.
In this paper, we propose a pluggable scheduling algorithm for the reactor model. The algorithm is customizable with user-defined scheduling policies. We define and prove safety and progress properties. We compare our implementation against the Akka actor framework, and show up to 3× performance improvements on standard actor benchmarks.

References

[1]
G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986. ISBN 0-262-01092-5. Akka. Akka Documentation, 2015. http://akka.io/docs/. Erlang. Erlang/OTP documentation, 2015. http://www.erlang.org/. A. Georges, D. Buytaert, and L. Eeckhout. Statistically Rigorous Java Performance Evaluation. SIGPLAN Not., 42(10):57–76, Oct. 2007. ISSN 0362-1340.
[2]
R. Guerraoui and L. Rodrigues. Introduction to Reliable Distributed Programming. Springer. ISBN 978-3-540-28845-9. P. Haller and M. Odersky. Event-Based Programming without Inversion of Control. In Proc. Joint Modular Languages Conference, Springer LNCS, 2006.
[3]
S. M. Imam and V. Sarkar. Savina - An Actor Benchmark Suite: Enabling Empirical Evaluation of Actor Libraries. AGERE! ’14. ACM, 2014a. ISBN 978-1-4503-2189-1.
[4]
S. M. Imam and V. Sarkar. Selectors: Actors with Multiple Guarded Mailboxes. AGERE! ’14, pages 1–14, New York, NY, USA, 2014b. ACM. ISBN 978-1-4503-2189-1.
[5]
D. Lea. A Java Fork/Join Framework. JAVA ’00. ACM, 2000.
[6]
ISBN 1-58113-288-3.
[7]
M. Odersky and al. An Overview of the Scala Programming Language. Technical Report IC/2004/64, EPFL Lausanne, Switzerland, 2004.
[8]
K. Pinte, A. Lombide Carreton, E. Gonzalez Boix, and W. Meuter. Ambient Clouds: Reactive Asynchronous Collections for Mobile Ad Hoc Network Applications. Springer, 2013. ISBN 978- 3-642-38540-7. A. Prokopec. ScalaMeter, 2014. http://scalameter.github.io. A. Prokopec. SnapQueue: Lock-Free Queue with Constant Time Snapshots. Scala ’15, 2015.
[9]
A. Prokopec. Reactors.IO Website, 2016. https://reactors.io. A. Prokopec and M. Odersky. Isolates, Channels, and Event Streams for Composable Distributed Programming. Onward! 2015, pages 171–182, New York, NY, USA, 2015. ACM. ISBN 978-1-4503-3688-8.
[10]
A. Prokopec, P. Haller, and M. Odersky. Containers and Aggregates, Mutators and Isolates for Reactive Programming. SCALA ’14. ACM, 2014.
[11]
C. Scholliers, E. Tanter, and W. De Meuter. Parallel Actor Monitors: Disentangling Task-level Parallelism from Data Partitioning in the Actor Model. Sci. Comput. Program., 80:52–64, Feb. 2014. ISSN 0167-6423. M. Shapiro, N. Preguiça, C. Baquero, and M. Zawirski. A Comprehensive Study of Convergent and Commutative Replicated Data Types. Research Report RR-7506, Jan. 2011.
[12]
S. Srinivasan and A. Mycroft. Kilim: Isolation-Typed Actors for Java, pages 104–128. Springer, Berlin, Heidelberg, 2008.

Cited By

View all
  • (2023)Optimization-Aware Compiler-Level Event ProfilingACM Transactions on Programming Languages and Systems10.1145/359147345:2(1-50)Online publication date: 26-Jun-2023
  • (2019)An optimization-driven incremental inline substitution algorithm for just-in-time compilersProceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization10.5555/3314872.3314893(164-179)Online publication date: 16-Feb-2019
  • (2019)Squirrel: an extensible distributed key-value storeProceedings of the 4th ACM SIGPLAN International Workshop on Meta-Programming Techniques and Reflection10.1145/3358502.3361271(21-30)Online publication date: 20-Oct-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
AGERE 2016: Proceedings of the 6th International Workshop on Programming Based on Actors, Agents, and Decentralized Control
October 2016
69 pages
ISBN:9781450346399
DOI:10.1145/3001886
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

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 30 October 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. actors
  2. channels
  3. composable distributed computing
  4. event streams
  5. reactor model
  6. reactors
  7. scheduling

Qualifiers

  • Research-article

Conference

SPLASH '16
Sponsor:

Acceptance Rates

Overall Acceptance Rate 19 of 35 submissions, 54%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)1
Reflects downloads up to 24 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Optimization-Aware Compiler-Level Event ProfilingACM Transactions on Programming Languages and Systems10.1145/359147345:2(1-50)Online publication date: 26-Jun-2023
  • (2019)An optimization-driven incremental inline substitution algorithm for just-in-time compilersProceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization10.5555/3314872.3314893(164-179)Online publication date: 16-Feb-2019
  • (2019)Squirrel: an extensible distributed key-value storeProceedings of the 4th ACM SIGPLAN International Workshop on Meta-Programming Techniques and Reflection10.1145/3358502.3361271(21-30)Online publication date: 20-Oct-2019
  • (2018)Cache-triesACM SIGPLAN Notices10.1145/3200691.317849853:1(137-151)Online publication date: 10-Feb-2018
  • (2018)Cache-triesProceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3178487.3178498(137-151)Online publication date: 10-Feb-2018
  • (2018)Efficient Lock-Free Removing and Compaction for the Cache-Trie Data StructureEuro-Par 2018: Parallel Processing10.1007/978-3-319-96983-1_41(575-589)Online publication date: 1-Aug-2018
  • (2017)Encoding the building blocks of communicationProceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3133850.3133865(104-118)Online publication date: 25-Oct-2017
  • (2017)Accelerating by Idling: How Speculative Delays Improve Performance of Message-Oriented SystemsEuro-Par 2017: Parallel Processing10.1007/978-3-319-64203-1_13(177-191)Online publication date: 1-Aug-2017

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