Parallelism in a Region Inference Context

Research output: Contribution to journalJournal articleResearchpeer-review

Documents

  • Fulltext

    Final published version, 345 KB, PDF document

Region inference is a type-based program analysis that takes a non-Annotated program as input and constructs a program that explicitly manages memory allocation and deallocation by dividing the heap into a stack of regions, each of which can grow and shrink independently from other regions, using constant-Time operations. Whereas region-based memory management has shown useful in the contexts of explicit region-based memory management, and in particular, in combination with parallel execution of code, combining region inference with techniques for higher-order parallel programming has not been investigated. In this paper, we present an implementation of a fork-join parallel construct suitable for a compiler based on region inference. We present a minimal higher-order language incorporating the parallel construct, including typing rules and a dynamic semantics for the language, and demonstrate type soundness. We present a novel effect-based region-protection inference algorithm and discuss benefits and shortcomings of the approach. We also describe an efficient implementation embedded in the MLKit Standard ML compiler. Finally, we evaluate the approach and the implementation based on a number of parallel benchmarks, and thereby demonstrate that the technique effectively utilises multi-core architectures in a higher-order functional setting.

Original languageEnglish
Article number142
JournalProceedings of the ACM on Programming Languages
Volume7
Issue numberPLDI
Pages (from-to)884-906
DOIs
Publication statusPublished - 2023

Bibliographical note

Publisher Copyright:
© 2023 Owner/Author.

    Research areas

  • Memory Management, Parallelism, Region Inference

Number of downloads are based on statistics from Google Scholar and www.ku.dk


No data available

ID: 358550150