The categorization of parallel hardware is based on the number of instruction streams and the number of data streams.
SISD: Single Instruction Stream, Single Data stream. A uniprocessor.
MIMD: Multiple Instruction streams, Multiple Data streams. A multiprocessor.
SPMD: Single Program, Multiple Data Streams. The conventional MIMD programming model, where a single program runs across all processors.
SIMD: Single Instruction stream, Multiple Data streams. The same instruction is applied to many data streams, as in vector processor.