Nylon (course project)
“like
rayonbut crappier”
nylon was my course project for CMU 15-418, Parallel Computer Architecture and Programming (Fall 2025). It is a simple implementation of a single-node, in-memory, parallel dataflow programming library in Rust, not dissimilar to rayon. It was born out of a combination of three not very well-advised ideas:
- I thought Rust was a cool language;
- I thought dataflow programming / declarative data-parallel programming was a cool paradigm;
- Both of those seemed to have something to do with parallel computing.
nylon has three layers: a work-stealing scheduler, a suite of generic data-parallel algorithms, and a miniature dataflow execution engine. It uses a standard iterator-like API and is capable of producing some speedups over sequential counterparts. The most significant difference between nylon and rayon is perhaps nylon’s ability to perform reduce/group-by-key, and joins.
This webpage is here because course policy mandated that each project has a publicly accessible webpage. In all likelihood, you want to read the final report, which is the only piece of text that has pedagogical value. It discusses the basic structure of a dataflow system and some considerations around related design choices.