Abstract
Most functional language runtime systems context switch between executing user code and a non-concurrent garbage collector (GC), exposing GC latency to overall wall-clock time. Recent concurrent software-based GCs reduce these latencies, but wall-clock times are instead increased due to their synchronisation and write barrier overheads, by as much as 21%. This GC overhead is exacerbated further for pure non-strict languages like Haskell, due to the abundance of allocations for storing immutable data structures and closures. This paper presents Cloaca, an FPGA-based hardware implementation of a concurrent, hybrid GC for a pure non-strict functional language. It combines mark-and-sweep tracing and one-bit reference counting. It traces live heap data using hardware-level synchronisation and write barriers, without damaging graph reduction performance. To ensure the correctness of Cloaca, three invariants of its Haskell-based implementation are verified with property-based testing. Despite GHC running on an Intel i7 CPU operating at a x25 higher clock frequency than Cloaca; Cloaca takes, on average, 4.1% of GHC's GC wall-clock time across 14 of 15 benchmarks.
| Original language | English |
|---|---|
| Title of host publication | Haskell 2024: Proceedings of the 17th ACM SIGPLAN International Haskell Symposium |
| Publisher | Association for Computing Machinery |
| Pages | 41-54 |
| Number of pages | 14 |
| ISBN (Print) | 9798400711022 |
| DOIs | |
| Publication status | Published - 28 Aug 2024 |
| Event | 17th ACM SIGPLAN International Haskell Symposium 2024 - Milan, Italy Duration: 6 Sept 2024 → 7 Sept 2024 |
Conference
| Conference | 17th ACM SIGPLAN International Haskell Symposium 2024 |
|---|---|
| Abbreviated title | Haskell '24 |
| Country/Territory | Italy |
| City | Milan |
| Period | 6/09/24 → 7/09/24 |
Keywords
- Functional languages
- Functional verification
- High-level language architectures
- Memory management
ASJC Scopus subject areas
- Software
- Human-Computer Interaction
- Computer Vision and Pattern Recognition
- Computer Science Applications
- Computer Graphics and Computer-Aided Design
Fingerprint
Dive into the research topics of 'Cloaca: A Concurrent Hardware Garbage Collector for Non-strict Functional Languages'. Together they form a unique fingerprint.Datasets
-
Dataset for "Cloaca: A Concurrent Hardware Garbage Collector for Non-Strict Functional Languages"
Ramsay, C. (Creator) & Stewart, R. J. (Creator), Heriot-Watt University, 17 Jul 2024
DOI: 10.17861/68b8a67f-2684-47fa-bcec-1f97dcb98446
Dataset