HPC (High Performance Computing) in Azure

Introduzione all'HPC

HpC (High Performance Computing), detto anche "big compute", usa un numero elevato di computer basati su CPU o GPU per risolvere attività matematiche complesse.

In molti settori ci si avvale dell'HPC per risolvere i problemi più difficili, con carichi di lavoro come:

  • Genomica
  • Simulazioni di petrolio e gas
  • Dati finanziari
  • Progettazione di semiconduttori
  • Progettazione
  • Modellazione meteo

Quali sono le differenze dell'HPC sul cloud?

Una delle principali differenze tra un sistema HPC locale e una nel cloud è la possibilità di aggiungere e rimuovere in modo dinamico le risorse man mano che sono necessarie. La scalabilità dinamica rimuove il collo di bottiglia della capacità di calcolo e consente invece ai clienti di dimensionare correttamente l'infrastruttura per i loro requisiti.

Gli articoli seguenti contengono altri dettagli sulla scalabilità dinamica.

Elenco di controllo per l'implementazione

Se si intende implementare una soluzione HPC in Azure, assicurarsi di consultare gli argomenti seguenti:

  • Scegliere l'architettura appropriata in base ai requisiti
  • Identificare le opzioni di calcolo appropriate per uno specifico carico di lavoro
  • Identificare la soluzione di archiviazione che soddisfi specifiche esigenze
  • Decidere come gestire tutte le risorse
  • Ottimizzare l'applicazione per il cloud
  • Proteggere l'infrastruttura

Infrastruttura

Per creare un sistema HPC sono necessari molti componenti dell'infrastruttura. Calcolo, archiviazione e rete forniscono i componenti sottostanti, indipendentemente dal modo in cui si sceglie di gestire i carichi di lavoro HPC.

Esempi di architetture HPC

Esistono molti modi diversi per progettare e implementare l'architettura HPC in Azure. Le applicazioni HPC possono offrire scalabilità fino a migliaia di core di calcolo, estendere i cluster locali o essere eseguite come soluzioni cloud native al 100%.

Gli scenari seguenti descrivono alcuni modi comuni in cui vengono sviluppate le soluzioni HPC.

  • Diagramma che mostra l'architettura HPC di esempio per i servizi di progettazione con supporto informatico in Azure.

    Servizi CAE (Computer-Aided Engineering) in Azure

    Fornire una piattaforma software come un servizio (SaaS) per CAE (Computer-Aided Engineering) in Azure.

  • Il diagramma mostra un'architettura HPC di esempio per simulazioni di fluidità computazionali in Azure.

    Simulazioni di fluidodinamica computazionale in Azure

    Eseguire simulazioni di fluidodinamica computazionale (CFD) in Azure.

  • Diagramma che mostra un'architettura HPC di esempio per il rendering video 3D in Azure.

    Rendering di video 3D in Azure

    Eseguire carichi di lavoro HPC nativi in Azure con il servizio Azure Batch

Calcolo

Azure offre un'ampia gamma di dimensioni ottimizzate per i carichi di lavoro a uso intensivo di CPU e GPU.

Macchine virtuali basate su CPU

Macchine virtuali abilitate per GPU

Le VM serie N sono dotate di GPU con tecnologia NVIDIA progettate per applicazioni a elevato utilizzo di calcolo o di grafica, inclusi apprendimento e visualizzazione basati sull'intelligenza artificiale (AI).

Storage

I carichi di lavoro Batch e HPC su larga scala hanno richieste di archiviazione dati e di accesso che superano le capacità dei tradizionali file system cloud. Esistono molte soluzioni che gestiscono sia la velocità che le esigenze di capacità delle applicazioni HPC in Azure:

Per altre informazioni sul confronto tra Lustre, GlusterFS e BeeGFS in Azure, vedere il blog di Parallel Files Systems on Azure e Lustre on Azure (Sistemi di file paralleli in Azure).

Rete

Le VM H16r, H16mr, A8, e A9 possono connettersi a una rete RDMA back-end a velocità effettiva elevata. Questa rete può migliorare le prestazioni delle applicazioni parallele strettamente associate in esecuzione in Microsoft Message Passing Interface meglio nota come MPI o Intel MPI.

