Reference Capabilities for Safe Parallel Array Programming
Beatrice \~A kerblom (Stockholm University, Sweden), Elias Castegren, (KTH Royal Institute of Technology, Sweden), Tobias Wrigstad (Uppsala, University, Sweden)

TL;DR
This paper introduces array capabilities, an extension of reference capabilities, to enable safe, deterministic parallel array operations on both primitive and non-primitive data, ensuring data-race freedom.
Contribution
It presents the novel concept of array capabilities, supporting concurrent array manipulation and formal guarantees of data-race freedom in parallel programming.
Findings
Array capabilities support safe parallel operations on arrays.
The formal calculus proves data-race freedom for well-typed programs.
Array capabilities enable flexible array manipulation like splitting and merging.
Abstract
The array is a fundamental data structure that provides an efficient way to store and retrieve non-sparse data contiguous in memory. Arrays are important for the performance of many memory-intensive applications due to the design of modern memory hierarchies: contiguous storage facilitates spatial locality and predictive access patterns which enables prefetching. Operations on large arrays often lend themselves well to parallelisation, such as a fork-join style divide-and-conquer algorithm for sorting. For parallel operations on arrays to be deterministic, data-race freedom must be guaranteed. For operations on arrays of primitive data, data-race freedom is obtained by coordinating accesses so that no two threads operate on the same array indices. This is however not enough for arrays of non-primitives due to aliasing: accesses of separate array elements may return pointers to the same…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
