Passa al contenuto principale

Cos’è il cluster computing?

Il cluster computing è il processo di utilizzo di più nodi di calcolo, chiamati cluster, per aumentare la potenza di calcolo al fine di risolvere problemi complessi. Casi d’uso complessi come la ricerca sui farmaci, l’analisi delle proteine e l’addestramento dei modelli di IA richiedono l’elaborazione in parallelo di milioni di punti dati per attività complesse di classificazione e previsione. La tecnologia di cluster computing coordina più nodi di calcolo, ognuno con le proprie CPU, GPU e memoria interna, che lavorano insieme alla stessa attività di elaborazione. Le applicazioni vengono eseguite sull’infrastruttura di cluster computing come su una singola macchina e ignorano le complessità del sistema sottostante.

Come si è evoluta la tecnologia di cluster computing?

I cluster di calcolo sono stati inventati negli anni ‘60 per fornire potenza di elaborazione, memoria e archiviazione parallele in più computer. I primi cluster erano costituiti da computer, workstation e server. Ogni computer era connesso a una rete locale (LAN) e consentiva agli utenti di accedere alle risorse come se stessero utilizzando un singolo computer.

Nel corso degli anni, le tecnologie abilitate per il cluster computing si sono evolute, portando a casi d’uso più diversificati, come il calcolo ad alte prestazioni (HPC), che utilizza più processori connessi, forse centinaia di migliaia, per offrire una potenza di calcolo enorme. Le organizzazioni utilizzano l’HPC per supportare carichi di lavoro in applicazioni a uso intensivo di risorse come l’analisi dei dati, la ricerca scientifica, il machine learning e l’elaborazione visiva.

Cluster computing nel cloud

Tradizionalmente, la configurazione dei cluster di computer richiedeva l’installazione e la configurazione manuali di computer, sistema operativo, funzionalità di rete e meccanismi di distribuzione delle risorse. Inoltre, una configurazione on-premises mette a dura prova le organizzazioni dal punto di vista finanziario, poiché la scalabilità dei cluster richiede investimenti in più hardware server.

Oggi, molti provider cloud offrono cluster di calcolo ad alte prestazioni (HPC) gestiti sui quali le organizzazioni possono implementare i propri carichi di lavoro con facilità. Anziché configurare migliaia di computer connessi on-premises, è possibile accedere alla potenza di calcolo illimitata del cloud con l’HPC su AWS.

L’HPC su AWS consente ai team di software di innovare e scalare carichi di lavoro ad alta intensità di calcolo con i servizi di cluster computing disponibili. Hypersonix, per esempio, utilizza il calcolo ad alte prestazioni per eseguire simulazioni di fluidodinamica ad alta velocità che coinvolgono milioni di cellule nel cloud AWS.

Quali sono i casi d’uso del cluster computing?

Di seguito, indichiamo le applicazioni tipiche delle tecnologie di cluster computing.

Analisi dei big data

Il cluster computing può accelerare l’analisi dei dati tramite la distribuzione di attività analitiche su più computer in parallelo. Per esempio, è possibile eseguire calcoli complessi come Monte Carlo, genomica o analisi del sentiment con cluster di cloud computing progettati per supportare carichi di lavoro di calcolo ad alte prestazioni (HPC).

Intelligenza artificiale e machine learning

Le applicazioni di intelligenza artificiale e machine learning (IA/ML) consumano un’enorme potenza di calcolo durante l’addestramento e l’elaborazione dei dati. Con un’infrastruttura di cluster computing dedicata, i data scientist possono accelerare il raggiungimento dei risultati. Per esempio, è possibile eseguire i carichi di lavoro di IA/ML su cluster di IA cloud basati su AWS Trainium, un chip di calcolo progettato per accelerare la ricerca sull’IA. 

Rendering 3D

Il cluster computing consente di eseguire il cluster rendering, un processo in cui più computer interconnessi sincronizzano immagini o video su vari schermi. È inoltre possibile utilizzare il cluster rendering per supportare l’ingegneria assistita da computer, la realtà virtuale e altre applicazioni che richiedono un’elevata potenza di elaborazione grafica.

Simulazioni

Le organizzazioni utilizzano i cluster di calcolo per simulare possibili risultati a partire dai dati per guidare le decisioni aziendali.  Più computer, quando interconnessi, rendono possibile un flusso di lavoro interattivo in cui gli esperti umani possono estrarre, rivedere e perfezionare i risultati dai modelli sottostanti. Per esempio, è possibile eseguire un’analisi dei rischi finanziari alimentando i carichi di lavoro di machine learning sottostanti con risorse provenienti da computer connessi. 

Come funziona il cluster computing?

Il cluster computing collega due o più computer su una rete affinché funzionino in modo coeso come un unico sistema. In genere, una configurazione di cluster è costituita da nodi di calcolo, un nodo leader, un bilanciatore del carico e un meccanismo di heartbeat. Quando il nodo leader riceve una richiesta, passa l’attività ai nodi di calcolo. A seconda di come gli ingegneri configurano il cluster, ogni nodo può agire sull’attività in modo separato o simultaneo. Di seguito viene illustrato ogni componente.

 

Nodi di calcolo

I nodi di calcolo sono server (o istanze cloud) che lavorano su attività distribuite. Spesso condividono CPU, GPU, memoria, archiviazione, sistema operativo e altre specifiche di calcolo: questo tipo di configurazione viene chiamato configurazione omogenea. A volte può essere utilizzata una configurazione eterogenea, nella quale alcuni nodi del cluster hanno specifiche di calcolo diverse.

Nodo leader