Gestione

Procedure manuali

La creazione di un sistema HPC da zero in Azure offre una notevole flessibilità, ma è spesso molto intensivo per la manutenzione.

  1. Configurare un ambiente cluster personalizzato in macchine virtuali di Azure o set di scalabilità di macchine virtuali.
  2. Usare i modelli di Azure Resource Manager per distribuire gestori di carichi di lavoro, infrastruttura e applicazioni.
  3. Scegliere dimensioni delle VM basate su CPU e GPU che includano hardware specializzato e connessioni di rete specifiche per carichi di lavoro MPI o GPU.
  4. Aggiungere un'archiviazione ad alte prestazioni per carichi di lavoro con utilizzo intensivo di I/O.

Burst ibrido e nel cloud

Se si dispone di un sistema HPC locale esistente che si vuole connettere ad Azure, sono disponibili diverse risorse per iniziare.

Prima di tutto, vedere l'articolo sulle opzioni per connettere una rete locale ad Azure nella documentazione. Da qui è possibile trovare informazioni aggiuntive su queste opzioni di connettività:

Dopo aver stabilito la connettività di rete, è possibile iniziare a usare le risorse di calcolo del cloud su richiesta con le funzionalità burst dell'attuale soluzione di gestione dei carichi di lavoro.

Soluzioni del Marketplace

In Azure Marketplace sono disponibili molti gestori dei carichi di lavoro.

Azure Batch

Azure Batch è un servizio di piattaforma per l'esecuzione efficiente di applicazioni parallele e HPC su larga scala nel cloud. Azure Batch pianifica l'esecuzione del lavoro a elevato utilizzo di calcolo su un pool di macchine virtuali gestito e può ridimensionare automaticamente le risorse di calcolo in base alle esigenze dei processi.

I fornitori o sviluppatori di SaaS possono usare gli strumenti e gli SDK di Batch per integrare le applicazioni HPC o i carichi di lavoro dei contenitori con Azure, gestire temporaneamente i dati in Azure e creare pipeline per l'esecuzione di processi.

In Azure Batch tutti i servizi sono in esecuzione nel cloud, l'immagine seguente illustra l'aspetto dell'architettura con Azure Batch, con le configurazioni di scalabilità e pianificazione dei processi in esecuzione nel cloud, mentre i risultati e i report possono essere inviati all'ambiente locale.

Diagramma che mostra l'architettura HPC di esempio per Azure Batch.

Azure CycleCloud

Azure CycleCloud offre il modo più semplice per gestire carichi di lavoro HPC con qualsiasi utilità di pianificazione (come Slurm, Grid Engine, HPC Pack, HTCondor, LSF, PBS Pro o Symphony) in Azure

CycleCloud consente di:

  • Distribuire cluster completi e altre risorse, tra cui un'utilità di pianificazione, VM di calcolo, risorse di archiviazione, risorse di rete e cache
  • Orchestrare processi, dati e flussi di lavoro sul cloud
  • Offrire agli amministratori il controllo completo su quali utenti possono eseguire i processi, dove e a quale costo
  • Personalizzare e ottimizzare i cluster tramite funzionalità avanzate per criteri e governance, tra cui i controlli per i costi, l'integrazione con Active Directory, il monitoraggio e la creazione di report
  • Usare l'utilità di pianificazione di processi e le applicazioni correnti senza modifiche
  • Sfruttare i vantaggi della scalabilità automatica predefinita e di architetture di riferimento convalidate per una vasta gamma di carichi di lavoro HPC e di settori
Modello di bursting ibrido/cloud

In questo diagramma di esempio ibrido è possibile vedere chiaramente come questi servizi vengono distribuiti tra il cloud e l'ambiente locale. Possibilità di eseguire processi in entrambi i carichi di lavoro. Diagramma che mostra l'architettura HPC di esempio per CycleCloud in Azure in un ambiente ibrido.

Modello nativo del cloud

Il diagramma di esempio del modello nativo del cloud riportato di seguito illustra come il carico di lavoro nel cloud gestirà tutto mantenendo comunque la connessione all'ambiente locale.

