Multiprocessore

sistema di elaborazione equipaggiato con due o più processori operanti in parallelo


(vedi anche Sistema multiprocessore simmetrico)

In elettronica con il termine multiprocessore si intende un sistema di elaborazione (computer, workstation, server) equipaggiato con 2 o più processori operanti in parallelo in cui le elaborazioni di un processore vengono replicate e controllate da un processore gemello, per garantire l'integrità e l'esattezza dei dati.

Descrizione

Inizialmente questo avveniva solo sui sistemi che chiedevano un'elevata potenza di calcolo, come quelli che dovevano operare su database di grandi dimensioni o eseguire calcoli molto complessi di simulazione o in ambienti dove le informazioni sono di importanza vitale. Non a caso gli unici processori che supportano tale modalità sono quelli espressamente progettati per il settore server, come gli Intel Xeon MP (multi processor), o Itanium 2 MP e gli AMD Athlon MP e Opteron.

Per sfruttare i vantaggi di un sistema multiprocessore, al pari di uno biprocessore, è necessario che anche il sistema operativo e i programmi siano realizzati in maniera da utilizzare le maggiori risorse offerte. In pratica, in fase di programmazione è necessario "parallelizzare" il codice in modo che non si abbiano situazioni in cui l'applicazione "vede" solo uno dei processori saturandolo e lasciando inutilizzati tutti gli altri.

Spesso è necessario utilizzare più processori, gruppi di processori e cluster. Nel caso di basi di utenti molto ampie e diffuse, i gruppi di più processori e le varie istanze del database possono anche essere geograficamente dispersi.

Nei multiprocessori diverse CPU condividono una memoria comune:

  • le CPU devono coordinarsi per accedere alla memoria;
  • esistono diversi schemi di collegamento tra CPU e memoria; quello più semplice prevede un bus condiviso.

Nel corso del 2005 sia Intel che AMD sono giunti ad un punto in cui non riescono più ad aumentare la frequenza del clock dei propri processori (a causa dell'eccessivo consumo e produzione di calore) e quindi, dato che ormai i processi di miniaturizzazione lo consentono, hanno cominciato ad intraprendere la nuova strada del processore dual core che è una sorta di sistema biprocessore un po' particolare. Il socket sulla motherboard rimane uno solo, ma sul package vengono montati due core identici, che vengono visti dal sistema operativo come due core "fisici", quindi quasi come se fosse un sistema biprocessore tradizionale. In realtà questo non è propriamente un sistema biprocessore, considerando che un sistema dual core condivide lo stesso bus tra i due core.

Combinando processori dual core con motherboard dotate di due socket si avranno in pratica 4 core fisici di elaborazione; questo, secondo le definizioni iniziali rimane un sistema biprocessore, anche se all'atto pratico è come se fosse un "quadriprocessore".

Sfruttamento da parte dei SO

Ogni sistema operativo gestisce in modo differente le potenzialità dei sistemi multi-processore, in alcuni casi questa possibilità è limitata dalle licenze e in alcuni casi anche dalle caratteristiche del software.[1]

Intel ha già dimostrato un sistema Itanium 2 Montecito (processore dual core) composto da 4 processori. Moltiplicando il numero di CPU per il numero di core di ciascuna, e considerando che ogni core implementa la tecnologia Hyper-Threading, il sistema operativo vedeva ben 16 processori "logici".

Note

Voci correlate

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica