Multiprocessore: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
aggiunte alcune informzioni nella descrizione iniziale
fix
 
(18 versioni intermedie di 10 utenti non mostrate)
Riga 1:
{{F|Informaticamicroprocessori|marzo 2013}}
 
Un sistema '''multiprocessore''' (in [[Lingua inglese|inglese]]: ''multiprocessing'') è un sistema di elaborazione con più [[processore|processori ]]<ref name="cs.vu.nl">http://www.cs.vu.nl/~ast/books/mos2/sample-8.pdf</ref> e più precisamente ''un numero di [[unità di elaborazione centrale]] collegate insieme per consentire l'[[calcolo parallelo|elaborazione parallela'']].<ref name="cs.vu.nl" /><ref> https://www.collinsdictionary.com /dictionary/english/multiprocessor</ref><ref>http{{Cita web |url=https://wwwen.csoxforddictionaries.vucom/definition/multiprocessor |titolo=Copia archiviata |accesso=27 novembre 2018 |dataarchivio=4 novembre 2018 |urlarchivio=https://web.nlarchive.org/~astweb/books20181104010320/mos2https:/sample-8/en.pdfoxforddictionaries.com/definition/multiprocessor |urlmorto=sì }}</ref> L'obiettivo principale dell'utilizzo di un multiprocessore è quello di aumentare la velocità di [[esecuzione (informatica)|esecuzione]] di un sistema, o nei sistemi [[Tolleranza ai guasti|tolleranti ai guasti]] operanti in [[calcolo parallelo|parallelo]], in cui l'[[Elaborazione dati|elaborazioni]] di un processore vengono replicate e controllate da uno o più processori (doppia, tripla e quadrupla ridondanza), garantire l'integrità e l'esattezza dei [[dati]] e la continuità di funzionamento ([[ridondanza (ingegneria)|ridondanza]] di processori).<ref>https://enwww.oxforddictionariestechopedia.com/definition/8474/multiprocessor</ref>.
 
== Descrizione ==
L'obiettivo principale dell'utilizzo di un multiprocessore è quello di aumentare la velocità di esecuzione di un sistema, o nei sistemi ''fault tolerant'' (tolleranza agli errori) operanti in [[calcolo parallelo|parallelo]], in cui l'[[Elaborazione dati|elaborazioni]] di un processore vengono replicate e controllate da un o più processori (doppia, tripla e quadrupla ridondanza), garantire l'integrità e l'esattezza dei [[dati]] e la continuità di funzionamento (ridondanza di precessori) <ref> https://www.techopedia.com/definition/8474/multiprocessor </ref>.
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''multiprocessor''), o [[Itanium 2]] MP e gli [[Advanced Micro Devices|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 [[programma (informatica)|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 [[Computer cluster|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.
<br>
 
Nei multiprocessori diverse [[CPU]] condividono una [[memoria (informatica)|memoria]] comune:
== Tipi di sistemi multiprocessore ==
* leLe CPU devono coordinarsi per accedere alla memoria;.
* esistonoEsistono diversi schemi di collegamento tra CPU e memoria; quello più semplice prevede un [[Bus (informatica)|bus]] condiviso (vedi [[Architetture di sistemi multiprocessore]]).
 
Nel corso del [[2005]] sia [[Intel]] che [[Advanced Micro Devices|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 consentivano, hanno cominciato ad intraprendere la nuova strada del processore ''[[dual core]]'' che è una sorta di sistema biprocessore un po' particolare. Il [[Socket (elettronica)|''socket'']] sulla [[motherboardscheda madre]] rimane uno solo, ma sul [[Package (elettronica)|''package'']] vengono montati due [[core (Hardware)|''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 (informatica)|bus]] tra i due ''core''.
Ci sono molti tipi di sistemi multiprocessore. Questi possono essere classificati in base alle seguenti caratteristiche:
 
Combinando processori ''dual core'' con motherboardschede madri dotate di due ''socket'' si avranno in praticadunque 4quattro ''core'' fisici di elaborazione; questo, secondo le definizioni iniziali rimane un sistema biprocessore, anche se all'atto pratico è come se fosse un "quadriprocessore".
: * Multiprocessore "Loosely coupled" (ad accoppiamento largo)
: * Multiprocessore "Tightly coupled" (accoppiamento stretto)
: * Multiprocessore eterogeneo
: * Multiprocessore omogeneo
: * Multiprocessore con memoria condivisa distribuita
: * Sistema UMA
: * Sistema cc-NUMA
: * Sistema ibrido - memoria condivisa per dati globali, memoria locale per dati locali.
 
=== Sfruttamento da parte dei sistemi operativi ===
Ci sono diverse architetture di connessione di questi sistemi dipendenti dal tipo di sistema - per la descrizione vedi [[Architetture di sistemi multiprocessore]].
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.<ref>[http://it.wingwit.com/sistemi/windows-xp/236852.html Il numero di processori in un sistema in grado di supportare Windows XP]</ref> Intel ha già dimostrato un sistema Itanium 2 [[Montecito (processore)|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".
 
=== Tipi di sistemi multiprocessore ===
==Descrizione==
{{vedi anche|Architetture di sistemi multiprocessore}}
 
Ci sono molti tipi di sistemi multiprocessore. Questi possono essere classificati in base alle seguenti caratteristiche:
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 [[Advanced Micro Devices|AMD]] [[Athlon MP]] e [[Opteron]].
: * Multiprocessore "Loosely coupled" (ad accoppiamento largo)
 
: * Multiprocessore "Tightly coupled" (accoppiamento stretto)
Per sfruttare i vantaggi di un sistema multiprocessore, al pari di uno [[biprocessore]], è necessario che anche il [[sistema operativo]] e i [[programma (informatica)|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.
: * Multiprocessore eterogeneo
 
: * Multiprocessore omogeneo
Spesso è necessario utilizzare più processori, gruppi di processori e [[Computer cluster|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.
: * Multiprocessore con memoria condivisa distribuita
 
: * Sistema UMA
Nei multiprocessori diverse [[CPU]] condividono una [[memoria (informatica)|memoria]] comune:
: * Sistema cc-NUMA
* le CPU devono coordinarsi per accedere alla memoria;
: * Sistema ibrido - memoria condivisa per dati globali, memoria locale per dati locali.
* esistono diversi schemi di collegamento tra CPU e memoria; quello più semplice prevede un [[Bus (informatica)|bus]] condiviso (vedi [[Architetture di sistemi multiprocessore]]).
 
Nel corso del [[2005]] sia [[Intel]] che [[Advanced Micro Devices|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 consentivano, hanno cominciato ad intraprendere la nuova strada del processore [[dual core]] che è una sorta di sistema biprocessore un po' particolare. Il [[Socket (elettronica)|socket]] sulla [[motherboard]] rimane uno solo, ma sul [[Package (elettronica)|package]] vengono montati due [[core (Hardware)|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 (informatica)|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 sistemi operativi ==
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.<ref>[http://it.wingwit.com/sistemi/windows-xp/236852.html Il numero di processori in un sistema in grado di supportare Windows XP]</ref>
 
Intel ha già dimostrato un sistema Itanium 2 [[Montecito (processore)|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 ==
<references />