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 modalità ibrida. 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, mentre i nodi di computing o worker eseguono i calcoli. Algoritmi e software vengono eseguiti in parallelo su ciascun nodo del cluster per eseguire l'attività specifica. L'HPC ha generalmente tre componenti principali: computing, 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.
Il computing ad alte prestazioni ha tre componenti principali:
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.
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.
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 vengono spesso 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.
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 velocità effettiva elevata) 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 è necessario comunicare tra loro i risultati 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.
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 archiviazione dei dati, soluzioni di networking, risorse di calcolo specializzate, sicurezza e 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 per computer, 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 on-premise ad alte prestazioni 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: date le dimensioni della maggior parte delle attività HPC, l'archiviazione dei dati scalabile è una considerazione importante durante l'esecuzione di carichi di lavoro HPC. I cloud provider che possono archiviare e gestire facilmente grandi quantità di dati (ad esempio tramite Filestore High Scale Cloud Storage o DDN EXAScaler) 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.
Velocità e prestazioni
Il computing ad alte prestazioni è in grado di elaborare dati e attività molto più velocemente rispetto a un singolo server o computer. In un normale sistema di computing, attività che potrebbero richiedere settimane o mesi possono richiedere ore nell'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.
R&S accelerata
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 HPC e i supercomputer 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.
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 di business, prevedere le fluttuazioni del mercato e dare 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 (computing ad alte prestazioni) sta accelerando il progresso scientifico, tecnologico e commerciale, aiutando l'umanità a costruire un futuro più prospero.
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 astronomici di satelliti e telescopi, per creare nuovi materiali, scoprire nuovi farmaci o modellare 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.
Design
I produttori spesso utilizzano l'HPC (computing ad alte prestazioni) e l'intelligenza artificiale per progettare nuove macchine, come aerei e automobili, all'interno di software prima di realizzare prototipi fisici. Senza la potenza di calcolo dell'HPC, la progettazione e il rendering di potenziali modelli richiederebbero molto più tempo e rallenterebbero il processo di produzione. I produttori di chip per computer utilizzano l'HPC per modellare nuovi progetti di chip prima della prototipazione nella fonderia.
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 avranno bisogno di manutenzione. La maggior parte delle previsioni meteorologiche viene eseguita con il computing ad alte prestazioni, che consente ai meteorologi di prevedere i percorsi delle tempeste o i modelli del cambiamento climatico.
Analisi dei dati
L'HPC (computing ad alte prestazioni) è in grado di analizzare i set di dati più grandi. Se applicato con applicazioni di machine learning e intelligenza artificiale, l'HPC può aiutare a formulare consigli o a eseguire il rilevamento di attività fraudolente per le carte di credito. L'HPC ha notevolmente aumentato la velocità di sequenziamento dei genomi.
Inizia a creare su Google Cloud con 300 $ di crediti gratuiti e oltre 20 prodotti Always Free.