Single Program Multiple Data
Il Single Program Multiple Data è una tecnica di programmazione secondo il quale tutti i processi eseguono lo stesso programma, ognuno su dati diversi; la distinzione nelle esecuzioni, tra processi diversi, avviene differenziando il flusso del programma, in base al rank locale del processo.
È una particolare tecnica di programmazione in cui un singolo programma è eseguito da più processi contemporaneamente, ma ogni processo è in grado di poter operare su dati differenti. Nello stesso istante i processi possono eseguire sia la stessa istruzione che istruzioni diverse. Ovviamente il programma conterrà opportune istruzioni che permettono di eseguire solamente parti del codice e/o di operare su un sottoinsieme dei dati. Può essere realizzato mediante diversi modelli di programmazione, e tutti gli eseguibili partono contemporaneamente.