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-...

Full description

Bibliographic Details
Published in:Proceedings of the ACM on Programming Languages
Main Authors: Clebsch, Sylvan, Franco, Juliana, Drossopoulou, Sophia, Yang, Albert Mingkun, Wrigstad, Tobias, Vitek, Jan
Other Authors: NSF, Swedish Research Council, FP7-ICT, Svenska Forskningsrådet Formas, EPSRC, Horizon 2020, ONR
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