SIMD (single instruction, multiple data) applies one instruction to many data elements at once. Think of many workers repeating the same simple action across a batch; shared control coordinates the work. section 3.8
This design suits specific, repetitive computations but offers less versatility than MIMD, where processing units can run different instructions independently. GPUs are a familiar SIMD-style example. section 3.8 section 3.9
SIMD-style processing is useful when many similar operations can happen in parallel:
- Image and video processing, such as applying the same brightness change across image data. section 3.9
- Matrix addition and multiplication, where many cell operations are independent. section 3.9
- Machine learning, financial simulations, and scientific computing. section 3.9
Brightening an image
Applying a small brightness increase across an image repeats a simple operation over many data elements. A GPU can handle this kind of highly parallel task; a CPU is better suited to complex linear tasks. section 3.9
