Quando si incontra una barriera infrangibile, cosa fai? Il multiprocessing simmetrico è un classico esempio di come gestire il problema aggirando la barriera piuttosto che tentare di sfondarla. La barriera tecnologica, in questo caso, è il processore del computer. Sebbene la tecnologia della CPU sia in continua evoluzione, diventando più veloce e più potente, non cresce abbastanza velocemente per tenere il passo con le nostre esigenze informatiche. Se non si riesce a sfondarlo, come si fa a girarlo? La risposta è aggiungere un secondo processore, o un terzo, o dieci o cento. Il multiprocessing simmetrico è l';architettura del computer che consente a un computer di suddividere compiti diversi tra più processori lavorando all';unisono.
Mod-29 Lec-41 Cluster, Grid e Cloud Computing
In multiprocessing simmetrico, o SMP, due o più processori agiscono in modo indipendente, ma condividono la condivisione del banco di memoria. Quando si utilizzano processori con più di un core, ciascun core funge da processore separato. Ogni processore (o core) può essere assegnato a qualsiasi processo o thread e può passare le attività avanti e indietro tra i diversi processori per il bilanciamento del carico. L';architettura SMP è più utile per i sistemi che eseguono più programmi contemporaneamente, poiché a ciascun programma può essere assegnato un proprio processore dedicato.
Ovviamente, è necessario disporre di un sistema operativo compatibile con SMP per poter sfruttare appieno i processori multipli. Senza uno, un computer multiprocessore si comporterebbe come un sistema uniprocessore, che esaurisce una CPU mentre gli altri rimangono inutilizzati.
I moderni sistemi SMP entry-level (che oggigiorno includono PC e laptop domestici) hanno spesso un solo processore con più core, i più popolari sono le serie Intel Xeon, Pentium D e Core Duo e le famiglie di processori AMD Athlon64 e Operton. I server entry-level utilizzano anche CPU, insieme alla famiglia UltraSPARC di processori multicore di Sun Microsystems. I server midrange di solito contengono diversi processori multicore, il più delle volte tra quattro e otto.
I server di fascia alta hanno sedici o più processori multicore. Tuttavia, per lungo tempo la potenza di elaborazione dei server di fascia alta è stata bloccata da un';altra barriera indistruttibile: la limitazione dell';indirizzamento della memoria fisica di 64 Gigabit. Lo sviluppo dell';indirizzamento della memoria a 64 bit circa cinque anni fa ha aggirato questa barriera. Il processore Intel Xeon EM64T, AMD64 Operton di AMD e i processori SPARC64 di Sun sono ora in grado di eseguire l';indirizzamento a 64 bit.
I server Enterprise di classe M di Sun Microsystems che utilizzano i processori SPARC64 VII sono buoni esempi della potenza di un sistema SMP. Il più potente dei server Sun di fascia alta è l';Enterprise M9000, che può essere equipaggiato con un massimo di 64 processori. Se combinato con il processore SPARC64 VII di Sun, una CPU quad core, questo server può utilizzare efficacemente 256 core indipendenti di elaborazione indipendenti. Infatti, nel maggio 2008, un server Sun Enterprise M9000 ha stabilito un record mondiale di prestazioni nel benchmark di data warehouse TPC-H al fattore di scala 1 Terabyte utilizzando un database Oracle.
Per ora, la barriera indistruttibile della velocità del processore è stata aggirata. La combinazione di processori multicore, indirizzamento della memoria a 64 bit e multiprocessing simmetrico consente che ciò accada. La prossima barriera tecnologica che incontreremo è il limite di indirizzamento della memoria fisica per i processori. Ma con un';architettura a 64 bit in grado di indirizzare fino a 16 ExaBits di memoria, questa non è una barriera contro cui dovremmo imbatterci presto.