Computer cluster

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire
Tecnici intenti ad effettuare manutenzione a un cluster di computer

Un computer cluster, o più semplicemente un cluster (dall'inglese grappolo), è un insieme di computer connessi tramite una rete telematica. Lo scopo di un cluster è quello di distribuire una 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 parallelo. Questo ovviamente aumenta la potenza di calcolo del sistema.

Indice

Requisiti per formare un cluster di computer

Per ottenere un sistema di computer operanti come un cluster è necessario:

  1. un sistema operativo in grado di far funzionare i computer come cluster (per esempio GNU/Linux, utilizzando OpenMosix)
  2. hardware di rete ad elevate prestazioni
  3. un algoritmo parallelizzabile.

Tipi di cluster computing

Esistono tre tipi di cluster: Fail-over, Load balancing ed High Performance Computing, con i primi due che sono probabilmente i più diffusi:

  • Fail-over Cluster: il funzionamento delle macchine è continuamente monitorato, e quando uno dei due host smette di funzionare l’altra macchina subentra. Lo scopo è garantire un servizio continuativo;
  • Cluster con load balancing: è un sistema nel quale le richieste di lavoro sono inviate alla macchina con meno carico;
  • 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 routines che possono girare separatamente saranno distribuite su macchine differenti invece di aspettare di essere eseguite una dopo l’altra. GLI HPC sono diffusi specialmente tra centri di elaborazione dati;

L'utilizzo di questa tecnologia è molto diffuso: per esempio Ferrari e Dreamworks utilizzano cluster (basati sul sistema operativo GNU/Linux) sui quali fanno girare programmi di rendering e di simulazione fluidodinamica computazionalmente molto onerosi.

Applicazione di cluster computing per grandi prestazioni

L'organizzazione TOP500 elenca ogni semestre i 500 calcolatori più veloci al mondo e solitamente in questa lista sono inclusi molti clusters.
TOP500 è una collaborazione fra università di Mannheim, università del Tennessee e centro di elaborazione scientifico nazionale di ricerca energetica al laboratorio nazionale Lawrence Berkeley.
Al novembre 2006, il supercomputer più veloce era il sistema IBM Blue Gene/L del Dipartimento per l'energia degli USA con le prestazioni di 280.6 TFlops.

Usare cluster può fornire significativi incrementi di prestazioni contenendo il costo.
System X, il supercomputer di Virginia Tech, al giugno 2006 era il ventottesimo supercomputer più potente sulla terra [1]. É un cluster da 12.25 TFlops costituito da 1100 Apple XServe G5 a doppio processore da 2.3 gigahertz (RAM da 4 GB, HD SATA da 80 GB) con sistema operativo Mac OS X ed interconnessi tramite InfiniBand. Il cluster inizialmente era costituito da Power Mac G5 che poi sono stati venduti. Gli XServe sono impilabili e meno voluminosi dei Mac desktop e consentono di realizzare quindi un cluster più compatto. Il costo complessivo del suddetto cluster di Power Mac era $5.2 milioni, un decimo del costo dei più lenti supercomputer costituiti da un unico elaboratore (mainframe).

Il concetto centrale del cluster 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.

Storia del calcolo cluster

La storia del calcolo cluster è riassunta nel modo migliore in una nota in In Search of Clusters di Greg Pfister:

Virtualmente ogni dichiarazione rilasciata dalla 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.

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.

Il sistema di reti Packet switching è stato concettualmente inventato dalla RAND Corporation nel 1962.
il progetto ARPANET, nato nel 1969, con l'utilizzo del concetto di packet switched network, fu presumibilmente la prima rete commerciale al mondo basata sul computer cluster; furono collegati 4 differenti centri di elaborazione (ciascuno dei quali era in qualche modo organizzato in cluster, ma non in cluster commerciale). Di conseguenza la storia dei primi computer è più o meno legata alla storia delle prime reti, poiché uno dei motivi principali per sviluppare una rete è quello di interconnettere risorse di calcolo, creando così, di fatto, computer cluster.


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.


Tecnologie per il cluster

MPI è una libreria di programmi di comunicazione tra computer, ampiamente disponibili che permette la scrittura di programmi paralleli nei linguaggi C, Fortran, Python, OCaml, e molti altri linguaggi di programmazione.

Il mondo GNU/Linux supporta vari tipi di software per il clustering, come:

  • Beowulf, distcc, MPICH ed altri - la maggior parte sono applicazioni di clustering molto specializzate. Il programma distcc fornisce compilazione parallela quando utilizza la GCC.
  • Linux Virtual Server, Linux-HA - sono cluster con un computer-direttore che permette alle richieste di servizi in arrivo di essere distribuite attraverso molteplici nodi del cluster.
  • MOSIX, openMosix, Kerrighed, OpenSSI - sono cluster sotto ogni punto di vista, che sono stati integrati nel kernel che provvede alla migrazione automatica dei processi tra nodi omogenei. OpenSSI, openMosix e Kerrighed sono implementazioni single-system image.

GNU/Linux è attualmente il sistema più utilizzato per il clustering: secondo Top500 nel 2006 è stato il sistema più usato in assoluto.

La piattaforma Microsoft Windows Compute Cluster Server 2003 basata su Windows Server 2003 Standard x64 Edition fornisce elementi per il calcolo ad alte prestazioni, come "Job Scheduler", le librerie MSMPI ed altri strumenti di amministrazione.

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 recente fork di FreeBSD 4.8 è stato ridisegnato nel suo cuore elaborativo per abilitare capacità di clustering naturali. Consente inoltre di ottenere capacità di single-system image.

Clustering software (software libero/open source)

Prodotti commerciali che permettono di implementare il "clustering"

Voci correlate

Bibliografia

  • Karl Kopper: The Linux Enterprise Cluster: Build a Highly Available Cluster with Commodity Hardware and Free Software, No Starch Press, ISBN 1-59327-036-4
  • Evan Marcus, Hal Stern: Blueprints for High Availability: Designing Resilient Distributed Systems, John Wiley & Sons, ISBN 0-471-35601-8
  • Greg Pfister: In Search of Clusters, Prentice Hall, ISBN 0-13-899709-8
  • Rajkumar Buyya (editor): High Performance Cluster Computing: Architectures and Systems, Volume 1, ISBN 0-13-013784-7, Prentice Hall, NJ, USA, 1999.
  • Rajkumar Buyya (editor): High Performance Cluster Computing: Programming and Applications, Volume 2, ISBN 0-13-013785-5, Prentice Hall, NJ, USA, 1999.

Collegamenti esterni

Altri progetti

Website mantenuti da centri che dispongono anche di cluster computing

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net