Informazioni su Slurm su GKE

Questo documento ti aiuta a comprendere i vantaggi e il modello di responsabilità condivisa per il deployment e la gestione dei cluster Slurm su Google Kubernetes Engine (GKE). Slurm è un gestore dei workload e uno scheduler dei job open source altamente scalabile incentrato sui carichi di lavoro di computing ad alte prestazioni (HPC).

Questo documento si concentra sul componente aggiuntivo Slurm Operator per GKE, che integra l'interfaccia Slurm per i job batch con la scalabilità e la gestione efficiente delle risorse di GKE.

Questo documento è rivolto ad amministratori, operatori e sviluppatori di dati che vogliono attivare e configurare Slurm con il componente aggiuntivo Slurm Operator per GKE.

Perché utilizzare Slurm su GKE

L'esecuzione di Slurm su GKE consente di configurare ambienti in cui i job di addestramento Slurm possono essere eseguiti in parallelo con altri carichi di lavoro Kubernetes, come i job Ray o l'inferenza di serving, nello stesso pool di calcolo condiviso.

Cloud de Confiance by S3NS offre i seguenti modi per eseguire Slurm su GKE:

  • Cluster Director:una soluzione gestita che offre un'esperienza preconfigurata e basata su opinioni. Ti consigliamo di utilizzare Cluster Director se vuoi un'esperienza gestita con una configurazione minima, in cui Google gestisce il piano di controllo Slurm, le versioni software e le configurazioni. Per saperne di più, consulta Cluster Director.

  • Componente aggiuntivo Slurm Operator per GKE:una tecnologia open source sviluppata nell'ambito del progetto open source Slinky, offre un'installazione gestita di Slurm Operator. Questa installazione gestita segue le best practice di Google. Il componente aggiuntivo Slurm Operator per GKE aiuta gli ingegneri della piattaforma che vogliono creare piattaforme personalizzate che eseguono workload di intelligenza artificiale (AI), machine learning (ML) e HPC su macchine ottimizzate per l'acceleratore. Ti consigliamo di utilizzare il componente aggiuntivo Slurm Operator per GKE se hai bisogno del controllo completo delle configurazioni di Slurm, vuoi integrare container personalizzati o devi eseguire Slurm con altri workload, come Ray o l'inferenza, sullo stesso cluster. Il componente aggiuntivo Slurm Operator per GKE offre i seguenti vantaggi:

    • Infrastruttura unificata: puoi gestire un singolo cluster GKE sia per i job batch HPC sia per i microservizi. In questo modo si riducono i silos operativi.
    • Scalabilità efficiente:il componente aggiuntivo Slurm Operator per GKE utilizza il provisioning rapido dei nodi e il bin packing efficiente di GKE per ottimizzare l'utilizzo delle risorse.
    • Hardware ad alte prestazioni:puoi accedere agli acceleratori più recenti di Cloud de Confiance by S3NS, come TPU e GPU, utilizzando i comandi Slurm.

Le sezioni seguenti di questo documento si concentrano sul componente aggiuntivo Slurm Operator.

Comprendere il livello dell'infrastruttura

In genere, Slurm viene implementato direttamente su server bare metal o VM. In queste configurazioni, Slurm presuppone un insieme di nodi relativamente statico che gestisce per la durata del suo ciclo di vita.

GKE, d'altra parte, è un servizio gestito che astrae le VM sottostanti presentandole come nodi in un pool dinamico. GKE gestisce automaticamente la pianificazione e la scalabilità di questi nodi.

Con il componente aggiuntivo Slurm Operator per GKE, Slurm viene eseguito come workload su GKE. In questo modello, GKE e Slurm forniscono le seguenti funzionalità:

  • GKE come gestore dell'infrastruttura:GKE fornisce e gestisce i nodi, il networking e la sicurezza sottostanti.
  • Slurm come workload manager:Slurm fornisce l'interfaccia per consentire agli utenti di inviare e gestire i job batch.

Questa convergenza crea uno stack eterogeneo in cui i job Slurm possono condividere lo stesso hardware sottostante (come GPU e TPU) con applicazioni Kubernetes, come Ray o l'inferenza.

Come funziona il componente aggiuntivo Slurm Operator

Quando abiliti il componente aggiuntivo Slurm Operator per GKE nei tuoi cluster GKE, GKE esegue i seguenti passaggi:

  1. GKE installa e ospita l'operatore Slurm. Questo operatore viene eseguito nel control plane GKE e gestisce il ciclo di vita dei componenti Slurm di cui è stato eseguito il deployment nel cluster. Questo operatore gestisce automaticamente i prerequisiti come la generazione di certificati e la gestione delle risorse personalizzate.
  2. Una volta eseguito l'operatore, definisci la topologia del cluster Slurm utilizzando le risorse personalizzate di Kubernetes.
  3. L'operatore esegue il deployment dei pod necessari, come controller, accesso e worker, in modo che corrispondano alle specifiche del tuo workload.

Risorse personalizzate

Il componente aggiuntivo Slurm Operator per GKE utilizza le seguenti risorse personalizzate per gestire il cluster Slurm:

  • NodeSet: definisce un insieme di nodi worker omogenei. Puoi mappare i worker Slurm a tipi di hardware o node pool GKE specifici. Ad esempio, puoi creare un NodeSet per le GPU H100 e un altro per le TPU.
  • Controller:definisce un componente principale del cluster Slurm, ovvero un controller. Questa risorsa crea un componente slurmctld in un pod e tutti gli altri componenti, ad esempio un NodeSet o un LoginSet.
  • LoginSet: definisce i nodi di accesso in cui gli utenti accedono per inviare i job.
  • Restapi:definisce un componente API REST del cluster Slurm.
  • Contabilità:se configurato, esegue il deployment del componente slurmdbd per gestire la contabilità dei job e il monitoraggio dell'utilizzo, in genere connesso a un database Cloud SQL.

Le responsabilità condivise del componente aggiuntivo Slurm Operator

Quando scegli di eseguire Slurm su GKE con il componente aggiuntivo Slurm Operator per GKE, Cloud de Confiance by S3NS e condividi le responsabilità. Questa integrazione ti offre la flessibilità di personalizzare l'ambiente mentre Google gestisce il livello di orchestrazione.

Responsabilità di Google

  • Ciclo di vita dell'operatore:installa l'operatore Slurm.
  • Control plane GKE:gestisci l'affidabilità e l'uptime del control plane GKE.
  • CustomResourceDefinition di Kubernetes:gestisci le risorse personalizzate richieste per Slurm.
  • Immagini di base:forniscono immagini container ottimizzate di proprietà di Google per i componenti Slurm. L'utilizzo di queste immagini è facoltativo. Quando configuri il cluster Slurm, puoi utilizzare queste immagini fornite da Google o le tue immagini.

Responsabilità del cliente

  • Configurazione di Slurm:definisci la topologia, le partizioni, i limiti e i plug-in del cluster Slurm utilizzando i file YAML.
  • Invio di job:gestisci l'accesso degli utenti e i flussi di lavoro di invio dei job.
  • Immagini personalizzate:mantieni le immagini container personalizzate utilizzate per i nodi di accesso o worker se le immagini Google predefinite non soddisfano requisiti specifici.
  • Dipendenze esterne:gestisci risorse esterne come Cloud SQL per la contabilità o Filestore per l'archiviazione condivisa.

Per maggiori informazioni, consulta Responsabilità condivisa di GKE.

Passaggi successivi

Per iniziare a utilizzare il componente aggiuntivo Slurm Operator per GKE: