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.
- 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. doi: 10.1145/1297105.1297033. Google ScholarDigital Library
- 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. Google ScholarDigital Library
- 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. doi: 10.1145/2687357.2687368. Google ScholarDigital Library
- 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. doi: 10.1145/2687357.2687360. Google ScholarDigital Library
- D. Lea. A Java Fork/Join Framework. JAVA ’00. ACM, 2000. Google ScholarDigital Library
- ISBN 1-58113-288-3. doi: 10.1145/337449.337465.Google Scholar
- M. Odersky and al. An Overview of the Scala Programming Language. Technical Report IC/2004/64, EPFL Lausanne, Switzerland, 2004.Google Scholar
- 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. doi: 10.1007/978-3-642-38541-4. A. Prokopec. ScalaMeter, 2014. http://scalameter.github.io. A. Prokopec. SnapQueue: Lock-Free Queue with Constant Time Snapshots. Scala ’15, 2015. doi: 10.1145/2774975.2774976.Google Scholar
- 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. doi: 10.1145/2814228.2814245. Google ScholarDigital Library
- A. Prokopec, P. Haller, and M. Odersky. Containers and Aggregates, Mutators and Isolates for Reactive Programming. SCALA ’14. ACM, 2014. doi: 10.1145/2637647.2637656. Google ScholarDigital Library
- 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. doi: 10.1016/j.scico.2013.03.011. 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. Google ScholarDigital Library
- S. Srinivasan and A. Mycroft. Kilim: Isolation-Typed Actors for Java, pages 104–128. Springer, Berlin, Heidelberg, 2008. doi: 10.1007/978-3-540-70592-5. Google ScholarDigital Library
Index Terms
- Pluggable scheduling for the reactor programming model
Recommendations
Scheduling of deteriorating jobs with release dates to minimize the maximum lateness
In this paper, we consider the problem of scheduling n deteriorating jobs with release dates on a single (batching) machine. Each job's processing time is a simple linear function of its starting time. The objective is to minimize the maximum lateness. ...
Single machine parallel-batch scheduling with deteriorating jobs
We consider several single machine parallel-batch scheduling problems in which the processing time of a job is a linear function of its starting time. We give a polynomial-time algorithm for minimizing the maximum cost, an O(n5) time algorithm for ...
Scheduling jobs under decreasing linear deterioration
This paper considers the scheduling problems under decreasing linear deterioration. Deterioration of a job means that its processing time is a function of its execution start time. Optimal algorithms are presented respectively for single machine ...
Comments