Single Instruction, Multiple Data is een berekeningsmodel binnen de wereld van het gedistribueerd programmeren. In dit model wordt een berekening uitgevoerd op een systeem met een enkele processor die toegang heeft tot meerdere geheugens (of in ieder geval meerdere bronnen van data).

Bij desktop-processoren is dit systeem voor het eerst in 1997 geïntroduceerd met de Pentium MMX in de MMX instructieset voor het verwerken van integer-data. Later werden de x86-instructiesets voor 32- en 64-bit processoren uitgebreid met een aantal SSE instructiesets voor de parallelle verwerking van floating-point-data. Dankzij deze instructieset is het niet langer nodig om ieder bewerkbaar stuk data in een apart register op te slaan maar kunnen verschillende data (van hetzelfde type) naast elkaar in één register worden weggeschreven en tegelijk bewerkt worden, waardoor de bewerkingssnelheid aanmerkelijk toeneemt. Voorwaarde is wel dat op alle blokjes data dezelfde bewerking moet worden uitgevoerd, anders wordt werk verzet dat niet gebruikt wordt en vindt geen versnelling van de uitvoering van een programma plaats.