Condividi tramite


Stile dell'architettura big compute

Azure
Azure Batch

Il termine big compute descrive i carichi di lavoro su larga scala che richiedono un numero elevato di core, spesso numerati in centinaia o migliaia. Gli scenari includono rendering delle immagini, fluidità, modellazione dei rischi finanziari, esplorazione del petrolio, progettazione di farmaci e analisi dello stress tecnico, tra gli altri.

Diagramma logico per lo stile dell'architettura big compute

Ecco alcune caratteristiche tipiche delle applicazioni big compute:

  • Il lavoro può essere suddiviso in attività discrete, che possono essere eseguite contemporaneamente in molti core.
  • Ogni attività è limitata. Richiede un input, esegue un'elaborazione e produce output. L'intera applicazione viene eseguita per un periodo di tempo limitato (da minuti a giorni). Un modello comune consiste nel effettuare il provisioning di un numero elevato di core in un burst e quindi passare a zero al termine dell'applicazione.
  • L'applicazione non deve rimanere aggiornata 24/7. Tuttavia, il sistema deve gestire gli errori del nodo o gli arresti anomali dell'applicazione.
  • Per alcune applicazioni, le attività sono indipendenti e possono essere eseguite in parallelo. In altri casi, le attività sono strettamente associate, ovvero devono interagire o scambiare risultati intermedi. In tal caso, prendere in considerazione l'uso di tecnologie di rete ad alta velocità, ad esempio InfiniBand e accesso diretto alla memoria remota (RDMA).
  • A seconda del carico di lavoro, è possibile usare dimensioni di macchine virtuali a elevato utilizzo di calcolo (H16r, H16mr e A9).

Quando usare questa architettura

  • Operazioni a elevato utilizzo di calcolo, ad esempio simulazione e scricchiolio numerico.
  • Le simulazioni a elevato utilizzo di calcolo e devono essere suddivise tra CPU in più computer (10-1000).
  • Simulazioni che richiedono una quantità eccessiva di memoria per un computer e devono essere suddivise in più computer.
  • Calcoli a esecuzione prolungata che richiederebbero troppo tempo per il completamento in un singolo computer.
  • Calcoli più piccoli che devono essere eseguiti 100 o 1000 volte, ad esempio simulazioni Monte Carlo.

Vantaggi

  • Prestazioni elevate con elaborazione "imbarazzantemente parallela".
  • Può sfruttare centinaia o migliaia di core del computer per risolvere problemi di grandi dimensioni più velocemente.
  • Accesso a hardware ad alte prestazioni specializzato, con reti InfiniBand dedicate ad alta velocità.
  • È possibile effettuare il provisioning delle macchine virtuali in base alle esigenze per eseguire il lavoro e quindi eliminarle.

Sfide

  • Gestione dell'infrastruttura di macchine virtuali.
  • Gestione del volume di scricchiolio numerico
  • Provisioning di migliaia di core in modo tempestivo.
  • Per le attività strettamente associate, l'aggiunta di più core può comportare una riduzione dei rendimenti. Potrebbe essere necessario sperimentare per trovare il numero ottimale di core.

Big Compute con Azure Batch

Azure Batch è un servizio gestito per l'esecuzione di applicazioni HPC (High Performance Computing) su larga scala.

Usando Azure Batch, si configura un pool di macchine virtuali e si caricano le applicazioni e i file di dati. Il servizio Batch effettua quindi il provisioning delle macchine virtuali, assegna le attività alle macchine virtuali, esegue le attività e monitora lo stato di avanzamento. Batch può aumentare automaticamente le istanze delle macchine virtuali in risposta al carico di lavoro. Batch fornisce anche la pianificazione dei processi.

Diagramma di Big Compute con Azure Batch

Big Compute in esecuzione in macchine virtuali

È possibile usare Microsoft HPC Pack per amministrare un cluster di macchine virtuali e pianificare e monitorare i processi HPC. Con questo approccio, è necessario effettuare il provisioning e gestire le macchine virtuali e l'infrastruttura di rete. Prendere in considerazione questo approccio se si hanno carichi di lavoro HPC esistenti e si vuole spostare alcuni o tutti in Azure. È possibile spostare l'intero cluster HPC in Azure oppure mantenere il cluster HPC locale, ma usare Azure per la capacità burst. Per altre informazioni, vedere Soluzioni Batch e HPC per carichi di lavoro di calcolo su larga scala.

HPC Pack distribuito in Azure

In questo scenario, il cluster HPC viene creato interamente in Azure.

Diagramma di HPC Pack distribuito in Azure

Il nodo head fornisce servizi di gestione e pianificazione dei processi al cluster. Per le attività strettamente associate, usare una rete RDMA che fornisce una larghezza di banda molto elevata, una comunicazione a bassa latenza tra le macchine virtuali. Per altre informazioni, vedere Distribuire un cluster HPC Pack 2016 in Azure.

Eseguire il burst di un cluster HPC in Azure

In questo scenario, un'organizzazione esegue HPC Pack in locale e usa le macchine virtuali di Azure per la capacità burst. Il nodo head del cluster è locale. ExpressRoute o gateway VPN connette la rete locale alla rete virtuale di Azure.

Diagramma di un cluster big compute ibrido

Passaggi successivi