Concetti relativi alla pianificazione e alla scalabilità automatica di CycleCloud

CycleCloud non è un'utilità di pianificazione, ma piuttosto una piattaforma che consente agli utenti di distribuire la propria utilità di pianificazione in Azure, per gestire e distribuire processi in un cluster di nodi. CycleCloud offre anche un'API REST e una libreria Python per lo sviluppo di adattatori di scalabilità automatica per le utilità di pianificazione, consentendo a questi cluster gestiti di ridimensionare le dimensioni in base alla lunghezza delle code e dei criteri di governance dei processi.

Diagramma dell'orchestrazione

Pianificazione

Un'utilità di pianificazione è un software che accetta un elenco di processi (o attività) e distribuisce queste attività in pool di risorse disponibili, prendendo in considerazione i requisiti delle risorse dei processi, nonché le dipendenze e le priorità tra processi. Questi elenchi di processi vengono comunemente definiti code.

CycleCloud include il supporto incorporato per una serie di utilità di pianificazione di uso comune (PBS Professional OSS, Slurm, IBM LSF, Grid Engine e HT Condor), fornendo modelli per la distribuzione di queste utilità di pianificazione in Azure. Questi modelli sono topologie predefinite, che rappresentano le procedure consigliate per la creazione di cluster HPC in Azure che sfruttano funzionalità specifiche specifiche, ad esempio la rete InfiniBand a bassa latenza.

Vengono inoltre creati progetti per ogni utilità di pianificazione e usati per installare e inizializzare i daemon dell'utilità di pianificazione nei nodi head e di calcolo.

Adattatori dell'utilità di pianificazione

Gli adattatori creati per ogni tipo di utilità di pianificazione svolgono due ruoli primari: 1) requisiti aggregati delle risorse dalle code dell'utilità di pianificazione e 2) traducono i requisiti delle risorse in richieste di allocazione per set di dimensioni di macchine virtuali di Azure. Queste richieste di allocazione vengono costruite tenendo presenti determinati vincoli, ad esempio le quote delle macchine virtuali, i limiti alle dimensioni del cluster e i limiti imposti dalla topologia di rete InfiniBand (per le dimensioni appropriate delle macchine virtuali). In alcuni aspetti questi adattatori assomigliano a un broker che negozia la domanda e l'offerta da più parti.

Monitoraggio

Il monitoraggio è un processo che viene eseguito nel server applicazioni CycleCloud ed esegue periodicamente il polling dei servizi di Azure per la disponibilità delle risorse nella sottoscrizione di Azure. Questo monitoraggio fornisce queste informazioni agli adattatori dell'utilità di pianificazione per la gestione delle richieste.

Allocatore del nodo

L'allocatore del nodo viene eseguito nel server applicazioni CycleCloud. Riceve la richiesta di allocazione dagli adattatori dell'utilità di pianificazione tramite un'API REST, effettua il provisioning delle risorse di Azure necessarie per soddisfare la richiesta e presenta le risorse di cui è stato effettuato il provisioning agli adattatori dell'utilità di pianificazione come set di nodi.

Nota

Anche se i concetti sottostanti precedenti sono comuni tra le utilità di pianificazione, i dettagli di implementazione differiscono tra le utilità di pianificazione. Per altre informazioni dettagliate su ogni implementazione, vedere le singole pagine dell'utilità di pianificazione.