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

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.

WHITEPAPER
Gartner: l’iperautomazione tra i principali trend tecnologici
ERP
SaaS

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.

Introduction to Computing Clusters

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.

WHITEPAPER
Quali sono i rischi cyber legati a prodotti e servizi a supporto del sistema OT?
@RIPRODUZIONE RISERVATA

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

C
Josephine Condemi
Giornalista
Argomenti trattati

Approfondimenti

B
Business Continuity
E
edge computing