Skip to main content


Vectorization: SIMD Parallelism

SIMD stands for "Single Instruction Multiple Data," and is one of several approaches to parallelism found in modern high-performance computing.

Vector instructions are a primary example of SIMD in modern CPUs. SIMD vector instructions are exemplified by a single instruction (e.g. "vector add") issued on vector operands (e.g. (1,2,3,4), (5,6,7,8)) to produce vector results (e.g. (6, 8, 10, 12)).

SIMD: Single Instruction, Multiple Data
(Click to view video; move pointer aside to see captions)

As we will see in the hardware section later, SIMD vector instructions are executed in parallel within the hardware vector units found in CPUs and coprocessors. If each vector operand consists of N values, then the vector instruction will be applied to each of the N values of every operand simultaneously in parallel. For example, a single vector addition instruction on (1,2,3,4) and (5,6,7,8) would result in four computations occcuring in parallel: {(1+5), (2+6), (3+7), (4+8)}.