Single Instruction stream, Multiple Data stream (SIMD) è un'architettura in cui un elevato numero di processori identici eseguono la stessa sequenza di istruzioni su insiemi diversi di dati[1]. I processori SIMD sono spesso usati dai supercomputer e con alcune varianti anche nei moderni microprocessori.
Il modello SIMD è composto da un'unica unità di controllo che esegue una istruzione alla volta controllando più ALU che operano in maniera sincrona. Ad ogni passo, tutti gli elementi eseguono la stessa istruzione scalare, ma ciascuno su un dato differente. Un elaboratore basato su questo modello è anche detto Array Processor (Processore vettoriale).
In passato venivano prodotti un numero elevato di dispositivi dedicati allo svolgimento di compiti specifici. Usualmente questi dispositivi erano DSP opportunamente programmati. La differenza fondamentale tra le istruzioni SIMD e i DSP è che questi sono dotati di un set di istruzioni completo e quindi sono in grado di svolgere teoricamente qualsiasi compito. Invece le istruzioni SIMD sono progettate per manipolare elevate quantità di dati in parallelo e per le usuali operazioni si appoggiano ad un altro insieme di istruzioni usualmente gestito dal microprocessore. Inoltre i DSP tendono a includere un certo numero di istruzioni dedicate ad elaborare tipi specifici di dati come possono essere i dati audio o video mentre le istruzioni SIMD vengono utilizzate per elaborare dati generici.