Embarrassingly Parallel

An embarrassingly parallel problem splits into independent parallel tasks with little or no coordination between them.

Why does this matter?

Most parallelism pain comes from dependencies and shared state. When neither exists, parallel speedup is nearly linear and the implementation is trivial.

The canonical example (from L01) is Monte Carlo integration: each processor computes the contribution of a sub-range and results are summed at the end. Workers never need to talk to each other mid-computation.

Contrast with a linked list traversal, where each step depends on the previous pointer and can’t be split across threads.

Also called perfectly parallel, delightfully parallel, or pleasingly parallel.