Le macchine SIMD

Schema concettuale della struttura di una macchina SIMD

SIMD è l'acronimo di Single Instruction Multiple Data. Queste macchine (dette anche supercomputer) sono caratterizzate dal fatto di avere:

      • Un componente di controllo (che può essere assimilato al concetto di CPU dei normali Personal Computer).
      • Diversi PE (Processing Element) che eseguono computazione.

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:

      • MPP (Massively Parallel Processors): il numero dei componenti PE varia da 1024 a 65.536 (cioè da 1K a 64K). I PE devono essere collegati con una opportuna rete di interconnessione (inter-PE network).
      • Approccio CPU: quando si incorporano pochi PE (di solito 8) all’interno della CPU stessa. Per far questo bisogna ampliare l’ISA (Instruction Set Architecture) con istruzioni dedicate a dare direttive simultanee ai PE della CPU.

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:

      • Broadcast Net: per i bit di comando per istruire tutti i PE dell’array.
      • Reduction Net: per gestire gli esiti e controllare ciò che avviene all’interno dei singoli PE. Per far ciò serve un qualche meccanismo simile alla gestione delle interrupt request.

La classe di applicazioni utilizzabili con profitto su macchine SIMD sono quelle definite “Data Parallel” nelle quali si hanno due livelli di indipendenza:

      • Indipendenza fra i sottosistemi della struttura dati.
      • Indipendenza fra le operazioni da svolgere.

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.

Fonte: Appunti del corso universitario: "Reti di Calcolatori", Paolo Bettini