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 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-...
Published in: | Proceedings of the ACM on Programming Languages |
---|---|
Main Authors: | , , , , , |
Other Authors: | , , , , , , |
Format: | Article in Journal/Newspaper |
Language: | English |
Published: |
Association for Computing Machinery (ACM)
2017
|
Subjects: | |
Online Access: | http://dx.doi.org/10.1145/3133896 https://dl.acm.org/doi/pdf/10.1145/3133896 |
id |
cracm:10.1145/3133896 |
---|---|
record_format |
openpolar |
spelling |
cracm:10.1145/3133896 2024-05-19T07:46:44+00:00 Orca: GC and type system co-design for actor languages Clebsch, Sylvan Franco, Juliana Drossopoulou, Sophia Yang, Albert Mingkun Wrigstad, Tobias Vitek, Jan NSF Swedish Research Council FP7-ICT Svenska Forskningsrådet Formas EPSRC Horizon 2020 ONR 2017 http://dx.doi.org/10.1145/3133896 https://dl.acm.org/doi/pdf/10.1145/3133896 en eng Association for Computing Machinery (ACM) http://www.acm.org/publications/policies/copyright_policy#Background Proceedings of the ACM on Programming Languages volume 1, issue OOPSLA, page 1-28 ISSN 2475-1421 journal-article 2017 cracm https://doi.org/10.1145/3133896 2024-05-01T06:43:07Z 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. Article in Journal/Newspaper Orca ACM Publications (Association for Computing Machinery) Proceedings of the ACM on Programming Languages 1 OOPSLA 1 28 |
institution |
Open Polar |
collection |
ACM Publications (Association for Computing Machinery) |
op_collection_id |
cracm |
language |
English |
description |
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. |
author2 |
NSF Swedish Research Council FP7-ICT Svenska Forskningsrådet Formas EPSRC Horizon 2020 ONR |
format |
Article in Journal/Newspaper |
author |
Clebsch, Sylvan Franco, Juliana Drossopoulou, Sophia Yang, Albert Mingkun Wrigstad, Tobias Vitek, Jan |
spellingShingle |
Clebsch, Sylvan Franco, Juliana Drossopoulou, Sophia Yang, Albert Mingkun Wrigstad, Tobias Vitek, Jan Orca: GC and type system co-design for actor languages |
author_facet |
Clebsch, Sylvan Franco, Juliana Drossopoulou, Sophia Yang, Albert Mingkun Wrigstad, Tobias Vitek, Jan |
author_sort |
Clebsch, Sylvan |
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 (ACM) |
publishDate |
2017 |
url |
http://dx.doi.org/10.1145/3133896 https://dl.acm.org/doi/pdf/10.1145/3133896 |
genre |
Orca |
genre_facet |
Orca |
op_source |
Proceedings of the ACM on Programming Languages volume 1, issue OOPSLA, page 1-28 ISSN 2475-1421 |
op_rights |
http://www.acm.org/publications/policies/copyright_policy#Background |
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_ |
1799486975642697728 |