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.
Requisiti per formare un cluster di computer.
Per ottenere un sistema di computer operanti come un cluster è necessario:
- Un sistema operativo in grado di far funzionare i computer come cluster (per esempio GNU/Linux).
- Hardware di rete ad elevate prestazioni.
- 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.