Computer cluster: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Aggiungi 2 libri per la Wikipedia:Verificabilità (20250410)) #IABot (v2.0.9.5) (GreenC bot |
|||
(80 versioni intermedie di 38 utenti non mostrate) | |||
Riga 1:
[[File:MEGWARE.CLIC.jpg|thumb|
In [[informatica]] un '''computer cluster''', o più semplicemente un '''cluster''' (dall'inglese ''grappolo''), è un insieme di [[computer]] connessi tra loro tramite una [[rete telematica]]. Lo scopo di un cluster è quello di distribuire una [[elaborazione dati|elaborazione]] molto complessa tra i vari computer componenti il cluster. In sostanza, un problema che richiede molte elaborazioni per essere risolto viene scomposto in sottoproblemi separati i quali vengono risolti in [[calcolo parallelo|parallelo]]. Questo ovviamente aumenta la [[potenza di calcolo]] del sistema e/o garantendo alta [[disponibilità]] di servizio a prezzo di un maggior costo e complessità di gestione dell'infrastruttura.▼
▲In [[informatica]] un '''computer cluster''', o più semplicemente un '''cluster''' (dall'[[Lingua inglese|inglese]] ''grappolo''), è un insieme di [[computer]] connessi tra loro tramite una [[rete telematica]]. Lo scopo di un cluster è
==Descrizione==▼
i vari computer risultano come una singola risorsa computazionale e le varie componenti sono risorse dedicate al funzionamento dell'insieme; il ''server cluster'' è quindi un [[server]] ad altissime prestazioni poiché, invece di gravare su un'unica macchina ''standalone'', suddivide il carico di lavoro (quindi, ad esempio, funzioni di [[mail server]], [[web server]], [[database server]] e [[file server]]) su più macchine venendo ad essere di fatto una forma di [[sistema distribuito]].▼
== Storia ==
Attualmente, la ''clusterizzazione'' consiste nel connettere, meglio via [[fibra ottica]], X server fisici, anche di tipo [[Blade server|blade]], che condividono Y unità di [[storage]], possibilmente dotati di dischi [[Unità a stato solido|SSD]], il tutto attraverso [[switch]] prestazionali, e di erogare agli utenti i servizi necessari sottoforma di Z istanze virtuali, ivi comprese risorse in remoto. Questa è la tipica situazione della logica [[Cloud computing|cloud]] come anche delle reti distribuite geograficamente (si pensi alle sedi dislocate sul territorio di un'impresa o un ente che ovviamente devono avere un'unica rete aziendale). Logicamente, le due situazioni non sono disgiunte: è ormai normale che una rete aziendale multisede utilizzi il cluster comprendendo ''anche'' risorse in cloud. Appositi e complessi [[software]] di virtualizzazione e di [[networking]] permettono all'administrator di gestire ottimamente il consolidamento e operare automaticamente il bilanciamento, risultando di fatto indispensabili nel caso frequente di marche e modelli diversi dell'[[hardware]] di rete da integrare nonché dei diversi sistemi operativi server (___domain controller, servizi di rete, programmi applicativi).▼
La storia del calcolo cluster è riassunta nel modo migliore in una nota in ''In Search of Clusters'' di Greg Pfister:▼
{{Citazione|Praticamente ogni dichiarazione rilasciata dalla [[Digital Equipment Corporation|DEC]] che menziona i cluster dice: ''DEC, che ha inventato i cluster...''. Non li ha inventati neanche IBM. Gli utenti hanno inventato i cluster, dal momento che non potevano portare avanti tutto il loro lavoro su un solo computer, o necessitavano di un backup. La data dell'invenzione è sconosciuta, ma penso che sia durante gli anni '60, o anche alla fine dei '50.}}▼
Esistono tre tipi di cluster (i primi due sono i più diffusi):▼
La base della tecnologia del calcolo cluster inteso come il compiere un lavoro qualsiasi parallelamente fu discutibilmente introdotta da [[Gene Amdahl]] della [[IBM]], che nel 1967 pubblicò un articolo con quella che sarebbe stata considerata la base del calcolo parallelo: la [[Legge di Amdahl]], che descrive matematicamente l'aumento di prestazioni che si può ottenere compiendo un'operazione in una architettura in parallelo.▼
* ''Fail-over Cluster'': il funzionamento delle macchine è continuamente monitorato e quando uno dei due [[host]] smette di funzionare un'altra macchina subentra in attività. Lo scopo è garantire dunque un servizio continuativo garantendo cioè alta [[disponibilità]] di servizio grazie all'alta [[affidabilità]] dovuta alla [[fault tolerance|tolleranza ai guasti]] del sistema cluster per via della [[ridondanza (ingegneria)|ridondanza]] di apparati;▼
L'articolo scritto da Amdhal definisce le basi ingegneristiche sia per il calcolo multiprocessore che per il calcolo cluster. la differenza significativa tra i due sta nel fatto che le comunicazioni interprocessore sono supportate all'interno del computer (ad esempio con un bus o rete di comunicazione interna adattata)
Di conseguenza la storia dei primi computer cluster è più o meno direttamente inclusa nella storia delle prime reti, dato che uno dei primi motivi per lo sviluppo di una rete è stata la possibilità di collegare fra loro risorse di calcolo, di fatto creando un cluster di computer.▼
Le reti a [[commutazione di pacchetto]] furono inventate concettualmente dalla società [[RAND]] nel [[1962]]. Utilizzando il concetto di una rete a commutazione di pacchetto, il progetto [[ARPANET]] riuscì nella creazione nel [[1969]] di quello che era forse il primo cluster di computer basato su una rete commerciale collegando quattro diversi centri di calcolo (ognuno dei quali era quasi un "cluster", ma probabilmente non un cluster commerciale).▼
Il progetto ARPANET si sviluppò quindi come [[Internet]], che può essere considerata la madre di tutti i computer cluster; Internet raffigura il paradigma odierno del cluster di tutti i computer del mondo.▼
▲== Descrizione ==
▲I cluster hanno le seguenti caratteristiche: i vari computer risultano come una singola risorsa computazionale e le varie componenti sono risorse dedicate al funzionamento dell'insieme; il ''server cluster'' è quindi un [[server]] ad altissime prestazioni poiché, invece di gravare su un'unica macchina ''standalone'', suddivide il carico di lavoro (quindi, ad esempio, funzioni di [[mail server]], [[web server]], [[database server]] e [[file server]]) su più macchine,
▲Attualmente, la ''clusterizzazione'' consiste nel connettere, meglio via [[fibra ottica]], X server fisici,
I [[mainframe]], sia per la produzione sia per il monitoraggio, sono le tipiche tipologie di macchine che formano un cluster.
Nell'architettura cluster un '''nodo''' è una macchina elaborativa ovvero un server fisico o virtuale che prende parte al grappolo. Per l'utente o i [[client]], il cluster è assolutamente trasparente: tutta la notevole complessità hardware e software è mascherata; i servizi vengono erogati, i dati sono resi accessibili e le applicazioni elaborate come se fossero tutte provenienti da un solo mega computer centrale.
=== Tipi ===
▲Esistono tre tipi di cluster (i primi due sono i più diffusi):
▲* ''Fail-over Cluster'': il funzionamento delle macchine è continuamente monitorato e quando uno dei due [[host]] smette di funzionare un'altra macchina subentra in attività. Lo scopo è garantire dunque un servizio continuativo garantendo cioè alta [[disponibilità]] di servizio grazie all'alta [[affidabilità]] dovuta alla [[fault tolerance|tolleranza ai guasti]] del sistema cluster per
* ''[[Load balancing]] Cluster'': è un sistema nel quale le richieste di lavoro sono inviate alla macchina con meno carico di elaborazione distribuendo/bilanciando così il carico di lavoro sulle singole macchine. Questo garantisce tempi minori di processamento di un servizio e minore affaticamento di una macchina;
* ''[[High Performance Computing]] (HPC Cluster)'': i computer sono configurati per fornire prestazioni estremamente alte. Le macchine suddividono i processi di un job su più macchine, al fine di guadagnare in prestazioni. La peculiarità saliente è che i processi sono parallelizzati e che le routine che possono girare separatamente saranno distribuite su macchine differenti invece di aspettare di essere eseguite sequenzialmente una dopo
* ''[[Cluster virtualizzato]]'', oltre alle precedenti caratteristiche combina le tecnologie di clusterizzazione con quelle di [[virtualizzazione]] ottenendo cluster di [[macchina virtuale|macchine virtuali]] su una o più macchine fisiche ottenendo così il massimo grado di complessità, la massima flessibilità possibile e notevole risparmio sui costi di esercizio.
=== Requisiti
Per ottenere un sistema di computer operanti come un cluster è necessario:
# un [[sistema operativo distribuito]] in grado di far funzionare i computer come cluster (per esempio [[GNU/Linux]], utilizzando [[OpenMosix]])▼
# [[hardware]] di rete ad elevate prestazioni
▲# un [[sistema operativo distribuito]] in grado di far funzionare i computer come cluster (per esempio [[GNU/Linux]], utilizzando [[OpenMosix]])
# un [[algoritmo]] parallelizzabile.
=== Vantaggi ===
I vantaggi
*
* La ''scalabilità'', dal momento che le risorse sono distribuite.
* ''Facilità di aggiornamento e manutenzione''.
* Disponibilità di un gran numero di software [[Open Source]] per i cluster, come [[MOSIX]], [[openMosix]] e [[Cluster Beowulf|Beowulf]].
* Incremento capacità e velocità di calcolo grazie allo sfruttamento di più unità di calcolo, di
* Lo sfruttamento della cooperazione per risolvere problemi complessi.
* L{{'}}''affidabilità'', in quanto il sistema continua a funzionare anche in caso di guasti a parti di esso,
=== Svantaggi ===
Line 38 ⟶ 57:
* Maggiore consumo di energia rispetto a un singolo server.
== Implementazioni ==
[[Message Passing Interface|MPI]] è una libreria di programmi di comunicazione tra computer, ampiamente disponibili che permette la scrittura di programmi paralleli nei linguaggi [[Linguaggio di programmazione C|C]], [[Fortran]], [[Python]], [[OCaml]], e molti altri [[Linguaggio di programmazione|linguaggi di programmazione]].▼
▲La storia del calcolo cluster è riassunta nel modo migliore in una nota in ''In Search of Clusters'' di Greg Pfister:
▲{{Citazione|Praticamente ogni dichiarazione rilasciata dalla [[Digital Equipment Corporation|DEC]] che menziona i cluster dice: ''DEC, che ha inventato i cluster...''. Non li ha inventati neanche IBM. Gli utenti hanno inventato i cluster, dal momento che non potevano portare avanti tutto il loro lavoro su un solo computer, o necessitavano di un backup. La data dell'invenzione è sconosciuta, ma penso che sia durante gli anni '60, o anche alla fine dei '50.}}
▲La base della tecnologia del calcolo cluster inteso come il compiere un lavoro qualsiasi parallelamente fu discutibilmente introdotta da Gene Amdahl della [[IBM]], che nel 1967 pubblicò un articolo con quella che sarebbe stata considerata la base del calcolo parallelo: la [[Legge di Amdahl]], che descrive matematicamente l'aumento di prestazioni che si può ottenere compiendo un'operazione in una architettura in parallelo.
▲L'articolo scritto da Amdhal definisce le basi ingegneristiche sia per il calcolo multiprocessore che per il calcolo cluster. la differenza significativa tra i due sta nel fatto che le comunicazioni interprocessore sono supportate all'interno del computer (ad esempio con un bus o rete di comunicazione interna adattata) oppure all'esterno del computer, su una rete commerciale. Questo articolo definì le basi ingegneristiche sia per il calcolo multiprocessore che per quello cluster, dove la differenziazione primaria è se la comunicazione interprocessore è supportata o meno all'"interno" del computer (per esempio su un bus di comunicazione interno personalizzato o su una rete) o all'"esterno" del computer su una rete commerciale.
▲Di conseguenza la storia dei primi computer cluster è più o meno direttamente inclusa nella storia delle prime reti, dato che uno dei primi motivi per lo sviluppo di una rete è stata la possibilità di collegare fra loro risorse di calcolo, di fatto creando un cluster di computer.
▲Le reti a [[commutazione di pacchetto]] furono inventate concettualmente dalla società [[RAND]] nel [[1962]]. Utilizzando il concetto di una rete a commutazione di pacchetto, il progetto [[ARPANET]] riuscì nella creazione nel [[1969]] di quello che era forse il primo cluster di computer basato su una rete commerciale collegando quattro diversi centri di calcolo (ognuno dei quali era quasi un "cluster", ma probabilmente non un cluster commerciale).
▲Il progetto ARPANET si sviluppò quindi come [[Internet]], che può essere considerata la madre di tutti i computer cluster; Internet raffigura il paradigma odierno del cluster di tutti i computer del mondo.
▲[[Message Passing Interface|MPI]] è una libreria di programmi di comunicazione tra computer, ampiamente disponibili che permette la scrittura di programmi paralleli nei linguaggi [[Linguaggio di programmazione C|C]], [[Fortran]], [[Python]], [[OCaml]], e molti altri linguaggi di programmazione.
Il mondo Linux supporta vari tipi di software per il ''clustering'', come:
Line 66 ⟶ 70:
Lincoln, recentemente installato nel [[NCSA]] è un cluster di 450 Dell PowerEdge 1855 blade servers sui quali gira ''Windows Compute Cluster Server 2003''. Questo cluster debuttò al centotrentesimo posto nella TOP500 nel giugno [[2006]] anche se attualmente come unico rappresentante di questa tecnologia.
[[DragonFly BSD]], un
=== Clustering software (software libero/open source) ===
*
* [[BOINC]] - Berkeley Open Infrastructure for Network Computing
* [[Gluster]] - The GNU Clustering Platform
* [[Linux-Cluster Project]
* [[Linux Virtual Server]
* [[Linux-HA]]
* [[Maui Cluster Scheduler]
* [[OpenSSI]] High-availability, load-balancing, and high-performance clustering with or without a [[Storage area network|SAN]].
* [[OpenMosix]]
* [[Open Source Cluster Application Resources]] (OSCAR)
* [[Rocks Cluster Distribution]]
* [[Sun Grid Engine]]
* [[TORQUE (software)|TORQUE]]
* [[WareWulf]
=== Prodotti commerciali che permettono di implementare il "''clustering''" ===
*
* [[Condor cycle scavenger|Condor]
* HP Serviceguard
* HP's [[OpenVMS]]
* [[Microsoft Windows Compute Cluster Server 2003]
* [[Platform LSF]
* [[NEC ExpressCluster]
* [[Openpbs]]
* [[PBSPro]
* [[Red Hat Cluster Suite]],
* [[Sun Grid Engine|Sun N1 GridEngine]] [http://www.sun.com/software/gridware/ Sun N1 GridEngine]
*
* [[Scyld Beowulf Cluster]
* [[Platform Open Cluster Stack]
* [[Xgrid]] from Apple
*
<!-- da controllare e cercare in archive.org
=== Siti web mantenuti da centri che dispongono anche di cluster computing ===
*
* {{
* {{
* {{
* {{
* {{
--->
== Applicazione di ''cluster computing'' per grandi prestazioni ==
Line 115 ⟶ 120:
TOP500 è una collaborazione fra [[università di Mannheim]], [[università del Tennessee]] e centro di elaborazione scientifico nazionale di ricerca energetica al [[laboratorio nazionale Lawrence Berkeley]].<br />Al novembre 2006, il [[supercomputer]] più veloce era il sistema [[IBM]] [[Blue Gene|Blue Gene/L]] del [[Department of Energy|Dipartimento per l'energia degli USA]] con le prestazioni di 280.6 [[FLOPS|TeraFLOPS]].
Usare cluster può fornire significativi incrementi di prestazioni contenendo il costo.<br />
Il concetto centrale del cluster [[Beowulf (computer)|Beowulf]] è l'uso di calcolatori commerciali per produrre un'alternativa economica ad un supercomputer tradizionale. Un progetto che ha preso questo concetto portandolo all'estremo era lo [[Stone Soupercomputer]].
Il progetto [[SETI@home]] sembrerebbe essere il più grande cluster distribuito esistente. Utilizza circa tre milioni di personal computer sparsi in tutto il mondo per analizzare i dati provenienti dal [[radiotelescopio di Arecibo]], al fine di trovare la prova dell'esistenza di intelligenza extraterrestre.
== Bibliografia ==
* {{cita libro|autore=Gregory F. Pfister|titolo=In search of clusters|url=https://archive.org/details/insearchofcluste00pfis|editore=Prentice Hall PTR|anno=1998|lingua=inglese|
* {{cita libro|autore=Rajkumar Buyya|titolo=High Performance Cluster Computing: Architectures and systems|url=https://archive.org/details/highperformancec0001unse|editore=Prentice Hall PTR|anno=1999|lingua=inglese|
* {{cita libro|autore=Rajkumar Buyya|titolo=High Performance Cluster Computing: Programming and applications|url=https://archive.org/details/highperformancec0001unse|editore=Prentice Hall PTR|anno=1999|lingua=inglese|
* {{cita libro|autore=Evan Marcus, Hal Stern|titolo=Blueprints for high availability: designing resilient distributed systems|url=https://archive.org/details/blueprintsforhig00marc|editore=John Wiley & Sons|anno=2000|lingua=inglese|
* {{cita libro|autore=Karl Kopper|titolo=The Linux Enterprise Cluster: Build a Highly Available Cluster with Commodity Hardware and Free Software|editore=No Starch Press|anno=2005|lingua=inglese|url=http://books.google.it/books?id=wiCGoCq8n4oC|
* {{cita libro|autore=[[Andrew Stuart Tanenbaum]]|titolo=Architettura dei calcolatori. Un approccio strutturale|editore=Pearson Education|città=Milano|anno=2006|url=http://books.google.it/books?id=hK8lJ4BPOYcC|
== Voci correlate ==
Line 125 ⟶ 138:
* [[Grid computing]]
* [[Peer-to-peer]]
* [[Data center]]
* [[Mainframe]]
==
{{interprogetto}}
▲* {{cita libro|autore=Gregory F. Pfister|titolo=In search of clusters|editore=Prentice Hall PTR|anno=1998|lingua=inglese|id=ISBN 978-0138997090}}
▲* {{cita libro|autore=Rajkumar Buyya|titolo=High Performance Cluster Computing: Architectures and systems|editore=Prentice Hall PTR|anno=1999|lingua=inglese|id=ISBN 978-0130137845}}
▲* {{cita libro|autore=Rajkumar Buyya|titolo=High Performance Cluster Computing: Programming and applications|editore=Prentice Hall PTR|anno=1999|lingua=inglese|id=ISBN 978-0130137852}}
▲* {{cita libro|autore=Evan Marcus, Hal Stern|titolo=Blueprints for high availability: designing resilient distributed systems|editore=John Wiley & Sons|anno=2000|lingua=inglese|id=ISBN 978-0471356011}}
▲* {{cita libro|autore=Karl Kopper|titolo=The Linux Enterprise Cluster: Build a Highly Available Cluster with Commodity Hardware and Free Software|editore=No Starch Press|anno=2005|lingua=inglese|url=http://books.google.it/books?id=wiCGoCq8n4oC|id=ISBN 978-1593270360}}
▲* {{cita libro|autore=[[Andrew Stuart Tanenbaum]]|titolo=Architettura dei calcolatori. Un approccio strutturale|editore=Pearson Education|città=Milano|anno=2006|url=http://books.google.it/books?id=hK8lJ4BPOYcC|pagine=pp. 604-609|capitolo=Cluster|id=ISBN 978-8-8719-2271-3|cid=adc}}
== Collegamenti esterni ==
*
*
* [http://www.aethia.com/hpc_news.php HPC News] - News sull'HPC
{{Controllo di autorità}}
{{Portale|Informatica}}
|