Un nodo leader è un computer a cui spetta il compito di coordinare come i nodi di calcolo lavorano insieme. Il nodo leader riceve le richieste in arrivo e distribuisce le attività ai diversi nodi che controlla. Se il nodo leader restituisce un errore, sarà sostituito da un altro nodo tramite un processo di elezione, generalmente con il consenso dei nodi rimanenti.

Bilanciatore del carico

Il bilanciatore del carico è un dispositivo di rete che distribuisce il traffico in entrata ai nodi di calcolo adeguati. Tiene traccia delle attività di rete, dell’utilizzo delle risorse e dello scambio di dati tra i nodi del cluster. Nel cluster computing, il bilanciatore del carico impedisce ai nodi di calcolo di subire un sovraccarico a causa di un aumento improvviso delle richieste. A volte, il nodo leader funge da bilanciatore del carico tramite un uno strumento software di bilanciamento dedicato.

Meccanismo di heartbeat

Il meccanismo di heartbeat monitora tutti i nodi di calcolo presenti nel cluster per garantire che siano operativi. Quando un nodo non riesce a rispondere, il meccanismo di heartbeat avvisa il nodo leader, che ridistribuisce l’attività ad altri nodi operativi. 

Quali sono i tipi di cluster computing?

Le organizzazioni possono configurare cluster di elaborazione per supportare vari obiettivi aziendali, prestazionali e operativi.

Cluster di bilanciamento del carico

I cluster di bilanciamento del carico consentono di raggiungere la stabilità operativa tramite il coordinamento automatico della gestione delle risorse. Quando il cluster riceve una richiesta, distribuisce l’attività in modo uniforme a tutti i nodi disponibili, impedendo che uno qualsiasi dei singoli nodi venga sovraccaricato. Per esempio, le aziende effettuano l’hosting dei siti web di e-commerce su cluster di bilanciamento del carico per far fronte ai picchi di traffico. Dato che tutti i nodi agiscono in modo collaborativo sulla richiesta, gli utenti possono usufruire di prestazioni costanti nonostante l’elevato volume di traffico.

Cluster a disponibilità elevata

I cluster a disponibilità elevata garantiscono la disponibilità del servizio mantenendo i nodi ridondanti. Quando un singolo nodo restituisce un errore, il bilanciatore del carico ridistribuisce il traffico ai nodi di backup, garantendo la continuità del servizio in ogni momento. Spesso nella configurazione viene incluso un bilanciatore del carico ridondante per impedire un singolo punto di errore. In questo modo, è possibile ripristinare tempestivamente l’intero cluster in caso di errore di uno dei suoi componenti.

I cluster a disponibilità elevata possono essere configurati in due modi.

Configurazioni attive-attive

Tutti i nodi sono operativi, indipendentemente dall’assegnazione di un’attività. Tuttavia, se si verifica un errore, il bilanciatore del carico ridistribuirà l’attività ai nodi integri.

Configurazioni attive-passive.

Alcuni nodi rimangono inattivi durante le normali operazioni e si attivano solamente quando un nodo restituisce un errore.

Cluster ad alte prestazioni

I cluster ad alte prestazioni uniscono più computer o supercomputer per risolvere attività di calcolo complesse con elevate velocità di elaborazione. Invece di eseguire l’elaborazione in sequenza, i cluster ad alte prestazioni elaborano i dati in parallelo, a vantaggio delle applicazioni a uso intensivo di risorse come il data mining. Inoltre, i nodi di calcolo possono scambiare dati nella loro collaborazione verso un risultato comune. 

Qual è il ruolo del cluster computing nell’IA?

I carichi di lavoro di IA richiedono enormi risorse di calcolo, archiviazione e connessioni di rete a bassa latenza. In precedenza, le organizzazioni implementavano carichi di lavoro di IA su data center on-premises. Tuttavia, le applicazioni di IA diventano sempre più complesse e, di conseguenza, richiedono più potenza di calcolo e spazio di archiviazione. Quando viene riproposto per i carichi di lavoro di IA, il cluster computing crea un’enorme rete di supercomputer sulla quale possono essere eseguiti i carichi di lavoro di IA. Anziché dalle CPU, i supercomputer sono alimentati da GPU e TPU per soddisfare elevati requisiti di calcolo. Tali architetture cluster, chiamate anche supercluster IA, consentono alle organizzazioni di sviluppare, implementare e scalare applicazioni di deep learning, sistemi autonomi, analisi dei big data e altre applicazioni di IA.

In che modo AWS può supportare i requisiti di cluster computing?

Il Servizio di calcolo parallelo AWS (AWS PCS) è un servizio gestito che utilizza Slurm per eseguire e scalare i carichi di lavoro di calcolo ad alte prestazioni (HPC) su AWS. È possibile utilizzare AWS PCS per:

  • Semplificare le operazioni del cluster utilizzando funzionalità di gestione e osservabilità integrate.
  • Creare cluster di calcolo che integrano calcolo, archiviazione, rete e visualizzazione AWS.
  • Eseguire simulazioni o creare modelli scientifici e ingegneristici.

Elastic Fabric Adapter (EFA) è un’interfaccia di rete per i nodi di calcolo eseguiti sulle istanze Amazon EC2. La sua interfaccia su misura migliora le prestazioni delle comunicazioni tra istanze, fondamentali per la scalabilità delle applicazioni di cluster computing.

AWS ParallelCluster è uno strumento di gestione dei cluster open source che semplifica l’implementazione e la gestione dei cluster Amazon EC2. È possibile utilizzare una semplice interfaccia grafica utente (GUI) o un file di testo per modellare ed effettuare il provisioning delle risorse necessarie per le applicazioni HPC in modo automatizzato e sicuro.

Inizia subito a utilizzare il cluster computing su AWS creando un account gratuito.