Che cos'è il computing ad alte prestazioni?

Il computing ad alte prestazioni (HPC) è la pratica di aggregazione di risorse di calcolo per ottenere prestazioni superiori a quelle di una singola workstation, un singolo server o computer. L'HPC può essere costituito da supercomputer personalizzati o gruppi di singoli computer chiamati cluster. L'HPC può essere eseguito on-premise, nel cloud o in un sistema ibrido per ognuna. Ogni computer di un cluster è spesso chiamato nodo, ogni nodo è responsabile di un'attività diversa. I nodi controller eseguono i servizi essenziali e coordinano il lavoro tra nodi. I nodi interattivi o i nodi di accesso agiscono come host a cui gli utenti accedono, tramite la Graphic User Interface o la riga di comando. I nodi di computing eseguono i calcoli. Gli algoritmi e il software vengono eseguiti in parallelo su ciascun nodo del cluster per aiutare a svolgere l'attività assegnata. L'HPC ha in genere tre componenti principali: calcolo, archiviazione e networking.

L'HPC consente alle aziende e ai ricercatori di aggregare le risorse di calcolo per risolvere problemi che sono troppo grandi per essere gestiti individualmente dai computer standard o che richiederebbero troppo tempo. Per questo motivo, a volte viene chiamato anche supercomputing. 

L'HPC viene utilizzato per risolvere problemi di ricerca accademica, scienze, progettazione, simulazione e business intelligence. La capacità dell'HPC di elaborare rapidamente enormi quantità di dati alimenta alcuni degli aspetti più fondamentali della società odierna, come la possibilità per le banche di verificare le frodi su milioni di transazioni con carta di credito contemporaneamente, la possibilità per le case automobilistiche di testare il design dell'auto per la sicurezza sugli incidenti o la possibilità di sapere come sarà il tempo domani.

Scopri di più sull'HPC di Google.

Tipi di cluster HPC

Il computing ad alte prestazioni ha tre componenti principali:

  • Computing
  • Rete
  • Archiviazione

In termini di base, i nodi (computing) del sistema HPC sono connessi ad altri nodi per eseguire simultaneamente algoritmi e software, quindi sono connessi (rete) a server dati (archiviazione) per acquisire l'output. Poiché i progetti HPC tendono a essere grandi e complessi, i nodi del sistema di solito devono scambiare tra loro i risultati del calcolo, il che significa che hanno bisogno di dischi veloci, memoria ad alta velocità e networking a bassa latenza e ad alta larghezza di banda tra nodi e sistemi di archiviazione. 

L'HPC può in genere essere suddiviso in due tipi di progettazione generali: cluster computing e computing distribuito.

Cluster computing

Il calcolo in parallelo avviene mediante una raccolta di computer (cluster) che lavorano insieme, ad esempio un gruppo connesso di server posizionati vicini l'uno all'altro sia fisicamente che in topologia di rete, per ridurre al minimo la latenza tra i nodi. 

Computing distribuito

Il modello di computing distribuito collega la potenza di calcolo di più computer in una rete che si trova in un'unica posizione (spesso on-premise) o distribuita in più località, che possono includere hardware on-premise e risorse cloud.

Inoltre, i cluster HPC (computing ad alte prestazioni) possono essere distinti tra modelli hardware omogenei ed eterogenei. Nei cluster omogenei, tutte le macchine hanno prestazioni e configurazione simili e spesso vengono trattate come uguali e intercambiabili. Nei cluster eterogenei, esiste una raccolta di hardware con caratteristiche diverse (numero di core della CPU elevato, con accelerazione GPU e altro) e il sistema è utilizzato al meglio quando ai nodi vengono assegnate attività per sfruttarne al meglio i vantaggi distinti.

Come funzionano i job HPC (computing ad alte prestazioni)?

In un ambiente HPC (computing ad alte prestazioni), i carichi di lavoro sono generalmente di due tipi: a basso accoppiamento e ad alto accoppiamento.

I carichi di lavoro a basso accoppiamento (spesso chiamati job paralleli o a throughput elevato) sono attività indipendenti che possono essere eseguite contemporaneamente nel sistema. Le attività possono condividere uno spazio di archiviazione comune, ma non sono dipendenti dal contesto e quindi non devono comunicare i risultati tra loro una volta completate. Un esempio di carico di lavoro a basso accoppiamento potrebbe essere il rendering delle immagini generate dal computer (CGI) in un lungometraggio, in cui ogni fotogramma del video viene renderizzato indipendentemente dagli altri frame, nonostante condividano gli stessi dati di input come sfondi e modelli 3D.

