Che cos’è il multiprocessing simmetrico?

Il multiprocessing simmetrico (SMP) è un tipo di architettura di computer in cui due o più unità di elaborazione centrale (CPU) condividono un collegamento comune alla stessa memoria. È stato originariamente sviluppato negli anni ‘1960 e da allora è stato utilizzato in varie configurazioni. Qualsiasi processore in un sistema SMP può accedere ed eseguire software da qualsiasi porzione della memoria condivisa. La popolarità di questa configurazione ha oscillato nel corso dell’anno man mano che la tecnologia si è evoluta e i mercati sono cambiati, ma è ancora tra le forme più comuni di tecnologie multiprocessore.

SMP è nato nei primi anni ‘1960 come un modo per collegare più processori su una connessione ad alta velocità e consentire loro di accedere allo stesso set di moduli di memoria. Poiché la memoria è condivisa tra i processori, l’hardware SMP può essere più economico di altre tecnologie che possono dedicare memoria a ciascun processore. Sono state utilizzate molte varianti di questa configurazione, alcune utilizzando una semplice barra trasversale per collegare due processori, mentre altre impiegavano interconnessioni più sofisticate tra ben 32 processori. Qualsiasi sistema multiprocessore simmetrico può essere frenato dalla velocità e dalla capacità di questa interconnessione; un sistema con 32 processori non sarà necessariamente 32 volte più veloce perché il collegamento comune tra questi processori e la memoria del sistema può diventare congestionato.

Un vantaggio chiave che il multiprocessing simmetrico ha rispetto ad altre tecniche è che un sistema SMP tratta più o meno tutti i suoi processori allo stesso modo, dando così a ciascuno la stessa qualità di accesso all’altro hardware del computer. Ciò significa che qualsiasi processore nel sistema può leggere ed eseguire istruzioni da programmi software indipendentemente da dove tali programmi risiedono nella memoria del computer. Molti programmi software sono ora suddivisi in blocchi più piccoli noti come thread; quando questi programmi vengono eseguiti su un sistema SMP, ogni processore può eseguire un thread del programma, aumentando ulteriormente le prestazioni complessive. Il software a livello di utente non deve essere modificato per essere eseguito su un sistema che supporta il multiprocessing simmetrico, ma il sistema operativo sottostante deve supportare la tecnologia.

La popolarità del multiprocessing simmetrico è diminuita e aumentata nel corso degli anni man mano che sono state sviluppate altre tecniche e sono state esplorate nuove architetture. La pubblicità sul possibile impatto della tecnologia sull’informatica è emersa nei primi anni ‘1990; un certo numero di aziende, in particolare Sequent Computer Systems, iniziarono a specializzarsi nella costruzione di sistemi SMP di fascia alta. Sequent, che è stata acquisita da IBM nel 1999, è stata elogiata per i suoi progetti, ma non è mai stata in grado di competere efficacemente con i giganti dell’industria informatica. Le nuove tecniche di multiprocessing come l’accesso alla memoria non uniforme (NUMA) hanno parzialmente soppiantato l’SMP nei sistemi di fascia alta.

I produttori di computer hanno sperimentato il multiprocessing simmetrico nell’hardware di livello consumer nel corso degli anni; al di fuori del costoso hardware per appassionati, tuttavia, la maggior parte dei personal computer non dispone della tecnologia. Nuove tecniche per rendere più efficienti i sistemi a CPU singola, come il multithreading simultaneo o “hyperthreading”, insieme all’aumento della tecnologia multicore hanno aumentato le prestazioni dei computer senza il costo aggiuntivo di SMP. È tuttavia possibile combinare queste tecnologie e i computer desktop più potenti possono includere più processori multicore collegati tramite SMP, creando così un sistema con enormi quantità di potenza di calcolo.