Striving to Make Things Simple and Fast
summary
Shows the actual data structures and numbers behind Scala’s parallel collections: a constant-time switch dot.par enables fork‑join work‑stealing parallelism with near‑linear scaling to ~16 cores. Describes non-blocking concurrent hash tries that resize, avoid locks, and provide fast immutable snapshots for consistent analysis. Presents RRB (relaxed radix) trees that make vector concatenation and splits nearly constant time: indexing stays within ~40–70% of standard vectors while concatenation costs drop to roughly 2×–6× (worst cases larger), with low memory overhead.
AI-written summary · about
chapters (26)
- 0:00Introduction
- 3:14Eat the chocolate
- 9:46Parallel collections
- 12:01Scheduling
- 12:53Comprehensions
- 14:21Concurrent hash table
- 15:49Snap
- 16:36Typical Use Case
- 22:53Why 32 bits
- 25:13Summary
- 25:37Linear Arrangement
- 26:07Ropes
- 26:42Splits
- 27:19Linear indexing
- 27:49Btrees
- 28:46Indexing
- 31:19Linear Search
- 32:34RB Trees
- 33:43Concatenation
- 35:09Constant Time Log
- 35:31Constraints
- 39:07Splitters
- 39:47Counting Ages
- 40:24Performance Time
- 42:38Implementation
- 44:19Demo
related talks
50mFrom Concurrent to Parallel
41mParallel Programming, Fork Join, and Reducers
39mThe best multicore-parallelization refactoring you've never heard of
01h 01mFrom Concurrent to Parallel
48mConcurrency: It’s Harder (and Easier) Than You Think
44mConcurrency in Scala and on the JVM
01h 05mThink Parallel
01h 06mProject Lambda: Simplifying Concurrent Programming in Java SE 8
