Parallel Programming, Fork Join, and Reducers
summary
Shows that Clojure reducers plus Java fork/join turn a 10 million-item map/filter/reduce into 7× faster on a quad‑core by fusing operations (no intermediate collections) and using 512-element tiles by default. Explains the work/span model to predict theoretical speedup, describes thread pools, tiling, over‑decomposition for parallel slack, and fork/join work‑stealing. Gives concrete rules: pick coarse enough tasks to amortize parallel overhead, overdecompose for load balancing, and tune base case size when datasets are small.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 2:35Why parallel programming
- 5:00Concurrency vs parallelism
- 9:05Performance metrics
- 11:13Performance strategies
- 13:34Data parallelism
- 15:17Workspan model
- 20:14Thread management
- 24:16Task decomposition
- 30:29Fork join framework
- 34:41Q&A and recap
related talks
50mFrom Concurrent to Parallel
01h 01mFrom Concurrent to Parallel
39mThe best multicore-parallelization refactoring you've never heard of
01h 12mData parallelism from a multicore perspective
31mClojure Parallelism Beyond Futures
49mStriving to Make Things Simple and Fast
01h 06mProject Lambda: Simplifying Concurrent Programming in Java SE 8
01h 03mUnleash Your Data with Clojure: Using Transducers and Sequences
