Orca: GC and type system co-design for actor languages
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 langua...
Published in: | Proceedings of the ACM on Programming Languages |
---|---|
Main Authors: | , , , , , |
Other Authors: | , , |
Format: | Conference Object |
Language: | unknown |
Published: |
Association for Computing Machinery
2017
|
Subjects: | |
Online Access: | http://hdl.handle.net/10044/1/56293 https://doi.org/10.1145/3133896 |
id |
ftimperialcol:oai:spiral.imperial.ac.uk:10044/1/56293 |
---|---|
record_format |
openpolar |
spelling |
ftimperialcol:oai:spiral.imperial.ac.uk:10044/1/56293 2023-05-15T17:52:57+02:00 Orca: GC and type system co-design for actor languages Clebsch, S Franco, J Drossopoulou, S Mingkun Yang, A Wrigstad, T Vitek, J Aldrich, J Commission of the European Communities Engineering & Physical Science Research Council (EPSRC) Vancouver, Canada 2017-08-11 http://hdl.handle.net/10044/1/56293 https://doi.org/10.1145/3133896 unknown Association for Computing Machinery Proceedings of the ACM on Programming Languages 2475-1421 http://hdl.handle.net/10044/1/56293 doi:10.1145/3133896 612985 EP/K011715/1 © 2017 Copyright held by the owner/author(s). This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License CC-BY-SA OOPSLA 2017 72:28 72:1 Conference Paper 2017 ftimperialcol https://doi.org/10.1145/3133896 2021-02-11T23:39:06Z 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. Conference Object Orca Imperial College London: Spiral Canada Proceedings of the ACM on Programming Languages 1 OOPSLA 1 28 |
institution |
Open Polar |
collection |
Imperial College London: Spiral |
op_collection_id |
ftimperialcol |
language |
unknown |
description |
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. |
author2 |
Aldrich, J Commission of the European Communities Engineering & Physical Science Research Council (EPSRC) |
format |
Conference Object |
author |
Clebsch, S Franco, J Drossopoulou, S Mingkun Yang, A Wrigstad, T Vitek, J |
spellingShingle |
Clebsch, S Franco, J Drossopoulou, S Mingkun Yang, A Wrigstad, T Vitek, J Orca: GC and type system co-design for actor languages |
author_facet |
Clebsch, S Franco, J Drossopoulou, S Mingkun Yang, A Wrigstad, T Vitek, J |
author_sort |
Clebsch, S |
title |
Orca: GC and type system co-design for actor languages |
title_short |
Orca: GC and type system co-design for actor languages |
title_full |
Orca: GC and type system co-design for actor languages |
title_fullStr |
Orca: GC and type system co-design for actor languages |
title_full_unstemmed |
Orca: GC and type system co-design for actor languages |
title_sort |
orca: gc and type system co-design for actor languages |
publisher |
Association for Computing Machinery |
publishDate |
2017 |
url |
http://hdl.handle.net/10044/1/56293 https://doi.org/10.1145/3133896 |
op_coverage |
Vancouver, Canada |
geographic |
Canada |
geographic_facet |
Canada |
genre |
Orca |
genre_facet |
Orca |
op_source |
OOPSLA 2017 72:28 72:1 |
op_relation |
Proceedings of the ACM on Programming Languages 2475-1421 http://hdl.handle.net/10044/1/56293 doi:10.1145/3133896 612985 EP/K011715/1 |
op_rights |
© 2017 Copyright held by the owner/author(s). This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License |
op_rightsnorm |
CC-BY-SA |
op_doi |
https://doi.org/10.1145/3133896 |
container_title |
Proceedings of the ACM on Programming Languages |
container_volume |
1 |
container_issue |
OOPSLA |
container_start_page |
1 |
op_container_end_page |
28 |
_version_ |
1766160706337505280 |