I carichi di lavoro ad alto accoppiamento sono costituiti da molti piccoli processi, ciascuno gestito da nodi diversi di un cluster, che dipendono l'uno dall'altro per completare l'attività complessiva. I carichi di lavoro ad alto accoppiamento richiedono di solito il networking a bassa latenza tra i nodi e l'accesso rapido alla memoria e allo spazio di archiviazione condivisi. La comunicazione tra processi (Inter-Process Communication, IPC) per questi carichi di lavoro è gestita da una Message Passing Interface (MPI), che utilizza software come OpenMPI e Intel MPI. Un esempio di carico di lavoro ad alto accoppiamento potrebbe essere la previsione del meteo, che prevede la simulazione basata sulla fisica di sistemi dinamici e interdipendenti che coinvolgono temperatura, vento, pressione, precipitazioni e altro ancora. Qui, ciascun nodo del cluster può calcolare soluzioni parziali a diversi fattori meteorologici, contribuendo alla previsione complessiva.

HPC (computing ad alte prestazioni) nel cloud

L'HPC (computing ad alte prestazioni) può essere eseguito on-premise con attrezzature dedicate, nel cloud o in un sistema ibrido per ognuna.

L'HPC nel cloud offre il vantaggio di flessibilità e scalabilità senza dover acquistare e mantenere costosi supercomputer dedicati. L'HPC nel cloud fornisce tutta l'infrastruttura necessaria per eseguire attività complesse e di grandi dimensioni come l'archiviazione dei dati, le soluzioni di networking, le risorse di computing specializzate, la sicurezza e le applicazioni di intelligenza artificiale. I carichi di lavoro possono essere eseguiti on demand, il che significa che le organizzazioni possono risparmiare denaro sull'attrezzatura e tempo sui cicli di calcolo, utilizzando solo le risorse di cui hanno bisogno, quando ne hanno bisogno. 

Alcune considerazioni comuni quando si sceglie di eseguire l'HPC nel cloud includono:

Latenza e larghezza di banda: con la quantità di dati in esecuzione nei carichi di lavoro HPC, i provider di servizi cloud devono fornire solide funzionalità di rete (> 100 GB/s) con bassa latenza.

Prestazioni: l'HPC nel cloud funziona meglio con fornitori che aggiornano costantemente i sistemi per ottimizzare le prestazioni, in particolare nei processori, nelle soluzioni di archiviazione e nelle funzionalità di rete.

Sostenibilità: l'HPC è una forma di computing che richiede molte risorse rispetto ai normali carichi di lavoro. I computer ad alte prestazioni on-premise possono costare milioni di dollari all'anno in energia. I cloud pubblici che danno la priorità all'energia rinnovabile, come Google Cloud, possono mitigare l'impatto energetico dell'HPC (computing ad alte prestazioni).

Archiviazione: data la dimensione della maggior parte delle attività HPC, l'archiviazione dei dati scalabile è un aspetto importante da considerare quando si eseguono carichi di lavoro HPC. I cloud provider che possono archiviare e gestire facilmente grandi quantità di dati (ad esempio tramite i servizi di archiviazione gestiti di Google, tra cui Filestore o Managed Lustre) hanno un vantaggio in HPC.

Sicurezza: un provider cloud con un'infrastruttura globale gestita privatamente garantisce che i dati e le applicazioni siano meno esposti alla rete internet pubblica. Le reti Virtual Private Cloud (VPC) consentono la connettività tra i nodi e possono configurare firewall per le applicazioni HPC. Le funzionalità di Confidential Computing consentono la crittografia in uso, nonché la crittografia at-rest e in-flight.

Vantaggi dell'HPC (computing ad alte prestazioni) nel cloud

Velocità e prestazioni

Il computing ad alte prestazioni può elaborare dati e attività molto più velocemente di un singolo server o computer. Attività che potrebbero richiedere settimane o mesi su un normale sistema di computing possono richiedere ore in HPC.

Flessibilità ed efficienza

Con l'HPC nel cloud, è possibile fare lo scale up o lo scale down dei carichi di lavoro a seconda delle esigenze. Grazie a una solida connessione a internet, l'HPC è accessibile da qualsiasi parte del mondo. 

Risparmi sui costi

Grazie alla velocità, alla flessibilità e all'efficienza dell'HPC (computing ad alte prestazioni) nel cloud, le organizzazioni possono risparmiare tempo e denaro in termini di risorse di calcolo e ore di lavoro.

Tolleranza di errore

In caso di errore di un nodo di un cluster HPC, il sistema è abbastanza resiliente da evitare l'arresto anomalo del restante sistema. Date le grandi e complesse attività eseguite dall'HPC, la tolleranza agli errori è un grande vantaggio. 

