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 parallelism in modern CPUs. For instance, the vector add instruction is a single instruction (add)
that acts on multiple data (vectors) to yield a vector of sums. Given the two vectors (1, 2, 3, 4)
and (5, 6, 7, 8)
, the vector result
(6, 8, 10, 12)
is produced in a single operation. This operation is illustrated in the diagram and linked video below.
As we will see in the hardware topic 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. In the above example, N=4, so a single vector addition instruction on (1, 2, 3, 4)
and (5 ,6, 7, 8)
results in the following four computations occurring in parallel: {(1+5), (2+6), (3+7), (4+8)}
.