Parallel Programming in Rust: Techniques for Blazing Speed
summary
Claims concrete speedups by using Rayon parallel iterators for task‑parallel data processing, shows a small case fetching crate metadata (surprising tens of Rust crates) and profiles hotspots with Inferno flame graphs and perf. Demonstrates atomics, lock‑free queues and channel choices, CPU affinity via libc/ncpu, SIMD with portable_simd and explicit target/feature dispatch, and experiments with GPU kernels using rust‑cuda; shows which techniques required unsafe, which were easy wins, and when engineering effort outweighs the measured benefit.
AI-written summary · about
chapters (13)
- 0:00Parallel programming in Rust
- 1:19Concurrency vs parallelism vs asynchronicity
- 7:47Task-based data parallelism with Rayon
- 13:57CPU affinity and hardware optimizations
- 17:06Measuring performance with profiling tools
- 20:13Shared state vs message passing
- 28:15Lock-free algorithms and atomics
- 33:06SIMD instructions for data parallelism
- 39:12Portable SIMD optimizations
- 41:47Cache line alignment and memory
- 44:55GPU programming in Rust
- 48:16High-performance parallel Rust
- 50:31Q&A
related talks
25mRayon: Data Parallelism for Fun and Profit
53mRust: Reach Further!
20mThe status of parallel rustc
23m"The Current State and Future of Rust Compiler Performance"
16mEmpowering Fearless Data Engineering
56mReady for Rust
27mImproving Rust Performance Through Profiling and Benchmarking
36mPumping up Python modules using Rust