Accelerazione della ricerca e sviluppo

L'HPC offre un vantaggio alle aziende che eseguono ricerca e sviluppo accelerando i risultati di progetti che richiedono un uso intensivo dei dati, come la modellazione farmaceutica, la progettazione di nuove macchine e componenti o la simulazione di esperimenti per ridurre i test fisici.

Costo iniziale

I cluster e i supercomputer HPC on-premise hanno costi iniziali elevati. L'HPC on-premise sarebbe fuori dalla portata della maggior parte delle organizzazioni, dopo aver considerato il costo di apparecchiature, manodopera, software e configurazione.

Consumo energetico

I costi energetici delle installazioni di supercomputer on-premise possono essere elevati. Per le aziende attente all'ambiente e ai costi, il consumo di energia di HPC può essere sostenibile eseguendo l'HPC sul cloud più pulito del mondo

Manutenzione 

L'HPC funziona al meglio utilizzando l'ultima generazione di hardware e software ottimizzato. Mantenere aggiornato un cluster o supercomputer HPC on-premise per garantire prestazioni ottimali può diventare rapidamente una spesa grande e continua.

Perché l'HPC (computing ad alte prestazioni) è importante?

L'ecosistema moderno è inondato di dati e strumenti ad alta intensità di calcolo per analizzarli. L'HPC (computing ad alte prestazioni) consente alle aziende e alle organizzazioni di elaborare tutti questi dati in modo tempestivo, alimentando nuovi insight, innovazioni e scoperte scientifiche. Ciò consente alle aziende di prevedere scenari aziendali, fluttuazioni di mercato e formulare consigli. Il settore medico, nel frattempo, viene trasformato con un facile accesso all'HPC (computing ad alte prestazioni) nel cloud, contribuendo a modellare potenziali focolai, decodificare il genoma delle cellule tumorali e comprendere come si evolvono le malattie.

In breve, l'HPC sta accelerando il ritmo con cui vengono fatti i progressi scientifici, tecnologici e aziendali, aiutando l'umanità a costruire un futuro più prospero.

Risolvi le tue sfide aziendali con Google Cloud

I nuovi clienti ricevono 300 $ di crediti senza costi da spendere su Google Cloud.
Parla con un esperto delle vendite di Google Cloud per discutere della tua sfida unica in modo più dettagliato.

Utilizzi dell'HPC (computing ad alte prestazioni)

Ecco alcuni casi d'uso di computing ad alte prestazioni.

Ricerca

L'HPC (computing ad alte prestazioni) viene utilizzato nella ricerca accademica e scientifica per eseguire l'analisi e il calcolo di grandi set di dati, ad esempio i dati di imaging astronomico, la progettazione di materiali, la scoperta di farmaci o la dinamica delle proteine.

Simulazione

L'HPC (computing ad alte prestazioni) viene utilizzato per simulare scenari fisici come collisioni automobilistiche, flusso d'aria sulle ali di aeroplani o all'interno dei motori oppure il modo in cui potenziali nuovi farmaci interagiscono con le cellule umane.

Progettare

I produttori spesso utilizzano l'HPC per progettare e simulare nuovi prodotti come aerei, smartphone e automobili in software prima di realizzare prototipi fisici, accelerando così il processo di produzione. I produttori di chip per computer utilizzano l'HPC per modellare nuovi progetti di chip prima della prototipazione.

Ottimizzazione

L'HPC (computing ad alte prestazioni) può aiutare a ottimizzare set di dati di grandi dimensioni e difficili, come i portafogli finanziari o i percorsi più efficienti per le spedizioni e la logistica.

Previsione

L'HPC (computing ad alte prestazioni) può utilizzare set di dati complessi e di grandi dimensioni ed eseguire previsioni in modo tempestivo. Molte aziende aerospaziali utilizzano l'HPC per prevedere quando le loro macchine richiederanno manutenzione. Le previsioni meteorologiche vengono eseguite con il computing ad alte prestazioni, che consente ai meteorologi di prevedere le tempeste e di modellare il cambiamento climatico. 

Analisi dei dati

L'HPC (computing ad alte prestazioni) è in grado di analizzare i set di dati più grandi. Se applicato all'analisi dei dati, l'HPC può aiutare a distribuire l'elaborazione per rispondere più rapidamente alle query, consentendo il rilevamento delle frodi con carta di credito in tempo reale e altri processi urgenti.

Fai un passo avanti

Inizia a creare su Google Cloud con 300 $ di crediti senza costi e oltre 20 prodotti sempre senza costi.

Google Cloud