Cluster HPC distribuito nel cloud

Pipelines
Archiviazione BLOB
Batch
Monitoraggio

Idea della soluzione

Se si desidera vedere questo articolo con altre informazioni, ad esempio potenziali casi d'uso, servizi alternativi, considerazioni sull'implementazione o linee guida sui prezzi, è possibile inviare commenti e suggerimenti GitHub!

Le applicazioni HPC (High Performance Computing) possono essere ridimensionate fino a migliaia di core di calcolo, estendere Big Compute locale o essere eseguite come soluzione nativa del cloud al 100%. Questa soluzione HPC si basa sul servizio gestito di Azure: Azure Batche avviata da un Azure Pipelines processo. Questi servizi vengono eseguiti in un ambiente a disponibilità elevata, con patch e supportati, consentendo di concentrarsi sulla soluzione anziché sull'ambiente in cui vengono eseguiti.

Architettura

Diagramma dell'architettura Scaricare una versione SVG di questa architettura.

La soluzione prevede i passaggi seguenti:

  1. Azure Pipelines avvia una pipeline che compila il progetto di codice del team e lo archivia come eseguibile in Archiviazione di Azure
  2. Il processo della pipeline continua caricando alcuni dati di elaborazione nell'account di archiviazione.
  3. Infine, Azure Pipelines richieste che il servizio Azure Batch avviare il processo di elaborazione, completando la pipeline.
  4. Il Azure Batch copia i file eseguibili del programma e i dati di input dalla memoria e lo assegna a un pool di nodi di calcolo
  5. Il servizio Batch esegue la gestione dei processi e delle attività per il pool, ritentando o riassegnando le attività quando i nodi completano il lavoro.
  6. Quando i nodi di calcolo funzionano, Monitoraggio di Azure dati sulle prestazioni dal pool (CPU, memoria, I/O su disco) e dai file di log. Il team può studiare questi dati di telemetria per creare processi migliori in futuro.
  7. Quando i nodi di calcolo completano le attività, re come output i dati del programma Archiviazione di Azure per la revisione del team.

Componenti

  • Azure Pipelines compila e testa i progetti di codice e avvia i processi HPC nel Azure Batch servizio.
  • Archiviazione di Azure ospita i dati HPC e i file eseguibili usati in un processo.
  • Azure Batch pianifica i processi e le attività in un numero elevato di nodi e gestisce tutte le risorse di calcolo.
  • Le macchine virtuali di Azure vengono eseguite come computer di lavoro, eseguendo le attività di calcolo.
  • Rete virtuale offre connettività IP tra le risorse di calcolo e gli altri servizi cloud, oltre qualsiasi comunicazione Nativa Infiniband o RDMA.
  • Monitoraggio di Azure raccoglie le metriche delle prestazioni e i log dalle risorse cloud per report, avvisi e risposta automatizzata.

Considerazioni

I pool di calcolo batch non devono contenere hardware di base. Le macchine virtuali specializzate con processori GPU e rete avanzata devono essere usate da Azure Batch. Sono disponibili macchine virtuali ottimizzate per GPU con GPU NVIDIA Tesla e rete Infiniband ad alta velocità effettiva.

I pool di calcolo batch possono ridimensionareautomaticamente , che aumenta e riduce il numero di nodi nel pool quando cambia la quantità di lavoro. Invece di pagare per i membri del pool inutilizzati, la scalabilità automatica può ridurre i costi di calcolo di un processo solo alle risorse che eseguono attività.

Prezzi

Per esplorare il costo di esecuzione di questo scenario, usare il calcolatore prezzi di Azure,che preconfigura tutti i servizi di Azure.

Azure Batch è un servizio gratuito e i clienti pagano solo per i costi di rete, archiviazione e macchina virtuale sottostanti. In questa soluzione sono previsti costi aggiuntivi per i servizi Azure Pipelines e Monitoraggio di Azure servizio. In particolare Azure Batch, tuttavia, è un'opzione per acquistare software di rendering della grafica (ad esempio Autodesk Maya e Chaos Group V-Ray) a una tariffa al minuto. Per informazioni Azure Batch prezzi, vedere Prezzi.

Passaggi successivi