SIMD è l'acronimo di Single Instruction Multiple Data. Queste macchine (dette anche supercomputer) sono caratterizzate dal fatto di avere:
Le istruzioni vengono svolte in parte dal componente di controllo ed in parte dai PE della macchina. Le macchine della famiglia SIMD vengono dette anche Array Processors.
Le macchine SIMD possono seguire due approcci:
Tutte le macchine SIMD sono caratterizzate dal fatto che quando arriva una direttiva, questa può essere svolta dagli n esecutori simultaneamente, ma su insiemi di dati diversi. Lo Speedup è quindi compreso tra 1 e n.
Il punto cruciale è la tecnica di data transfer fra gli input e l’array di processori. A tal proposito si hanno:
La classe di applicazioni utilizzabili con profitto su macchine SIMD sono quelle definite “Data Parallel” nelle quali si hanno due livelli di indipendenza:
Due esempi di applicazioni adatte a macchine SIMD sono: calcolo vettoriale che implica dati matriciali di grandi dimensioni. Processi algoritmici sulla struttura dati coincidenti con i processi algoritmici su parti della struttura dati (ad esempio Still-Image processing, Simulazione FiniteElementsModeling), calcoli per modelli meteo.