Diagramma che mostra un'architettura HPC di esempio per CycleCloud in Azure nel modello nativo cloud.

Grafico di confronto

Funzionalità Azure Batch Azure CycleCloud
Utilità di pianificazione API e strumenti batch e script da riga di comando nelle portale di Azure (cloud native). Usare utilità di pianificazione HPC standard, ad esempio Slurm, PBS Pro, LSF, Grid Engine e HTCondor o estendere i plug-in di scalabilità automatica CycleCloud per lavorare con un'utilità di pianificazione personalizzata.
Risorse di calcolo Nodi software distribuita come servizio - Piattaforma distribuita come servizio Piattaforma distribuita come servizio : piattaforma distribuita come servizio
Strumenti di monitoraggio Monitoraggio di Azure Monitoraggio di Azure, Grafana
Personalizzazione Pool di immagini personalizzati, immagini di terze parti, accesso all'API Batch. Usare l'API RESTful completa per personalizzare ed estendere le funzionalità, distribuire un'utilità di pianificazione personalizzata e supportare i responsabili dei carichi di lavoro esistenti
Integrazione Pipeline di Synapse, Azure Data Factory, interfaccia della riga di comando di Azure Interfaccia della riga di comando predefinita per Windows e Linux
Tipo di utente Sviluppatori Amministratori e utenti HPC classici
Tipo di lavoro Batch, flussi di lavoro Strettamente accoppiato (interfaccia/MPI per il passaggio di messaggi).
Supporto di Windows Varia a seconda della scelta dell'utilità di pianificazione

Gestori del carico di lavoro

Di seguito sono riportati esempi di cluster e gestori del carico di lavoro eseguibili nell'infrastruttura di Azure. Creare cluster autonomi nelle macchine virtuali di Azure oppure eseguire il potenziamento in macchine virtuali di Azure da un cluster locale.

Contenitori

È anche possibile usare i contenitori per gestire alcuni carichi di lavoro HPC. Servizi come Azure Kubernetes semplificano la distribuzione di un cluster Kubernetes gestito in Azure.

Gestione costi

I costi dell'HPC in Azure possono essere gestiti in vari modi. Assicurarsi di aver esaminato le opzioni di acquisto di Azure per trovare il metodo più appropriato per la propria organizzazione.

Sicurezza

Per una panoramica delle procedure consigliate per la sicurezza, vedere la documentazione sulla sicurezza di Azure.

Oltre alle configurazioni di rete disponibili nella sezione Cloud Bursting , è possibile implementare una configurazione hub/spoke per isolare le risorse di calcolo:

Applicazioni HPC

Eseguire applicazioni HPC personalizzate o commerciali in Azure. Per alcuni esempi in questa sezione è disponibile un benchmark per una scalabilità efficiente con altre VM o core di calcolo. Visitare Azure Marketplace per le soluzioni pronte per la distribuzione.

Nota

Verificare le licenze del fornitore di qualsiasi applicazione commerciale o altre restrizioni per l'esecuzione nel cloud. Non tutti i fornitori offrono licenze con pagamento in base al consumo. Può essere necessario un server di gestione licenze nel cloud per la soluzione o connettersi a un server licenze locale.

Applicazioni tecniche

Grafica e rendering

AI e apprendimento avanzato

Provider di MPI

Visualizzazione remota

Eseguire macchine virtuali basate su GPU in Azure nella stessa area dell'output HPC per ottenere la latenza, l'accesso e visualizzare in remoto tramite Desktop virtuale Azure, Citrix o VMware Horizon.

Benchmark delle prestazioni

Storie dei clienti

Sono molti i clienti che hanno visto un grande successo usando Azure per i carichi di lavoro HPC. Di seguito sono riportati alcuni case study dei clienti:

Altre informazioni importanti

  • Assicurarsi che la quota di CPU virtuali sia stata aumentata prima di provare a eseguire carichi di lavoro su larga scala.

Passaggi successivi

Per gli annunci più recenti, vedere le risorse seguenti:

Esempi di Microsoft Batch

Queste esercitazioni forniscono informazioni dettagliate sull'esecuzione di applicazioni in Microsoft Batch: