Algorithms · Cluster

Parallel Algorithms

Work, span, and concurrency in algorithm design.

  1. 01 Work, Span, and the Bound on Parallel Execution Time How a computation DAG yields two numbers, work and span, and why their ratio rather than the processor count sets the achievable speedup. foundational · Dec 5, 2025
  2. 02 Reduction Trees and What Associativity Buys Why a reduction needs an associative operator to be reordered, how tree shape changes floating-point results, and what error bounds the shapes imply. foundational · Nov 8, 2024
  3. 03 Work Stealing: Per-Processor Deques and Why Thieves Take the Oldest Task How a work-stealing scheduler keeps locality by pushing and popping on one end of a deque while idle processors take from the other, and where the contention lands. foundational · Sep 14, 2023
  4. 04 Parallel Prefix Scan: Hillis-Steele Versus Blelloch Two scan algorithms with the same span class and different work, the up-sweep and down-sweep that make Blelloch work-optimal, and the arithmetic that decides between them. intermediate · Feb 12, 2026
  5. 05 Merge-Path Partitioning: Splitting Two Sorted Runs Without Sampling How binary search over the merge path cuts two sorted arrays into equal-sized pieces at the correct values, and why the split is exact rather than statistical. intermediate · Apr 15, 2025
  6. 06 Granularity and the Sequential Cut-Off How to size parallel tasks so that scheduling overhead stays below the work they contain, and how the optimum shifts with span, memory behaviour, and the runtime. intermediate · Apr 27, 2026
  7. 07 Amdahl, Gustafson, and the Fixed-Problem Fallacy Why the two scaling laws disagree, which quantity each holds constant, and how the choice of fixed time versus fixed problem size changes the predicted ceiling. intermediate · Nov 28, 2024
  8. 08 PRAM Variants and the Cost of Ignoring Memory What the EREW, CREW, and CRCW models permit, how work and depth carry over from the DAG, and why a model with free memory access mispredicts real parallel time. advanced · Mar 25, 2025
  9. 09 Data Races, Memory Models, and Where Parallel Algorithms Lose Determinism How relaxed memory ordering breaks the intuitive interleaving model, what the C and C++ memory model guarantees, and why race-free parallel code can still be non-deterministic. advanced · Oct 27, 2023
  10. 10 Supersteps and Message Bounds: Why Distributed Parallelism Costs More How the BSP model charges for latency and bandwidth per round, what the h-relation says about all-to-all traffic, and why matrix multiplication needs more memory per processor to avoid moving data. advanced · Mar 24, 2023