Connected enterprise

Cluster computing: cos’è, vantaggi e applicazioni in ambienti Edge 

Il cluster computing viene utilizzato per aumentare la potenza di calcolo e garantire la continuità operativa in azienda senza ricorrere ai superprocessori. Ma come funziona? Come utilizzarlo sull’edge anziché sul cloud per ridurre i tempi di latenza?

Pubblicato il 23 Ago 2021

Josephine Condemi

Giornalista

cluster computing cloud manufacturing


Il cluster computing è, letteralmente, la “computazione a grappolo”: un gruppo di computer collegati in rete tra loro che lavorano in parallelo, distribuendo il carico di elaborazione e aumentando la potenza di calcolo.

Cos’è il cluster computing

Il cluster computing è un’architettura distribuita e centralizzata che consente di risolvere elaborazioni impegnative attraverso la scomposizione del problema in sottoquesiti, che vengono smistati tra i computer della rete: ciascun computer risolve il proprio sotto-quesito in parallelo agli altri.

In ogni cluster generalmente c’è un nodo principale e più nodi “lavoratori”: il nodo principale delega le richieste agli altri nodi.

Ogni nodo del cluster esegue lo stesso sistema operativo: una ridondanza che consente la continuità operativa in caso di guasti o anomalie. Infatti, ciascun nodo è bilanciato rispetto alle richieste della rete: in caso di errore, il traffico dati viene indirizzato automaticamente verso un altro nodo del cluster, che fa procedere l’elaborazione, sia essa l’esecuzione di una applicazione o un compito più complesso.

Il termine “Cluster computing” comprende anche la manutenzione, il monitoraggio e la gestione dell’architettura di elaborazione.

cluster computing

Quali sono le caratteristiche dei computer cluster? 

L’architettura di un computer cluster è formata da più macchine computazionali, collegate tra loro in un ambiente di programmazione parallela, da middleware e applicazioni.

Il sistema di gestione e programmazione dei lavori è centralizzato: i computer cluster lavorano come una sola macchina di elaborazione. I server fisici di ogni nodo del cluster condividono unità di storage. I computer cluster possono essere collegati tra loro in diversi modi che supportino l’ampia larghezza di banda e la comunicazione a bassa latenza tra i nodi.

Tra i più comuni, troviamo: Myrinet, protocollo di rete ad alta velocità in fibra ottica; Infiniband, bus di computer ad alta velocità; Gigabit Ethernet, l’implementazione dello standard in rame o fibra che fornisce la velocità di trasferimento dati di un gigabit al secondo e controllo di flusso; SCI – Scalable Coherent Interface, un sistema di memoria condivisa a bassa latenza.

Quanti tipi di cluster esistono? 

I cluster possono essere classificati in base alla posizione o alla funzione.

Nel primo caso, si distinguono i cluster a distanza estesa, i cluster metropolitani e i cluster continentali. Il cluster a distanza estesa ha i nodi in data center diversi e a distanza, collegati via cavo ad alta velocità. Il cluster metropolitano prende il nome dall’area geografica in cui è distribuito. Il cluster continentale può estendersi per centinaia o migliaia di chilometri.

Nel secondo caso, si distinguono i fail-over cluster, i load balancing cluster, gli High Performance Computing- HPC cluster e i cluster virtualizzati.

I Fail-over o high availability cluster sono usati per mantenere la continuità operativa e proteggere una o più funzioni sensibili, che vengono monitorate in modo permanente: se, ad esempio, l’applicazione smette di funzionare e il nodo locale non riesce a riavviarla, il software del cluster sposterà il riavvio su un altro nodo. Se il cluster è formato da più di due nodi, si potranno definire diversi livelli di commutazione.

I Load Balancing cluster, o cluster di bilanciamento del carico, verifica che ogni nodo abbia lo stesso carico di lavoro e invia le richieste di elaborazione al nodo meno sovraccarico, quindi con il tempo di risposta più veloce.

Gli High Performance Clustering – HPC sono cluster ad alte prestazioni, usati per aumentare la potenza di calcolo di un pc. La computazione procede in parallelo per sotto-problemi, e non sequenzialmente.

Video: Introduzione agli HPC – ADACS Learning (in inglese)

I cluster virtualizzati sono situati sulle macchine fisiche per aumentarne la flessibilità e la potenza computazionale.

Analogie e differenze tra cluster computing e grid computing

Il grid computing è, letteralmente, la “computazione a rete”: le risorse di molti computer vengono collegate in una rete per risolvere lo stesso problema di computazione in parallelo.

Ma mentre il cluster computing è una rete omogenea, con componenti hardware simili che eseguono lo stesso sistema operativo, il grid computing è una rete eterogenea, con diversi sistemi operativi presenti. Nel grid computing ogni nodo è indipendente, nel cluster computing ogni nodo fa parte di una unità.

Inoltre, la rete del cluster computing è centralizzata, con una pianificazione delle attività controllata da server centralizzati, mentre la rete del grid computing è decentralizzata: ogni nodo gestisce le proprie risorse e possono esistere più server autonomi all’interno della griglia.

Quali sono gli usi e i vantaggi del cluster computing 

Il cluster computing viene utilizzato per aumentare le prestazioni computazionali e proteggere dai guasti. È molto meno costoso dei server multiprocessore. La sua architettura di calcolo distribuita via hardware di rete è facilmente scalabile e fa diminuire notevolmente il consumo di tempo computazionale: viceversa, incrementa capacità e velocità di calcolo.

Il cluster computing facilita la gestione delle risorse e abilita il bilanciamento del carico di lavoro delle diverse macchine, riducendo i tempi di latenza nella risposta alle richieste.

La simmetricità dei nodi consente un’alta affidabilità del sistema: la ridondanza funzionale delle diverse macchine garantisce un’alta tolleranza ai guasti e una solida continuità operativa. Infatti, in caso di malfunzionamento di un nodo, i dati possono essere presi in carico da un altro nodo del cluster.

In un cluster, anche la manutenzione del sistema, come la sostituzione di una macchina malfunzionante, è più agevole rispetto a quella dei superprocessori.

Tuttavia, l’hardware di rete, tranne poche eccezioni, non è progettato per l’elaborazione in parallelo: questo frena la potenzialità del cluster computing per molte applicazioni. Per ridurre l’alta latenza, grazie ai progressi dei computer a scheda singola e dell’infrastruttura di rete, il cluster computing viene abbinato all’edge computing.

Esempi di applicazioni e progetti del cluster computing sull’Edge

L’edge computing è, letteralmente, la “computazione ai margini della rete”: per ridurre i tempi di latenza, l’elaborazione dei dati viene svolta direttamente dai dispositivi locali, che hanno al proprio interno microcontrollori o sistemi embedded.

Il cluster computing viene usato per aumentare la robustezza ai guasti e la continuità operativa delle applicazioni edge, migliorandone la manutenzione. Può essere utilizzato per aumentare la potenza di calcolo dell’edge o per ospitare server che elaborino e segnalino i dati dai dispositivi IoT.

Il cluster computing può anche essere usato per portare il machine learning sull’edge: un cluster di GPU può infatti eseguire contemporaneamente i calcoli rapidi necessari per l’apprendimento automatico senza passare dal cloud. Ad esempio, per rilevare in tempo reale le persone nei video dei sistemi di sicurezza.

Valuta la qualità di questo articolo

C
Josephine Condemi
Giornalista

Articoli correlati

Articolo 1 di 3