Enter paradis — A new chapter in Rust's parallelism story | Andreas Longva

submited by
Style Pass
2024-06-08 19:00:06

Rust is a great language for data-parallel problems with relatively simple parallel access patterns. It particularly excels when the data can be split up into contiguous chunks. On the other hand, things can get messy for parallel access patterns that are non-contiguous or less structured.

In this post, I will show you an uglier side of parallelism in Rust. Thankfully, it is not a fundamental flaw of the language — but we are currently missing key concepts to solve this type of problem in a principled way. Together, we will walk through a series of steps that will lead us to a fundamental low-level abstraction for parallel data structure access.

This abstraction is the keystone underpinning paradis, a new library for parallel processing with disjoint index sets. paradis simplifies writing parallel programs that are currently awkward to correctly express in Rust. In this blog post you will get a taste of both its low-level foundations and high-level functionality.

I am very interested in community feedback on the concepts that I cover here, on the library, and this blog post itself. Please get in touch!

Leave a Comment