Orca: GC and type system co-design for actor languages
File(s)FULLTEXT01.pdf (1.02 MB)
Published version
Author(s)
Type
Conference Paper
Abstract
ORCA is a concurrent and parallel garbage collector for actor programs,
which does not require any stop-the-world steps, or synchronisation
mechanisms, and which has been designed to support zero-copy message passing and sharing of mutable data. \ORCA is part of the runtime of the actor-based language Pony. Pony's runtime was co-designed with the Pony language. This co-design allowed us to exploit certain language properties in order to optimise performance of garbage collection. Namely, ORCA relies on the absence of race conditions in order to avoid read/write barriers, and it
leverages actor message passing for synchronisation among actors. This
paper describes Pony, its type system, and the
ORCA garbage collection algorithm.
An evaluation of the performance of ORCA suggests that it is fast and scalable for idiomatic workloads.
which does not require any stop-the-world steps, or synchronisation
mechanisms, and which has been designed to support zero-copy message passing and sharing of mutable data. \ORCA is part of the runtime of the actor-based language Pony. Pony's runtime was co-designed with the Pony language. This co-design allowed us to exploit certain language properties in order to optimise performance of garbage collection. Namely, ORCA relies on the absence of race conditions in order to avoid read/write barriers, and it
leverages actor message passing for synchronisation among actors. This
paper describes Pony, its type system, and the
ORCA garbage collection algorithm.
An evaluation of the performance of ORCA suggests that it is fast and scalable for idiomatic workloads.
Editor(s)
Aldrich, J
Date Issued
2017-10-12
Date Acceptance
2017-08-11
Citation
Proceedings of the ACM on Programming Languages, 2017, 1, pp.72:1-72:28
ISSN
2475-1421
Publisher
Association for Computing Machinery
Start Page
72:1
End Page
72:28
Journal / Book Title
Proceedings of the ACM on Programming Languages
Volume
1
Copyright Statement
© 2017 Copyright held by the owner/author(s). This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License
Sponsor
Commission of the European Communities
Engineering & Physical Science Research Council (EPSRC)
Grant Number
612985
EP/K011715/1
Source
OOPSLA 2017
Publication Status
Published
Start Date
2017-10-22
Finish Date
2017-10-27
Coverage Spatial
Vancouver, Canada