Use every CPU core to speed up data work — and measure the real gain. Understand the GIL and why data pipelines use processes not threads, drive a multiprocessing Pool, apply the map-reduce pattern, process partitions in parallel without paying serialization costs, and watch speedup plateau exactly as Amdahl's law predicts — all on the real NYC taxi data.
Welcome to Parallel Processing, the fifth module — where your pipeline stops using one CPU core and starts using all of them. Everything so far ran on a single core: correct, memory-lean, but leaving most of your machine idle. A modern laptop has eight or ten cores; a data-engineering job that ignores them is running at a fraction of its potential.
This module is honest about when parallelism helps. You’ll learn why Python’s Global Interpreter Lock means threads give almost no speedup for CPU-bound work, while separate processes genuinely run in parallel. You’ll drive a multiprocessing Pool, structure work as map-reduce (compute partial results per partition, then combine them), and sidestep the biggest trap — the cost of serializing large data to workers — by having each worker read its own partition. Along the way you’ll measure everything, because the speedup is never the number of cores: it plateaus, exactly as Amdahl’s law predicts.
Start with Lesson 1, where the same real computation runs flat across threads and nearly four times faster across processes.
Complete all 5 lessons to finish the Parallel Processing module.