Throw random darts at a square with an inscribed circle. The fraction landing
inside the circle approaches π/4, so
π ≈ 4 × inside / total. No geometry — just counting. Every dart is
independent, so we can split them across "cores" and just add up the counts. That's embarrassingly
parallel.
Why this is in a parallel-computing course: because the darts never interact, throwing 10 million of them splits perfectly across cores — each core throws its slice and keeps a local "inside" count, then we sum the counts at the end (one reduction, Session 10). Near-perfect linear speedup, essentially zero communication. Contrast this with a weather simulation, where every cell must exchange data with its neighbors every single step. Monte Carlo is the friendliest possible workload for a parallel machine — it's how finance prices options and physicists model particle collisions.