CycleCloud: concetti di base

Al massimo, un sistema HPC (High Performance Computing) è un pool di risorse di calcolo supportate da file system efficienti e interconnessi da reti a bassa latenza. Queste risorse di calcolo sono in genere gestite da utilità di pianificazione HPC, applicazioni software che pianificano i processi.

La creazione di singoli sistemi HPC in Azure da unità di infrastruttura di base, ad esempio Macchine virtuali, dischi e interfacce di rete può essere complessa, soprattutto se queste risorse sono temporanee, esistenti solo per il tempo necessario per risolvere l'attività HPC. Inoltre, gli operatori vogliono creare più ambienti HPC separati che possono essere personalizzati per varie business unit, team di ricerca o singoli utenti. La gestione di questi più sistemi HPC può essere operativamente complessa.

Che cos'è CycleCloud?

Azure CycleCloud è uno strumento che consente di costruire sistemi HPC in Azure. Orchestra questi sistemi in modo che vengano ridimensionati in modo elastico in base alle attività HPC a portata di mano, senza dover gestire blocchi predefiniti di Azure di base. CycleCloud è progettato da un team di professionisti HPC esperti per amministratori e utenti HPC, in particolare gli utenti che cercano sistemi HPC in Azure che assomigliano all'infrastruttura HPC interna con cui hanno familiarità.

Diagramma dell'orchestrazione

CycleCloud è un server applicazioni installato in una macchina virtuale Linux in Azure o in un server locale che ha accesso alle API e alle risorse di Azure. CycleCloud acquisisce e effettua il provisioning di macchine virtuali di Azure per costruire cluster CycleCloud in grado di integrare utilità di pianificazione e applicazioni utente. CycleCloud offre anche integrazioni di scalabilità automatica per diverse utilità di pianificazione HPC e un agente CycleCloud in esecuzione nelle macchine virtuali di Azure.

Server applicazioni

Questo server applicazioni fornisce:

  1. API REST per la creazione e la gestione di sistemi HPC in Azure.
  2. Interfaccia utente grafica che consente a un utente di gestire e monitorare i sistemi HPC.
  3. Interfaccia della riga di comando che facilita l'integrazione di CycleCloud nei flussi di lavoro esistenti.
  4. Archivio dati NoSQL interno che memorizza nella cache lo stato del cluster e del nodo.
  5. Un sistema di allocazione e orchestrazione che acquisisce e gestisce le macchine virtuali di Azure
  6. Un sistema di monitoraggio dei nodi per le macchine virtuali esistenti che avvisano le modifiche dello stato.

Integrazioni

CycleCloud offre anche una serie di integrazioni in utilità di pianificazione comuni e nelle macchine virtuali di Azure. Specificare:

  1. Un sistema di preparazione e configurazione dei nodi per la conversione di una macchina virtuale di cui è stato effettuato il provisioning in un nodo HPC.
  2. Scalabilità automatica per le utilità di pianificazione HPC che convertono i requisiti delle attività dell'utilità di pianificazione HPC in risorse di Azure.

Cosa può fare CycleCloud

CycleCloud è destinato agli operatori HPC (amministratori e utenti) che distribuiscono sistemi HPC in Azure e che vogliono replicare l'infrastruttura in esecuzione internamente, dall'utilità di pianificazione HPC ai punti di montaggio del file system per le installazioni e l'accesso ai dati delle applicazioni. Questi utenti esaminano in particolare le applicazioni di supporto, i motori del flusso di lavoro e le pipeline di calcolo senza dover ristruire i processi interni.

CycleCloud offre una sintassi di creazione modelli avanzata e dichiarativa che consente agli utenti di descrivere il sistema HPC, dalla topologia del cluster (il numero e i tipi di nodi del cluster), fino ai punti di montaggio e alle applicazioni che verranno distribuite in ogni nodo. CycleCloud è progettato per l'uso con utilità di pianificazione HPC, ad esempio PBSPro, Slurm, IBM LSF, Grid Engine e HT Condor, consentendo agli utenti di creare code diverse in ogni utilità di pianificazione ed eseguirne il mapping ai nodi di calcolo di diverse dimensioni di VM in Azure. Inoltre, i plug-in di scalabilità automatica sono integrati con i nodi head dell'utilità di pianificazione in ascolto delle code dei processi in ogni sistema e ridimensionano di conseguenza il cluster di calcolo interagendo con l'API REST di scalabilità automatica in esecuzione nel server applicazioni.

Oltre al provisioning e alla creazione di nodi HPC, CycleCloud fornisce anche un framework per la preparazione e la configurazione di una macchina virtuale, in sostanza fornendo un sistema per la conversione di una macchina virtuale a barre in un componente funzionale di un sistema HPC. Tramite questo framework, gli utenti possono eseguire la configurazione dell'ultimo miglio in una macchina virtuale.

CycleCloud offre inoltre le funzionalità seguenti:

  • Accesso utente

    CycleCloud include il supporto predefinito per la creazione di account utente locali in ogni nodo di un sistema HPC. Con questo sistema, l'accesso utente può essere controllato tramite un singolo piano di gestione senza distribuire un servizio directory.

  • Monitoring

    Le metriche a livello di nodo vengono raccolte e visualizzate nell'interfaccia utente di CycleCloud. Sono utili per il monitoraggio del carico nel sistema e possono essere collegati ai servizi di creazione di report e avvisi.

  • Logging

    CycleCloud fornisce un sistema per la registrazione di attività ed eventi a livello di nodo e server applicazioni.

  • Portabilità

    Il sistema non impone l'uso di un'immagine o di un sistema operativo di macchina virtuale specifico. CycleCloud supporta i principali sistemi operativi Windows e Linux nei nodi HPC. Inoltre, gli utenti possono creare la propria immagine di macchina virtuale e usarla nel sistema HPC.

  • Infrastructure as code

    Poiché tutti gli elementi creati in CycleCloud sono definiti nei modelli e negli script di configurazione, i sistemi HPC distribuiti tramite CycleCloud sono ripetibili e portabili. Ciò garantisce la coerenza degli operatori nella distribuzione di sistemi HPC in ambienti diversi: Sandbox, Sviluppo, Test e Produzione. Gli operatori possono anche distribuire sistemi HPC identici per gruppi aziendali o team diversi per separare i problemi contabili.

  • Carichi di lavoro ad accoppiamento libero o strettamente accoppiato

    I cluster HPC creati da CycleCloud sono progettati non solo per supportare processi ad accoppiamento debole o in parallelo imbarazzante in cui la scalabilità (le dimensioni del cluster) è la preoccupazione principale. I cluster CycleCloud sono progettati anche tenendo presente il backbone Infiniband di Azure, supportando carichi di lavoro strettamente associati o basati su MPI in cui la prossimità dei nodi e la latenza di rete sono fondamentali. Questi concetti di scalabilità orizzontale e strettamente associati sono radicati nelle integrazioni dell'utilità di pianificazione supportate da CycleCloud.