Enabling the Rust Compiler to Reason about Fork/Join Parallelism via Tapir
Name
hilton-jhilton-meng-eecs-2024-thesis.pdf
Description
Thesis PDF
Size
752.47 KB
Format
Adobe PDF
Checksum (MD5)
d3a37afd0d04c4ac80f5bbfb24afe0da
Author(s)
Hilton, Jay
Advisor(s)
Schardl, Tao B.
Date Issued
May 2024
Publisher
Massachusetts Institute of Technology
Abstract
Rust + Cilk is an extension to the Rust language incorporating Cilk’s keywords for language level parallelism. The Rust + Cilk compiler leverages the Rust compiler’s static verification of data race freedom and the OpenCilk parallelism platform’s strong theoretical guarantees for performance of parallel programs. I compare Rust + Cilk to existing librarybased parallelism solutions in Rust such as Rayon, as well as to C programs parallelized with OpenCilk, based on performance and ergonomics. I find that Rust + Cilk exhibits marginally worse performance than Rayon, although I expect these differences are possible to bridge with further work. Additionally, Rust + Cilk has ergonomic advantages for some kinds of parallel programs. I outline further research that could make Rust + Cilk a more complete and performant system to further take advantage of the benefits language-based parallelism solutions can offer while statically verifying data race freedom.
MIT Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)
Copyright retained by author(s)
Persistent DSpace Link