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 '60 e da allora è stato utilizzato in varie configurazioni. Qualsiasi processore in un sistema SMP può accedere ed eseguire il software da qualsiasi porzione della memoria condivisa. La popolarità di questa configurazione è cambiata nel corso dell'anno, poiché la tecnologia si è evoluta e i mercati sono cambiati, ma è ancora tra le forme più comuni di tecnologie multiprocessore.
SMP è nato nei primi anni '60 come un modo per connettere più processori su una connessione ad alta velocità e consentire loro di avere accesso 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 delle quali utilizzano una semplice barra trasversale per collegare due processori, mentre altre hanno impiegato interconnessioni più sofisticate tra un massimo di 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 di 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, offrendo a ciascuno la stessa qualità di accesso ad altro hardware del computer. Ciò significa che qualsiasi processore nel sistema può leggere ed eseguire istruzioni da programmi software indipendentemente da dove si trovino quei programmi 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, ciascun processore può eseguire un thread del programma, aumentando così ulteriormente le prestazioni complessive. Il software a livello di utente non deve essere modificato per funzionare su un sistema che supporta il multiprocessing simmetrico, ma il sistema operativo sottostante deve supportare la tecnologia.
La popolarità del multiprocessing simmetrico è diminuita e cresciuta nel corso degli anni mentre altre tecniche sono state sviluppate e sono state esplorate nuove architetture. La pubblicità sul possibile impatto della tecnologia sull'informatica è emersa nei primi anni '90; un certo numero di aziende, in particolare Sequent Computer Systems, hanno iniziato a specializzarsi nella costruzione di sistemi SMP di fascia alta. Sequent, acquisito da IBM nel 1999, è stato elogiato per i suoi progetti, ma non è mai stato in grado di competere efficacemente con i giganti del settore informatico. Le nuove tecniche di multiprocessing come l'accesso alla memoria non uniforme (NUMA) hanno parzialmente soppiantato SMP nei sistemi di fascia alta.
I produttori di computer hanno sperimentato negli anni un multiprocessing simmetrico nell'hardware di livello consumer; al di fuori del costoso hardware per appassionati, tuttavia, la maggior parte dei personal computer non dispone della tecnologia. Nuove tecniche per rendere i sistemi a CPU singola più efficienti, 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 computazionale.