Affiliation:
1. Microsoft Research, UK
2. Imperial College London, UK
3. Uppsala University, Sweden
4. Northeastern University, USA
Abstract
ORCA is a concurrent and parallel garbage collector for actor programs, which does not require any STW steps, or synchronization mechanisms, and that has been designed to support zero-copy message passing and sharing of mutable data. ORCA is part of a runtime for actor-based languages, which was co-designed with the Pony programming language, and in particular, with its data race free type system. By co-designing an actor language with its runtime, it was possible to exploit certain language properties in order to optimize performance of garbage collection. Namely, ORCA relies on the guarantees of absence of race conditions in order to avoid read/write barriers, and it leverages the actor message passing, for synchronization among actors.
In this paper we briefly describe Pony and its type system. We use pseudo-code in order to introduce how ORCA allocates and deallocates objects, how it shares mutable data without requiring barriers upon data mutation, and how can immutability be used to further optimize garbage collection. Moreover, we discuss the advantages of co-designing an actor language with its runtime, and we demonstrate that ORCA can be implemented in a performant and scalable way through a set of micro-benchmarks, including a comparison with other well-known collectors.
Funder
NSF
Swedish Research Council
FP7-ICT
Svenska Forskningsrådet Formas
EPSRC
Horizon 2020
ONR
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
12 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Oxidizing OCaml with Modal Memory Management;Proceedings of the ACM on Programming Languages;2024-08-15
2. Encore: Coda;Lecture Notes in Computer Science;2024
3. High-performance Deterministic Concurrency Using
Lingua Franca;ACM Transactions on Architecture and Code Optimization;2023-10-26
4. Reference Capabilities for Flexible Memory Management;Proceedings of the ACM on Programming Languages;2023-10-16
5. A Fine-grained Asynchronous Bulk Synchronous parallelism model for PGAS applications;Journal of Computational Science;2023-05