Home Knowledge Base Data Parallel Patterns

Data Parallel Patterns are the recurring algorithmic structures — map, reduce, scan, stencil, gather/scatter — that capture the fundamental ways data-parallel computations are expressed, providing reusable templates that map efficiently to GPUs, SIMD units, and distributed systems while abstracting away hardware-specific details.

Why Patterns Matter

Instead of programming each parallel algorithm from scratch, recognizing which pattern applies allows the programmer to use optimized library implementations (CUB, Thrust, TBB, MapReduce) that embody years of hardware-specific optimization. The pattern provides the structure; the library provides the performance.

Core Patterns

Composition

Real algorithms combine multiple patterns. Radix sort = map (extract digit) + scan (compute positions) + scatter (redistribute). K-nearest neighbors = map (compute distances) + reduce (find top-K). Recognizing the component patterns is the key to parallelizing complex algorithms.

Embarrassingly Parallel

The special case where the entire computation is a pure map with no inter-element dependencies. Each work unit is completely independent. Examples: ray tracing (independent per pixel), Monte Carlo simulation (independent per sample), parameter sweep. Linear speedup with processor count — the best-case scenario for parallelism.

Data Parallel Patterns are the periodic table of parallel computing — a small set of fundamental elements that combine to form every parallel algorithm, each with known performance characteristics and optimized implementations for every major hardware platform.

data parallel patternmap reduce parallelstencil computationembarrassingly parallelparallel pattern language

Explore 500+ Semiconductor & AI Topics

From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.