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

Chocola: integrating futures, actors, and transactions

Published: 05 November 2018 Publication History
  • Get Citation Alerts
  • Abstract

    Developers often combine different concurrency models in a single program, in each part of the program using the model that fits best. Many programming languages, such as Clojure, Scala, and Haskell, cater to this need by supporting different concurrency models. However, they are often combined in an ad hoc way and the semantics of the combination is not always well defined.
    This paper studies the combination of three concurrency models: futures, actors, and transactions. We show that a naive combination of these models invalidates the guarantees they normally provide, thereby breaking the assumptions of developers. Hence, we present Chocola: a unified framework of futures, actors, and transactions that maintains the guarantees of all models wherever possible, even when they are combined. We present the semantics of this model and its implementation in Clojure, and have evaluated its performance and expressivity using three benchmark applications.

    References

    [1]
    G. A. Agha. 1985. Actors: a model of concurrent computation in distributed systems. Ph.D. Dissertation. Massachusetts Institute of Technology.
    [2]
    H. C. Baker and C. Hewitt. 1977. The incremental garbage collection of processes. In Proceedings of the 1977 symposium on Artificial intelligence and programming languages. 55-59.
    [3]
    S. Brandauer, E. Castegren, D. Clarke, K. Fernandez-Reyes, E. B. Johnsen, K. I. Pun, S. L. T. Tarifa, Tobias Wrigstad, and Albert Mingkun Yang. 2015. Parallel Objects for Multicores: A Glimpse at the Parallel Language Encore. In Formal Methods for Multicore Programming: 15th International School on Formal Methods for the Design of Computer, Communication, and Software Systems (SFM 2015). 1-56.
    [4]
    S. Clebsch, S. Drossopoulou, S. Blessing, and A. McNeil. 2015. Deny Capabilities for Safe, Fast Actors. In Proceedings of AGERE! 2015. 1-12.
    [5]
    J. De Koster, S. Marr, T. Van Cutsem, and T. D'Hondt. 2016. Domains: Sharing state in the communicating event-loop actor model. Computer Languages, Systems & Structures 45 (2016), 132-160.
    [6]
    J. De Koster, T. Van Cutsem, and W. De Meuter. 2016. 43 Years of Actors: A Taxonomy of Actor Models and Their Key Properties. In Proceedings of AGERE'16. 31-40.
    [7]
    M. Felleisen, R. B. Findler, and M. Flatt. 2009. Semantics Engineering with PLT Redex. The MIT Press.
    [8]
    K. Fernandez-Reyes, D. Clarke, and D. S. McCain. 2016. ParT: An Asynchronous Parallel Abstraction for Speculative Pipeline Computations. In Proceedings of COORDINATION 2016. 101-120.
    [9]
    R. H. Halstead. 1985. MULTILISP: a language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems 7, 4 (Oct. 1985), 501-538.
    [10]
    T. Harris, J. R. Larus, and R. Rajwar. 2010. Transactional Memory (2nd ed.). Morgan & Claypool.
    [11]
    M. Herlihy and J. E. B. Moss. 1993. Transactional Memory: Architectural Support for Lock-free Data Structures. In Proceedings of ISCA'93. 289-300.
    [12]
    C. Hewitt, P. Bishop, and R. Steiger. 1973. A Universal Modular ACTOR Formalism for Artificial Intelligence. In Proceedings of IJCAI'73. 235-245.
    [13]
    C. A. R. Hoare. 1973. Hints on Programming Language Design. Technical Report.
    [14]
    S. M. Imam and V. Sarkar. 2012. Integrating Task Parallelism with Actors. In Proceedings of OOPSLA '12. 753-772.
    [15]
    C. C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun. 2008. STAMP: Stanford Transactional Applications for Multi-Processing. In 2008 IEEE International Symposium on Workload Characterization. 35-46.
    [16]
    J. E. B. Moss and A. L. Hosking. 2006. Nested transactional memory: Model and architecture sketches. Science of Computer Programming 63, 2 (2006), 186-201.
    [17]
    N. Shavit and D. Touitou. 1997. Software transactional memory. Distributed Computing 10, 2 (Feb. 1997), 99-116.
    [18]
    J. Swalens, J. De Koster, and W. De Meuter. 2016. Transactional Tasks: Parallelism in Software Transactions. In Proceedings of ECOOP'16. 23:1-23:28.
    [19]
    J. Swalens, J. De Koster, and W. De Meuter. 2017. Transactional Actors: Communication in Transactions. In Proceedings of SEPS'17. 31-41.
    [20]
    J. Swalens, S. Marr, J. De Koster, and T. Van Cutsem. 2014. Towards Composable Concurrency Abstractions. In Proceedings of PLACES'14.
    [21]
    S. Tasharofi, P. Dinges, and R. E. Johnson. 2013. Why Do Scala Developers Mix the Actor Model with Other Concurrency Models?. In Proceedings of ECOOP'13. 302-326.
    [22]
    P. Van Roy and S. Haridi. 2004. Concepts, techniques, and models of computer programming. The MIT Press.
    [23]
    J. Zeng, J. Barreto, S. Haridi, L. Rodrigues, and P. Romano. 2016. The Future(s) of Transactional Memory. In Proceedings of ICPP '16. 442-451.

    Cited By

    View all
    • (2021)An extension for Transactional Memory in OpenMPProceedings of the 25th Brazilian Symposium on Programming Languages10.1145/3475061.3475089(58-65)Online publication date: 27-Sep-2021
    • (2021)Investigating the semantics of futures in transactional memory systemsProceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3437801.3441594(16-30)Online publication date: 17-Feb-2021
    • (2020)Scalable and serializable networked multi-actor programmingProceedings of the ACM on Programming Languages10.1145/34282664:OOPSLA(1-30)Online publication date: 13-Nov-2020
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    AGERE 2018: Proceedings of the 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control
    November 2018
    71 pages
    ISBN:9781450360661
    DOI:10.1145/3281366
    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 the author(s) 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: 05 November 2018

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Software Transactional Memory
    2. actors
    3. concurrency
    4. futures
    5. parallelism
    6. transactions

    Qualifiers

    • Research-article

    Conference

    SPLASH '18
    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)5
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 11 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2021)An extension for Transactional Memory in OpenMPProceedings of the 25th Brazilian Symposium on Programming Languages10.1145/3475061.3475089(58-65)Online publication date: 27-Sep-2021
    • (2021)Investigating the semantics of futures in transactional memory systemsProceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3437801.3441594(16-30)Online publication date: 17-Feb-2021
    • (2020)Scalable and serializable networked multi-actor programmingProceedings of the ACM on Programming Languages10.1145/34282664:OOPSLA(1-30)Online publication date: 13-Nov-2020
    • (2020)High-throughput stream processing with actorsProceedings of the 10th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control10.1145/3427760.3428338(1-10)Online publication date: 17-Nov-2020

    View Options

    Get Access

    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