liveBook · Manning

MIMD architecture

As explained in Grokking Concurrency

MIMD (multiple instruction, multiple data) is a parallel computer architecture in which multiple processing units execute different instructions on different data.

Imagine a busy workshop where several workers handle different jobs at once: one assembles a part, another checks measurements, and a third packages the result. MIMD architecture works similarly, allowing multiple processing resources to execute different instructions on different data. section 3.8

Each processing resource has its own control unit, so the system is not limited to one shared instruction. MIMD can combine multiple cores, CPUs, or machines, making it versatile for simultaneous, different tasks. section 3.8

MIMD differs from more specialized parallel designs in several practical ways:

  • Unlike SIMD, it allows processing resources to execute different instructions independently. section 3.8
  • It appears in modern multicore PCs, multiprocessors, and distributed clusters. section 3.10 section 3.8
  • Its broad instruction set supports complex, multipurpose work rather than only repetitive operations. section 3.8 section 3.9

CPU or GPU?

A standard CPU uses MIMD and is suited to complex linear tasks because its cores are fast and support many instructions. A GPU uses a SIMD-like design with many slower cores, making it effective for repetitive, highly parallel work such as image processing, matrix operations, machine learning, and financial simulations. section 3.9

Use the architecture taxonomy figure to compare MIMD with the other instruction-and-data patterns. section 3.8

Use the CPU-versus-GPU figure to connect MIMD’s versatility with the contrasting specialization and parallelism of GPUs. section 3.9

How Grokking Concurrency covers it

How deep it goes
Defines independent control units, contrasts MIMD with SIMD, and stops short of implementation details or programming techniques.
Examples
Uses multicore PCs, multiprocessors, distributed clusters, CPUs, GPUs, image processing, matrix operations, and machine learning.
What you can do after
Evaluate whether versatile CPU-based MIMD or massively parallel GPU processing better matches a computational workload.
How it connects
Connects MIMD with Flynn’s taxonomy, SIMD, CPUs, GPUs, multicore processors, multiprocessors, and distributed clusters.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Grokking Concurrency. The section links point to the parts of the book it draws on.