À propos de Slurm sur GKE

Ce document vous aide à comprendre les avantages et le modèle de responsabilité partagée pour le déploiement et la gestion des clusters Slurm sur Google Kubernetes Engine (GKE). Slurm est un gestionnaire de charge de travail et un planificateur de tâches Open Source hautement évolutifs, axés sur les charges de travail de calcul hautes performances (HPC).

Ce document se concentre sur le module complémentaire Slurm Operator pour GKE, qui intègre l'interface Slurm pour les jobs par lot à l'évolutivité et à la gestion efficace des ressources de GKE.

Ce document s'adresse aux administrateurs de données, aux opérateurs et aux développeurs qui souhaitent activer et configurer Slurm avec le module complémentaire Slurm Operator pour GKE.

Pourquoi utiliser Slurm sur GKE ?

L'exécution de Slurm sur GKE vous permet de configurer des environnements dans lesquels les tâches d'entraînement Slurm peuvent s'exécuter en parallèle avec d'autres charges de travail Kubernetes, telles que les tâches Ray ou l'inférence de diffusion, sur le même pool de calcul partagé.

Cloud de Confiance by S3NS propose les méthodes suivantes pour exécuter Slurm sur GKE :

  • Cluster Director : solution gérée qui offre une expérience préconfigurée et orientée. Nous vous recommandons d'utiliser Cluster Director si vous souhaitez bénéficier d'une expérience gérée avec une configuration minimale, où Google gère le plan de contrôle, les versions logicielles et les configurations Slurm. Pour en savoir plus, consultez Cluster Director.

  • Module complémentaire Slurm Operator pour GKE : cette technologie Open Source développée dans le cadre du projet Open Source Slinky propose une installation gérée de Slurm Operator. Cette installation gérée suit les bonnes pratiques de Google. Le module complémentaire Slurm Operator pour GKE aide les ingénieurs de plate-forme qui souhaitent créer des plates-formes personnalisées exécutant des charges de travail d'intelligence artificielle (IA), de machine learning (ML) et de HPC sur des machines optimisées pour les accélérateurs. Nous vous recommandons d'utiliser le module complémentaire Slurm Operator pour GKE si vous avez besoin d'un contrôle total sur vos configurations Slurm, si vous souhaitez intégrer des conteneurs personnalisés ou si vous devez exécuter Slurm avec d'autres charges de travail, comme Ray ou l'inférence, sur le même cluster. Le module complémentaire Slurm Operator pour GKE présente les avantages suivants :

    • Infrastructure unifiée : vous pouvez gérer un seul cluster GKE pour les jobs par lot HPC et les microservices. Cela permet de réduire les silos opérationnels.
    • Scaling efficace : le module complémentaire Slurm Operator pour GKE utilise le provisionnement rapide des nœuds et le bin packing efficace de GKE pour optimiser l'utilisation des ressources.
    • Matériel hautes performances : vous pouvez accéder aux derniers accélérateurs de Cloud de Confiance by S3NS, tels que les TPU et les GPU, à l'aide des commandes Slurm.

Les sections suivantes de ce document se concentrent sur le module complémentaire Slurm Operator.

Comprendre la couche d'infrastructure

En règle générale, Slurm est déployé directement sur des serveurs physiques ou des VM. Dans ces configurations, Slurm suppose un ensemble de nœuds relativement statique qu'il gère pendant toute la durée de son cycle de vie.

GKE, en revanche, est un service géré qui abstrait les VM sous-jacentes en les présentant comme des nœuds dans un pool dynamique. GKE gère automatiquement la planification et le scaling de ces nœuds.

Avec le module complémentaire Slurm Operator pour GKE, Slurm s'exécute en tant que charge de travail sur GKE. Dans ce modèle, GKE et Slurm offrent les fonctionnalités suivantes :

  • GKE en tant que gestionnaire d'infrastructure : GKE fournit et gère les nœuds, le réseau et la sécurité sous-jacents.
  • Slurm comme gestionnaire de charge de travail : Slurm fournit l'interface permettant aux utilisateurs d'envoyer et de gérer les jobs par lot.

Cette convergence crée une pile hétérogène où les jobs Slurm peuvent partager le même matériel sous-jacent (comme les GPU et les TPU) avec les applications Kubernetes, telles que Ray ou le service d'inférence.

Fonctionnement du module complémentaire Slurm Operator

Lorsque vous activez le module complémentaire Slurm Operator pour GKE dans vos clusters GKE, GKE effectue les étapes suivantes :

  1. GKE installe et héberge l'opérateur Slurm. Cet opérateur s'exécute dans le plan de contrôle GKE et gère le cycle de vie des composants Slurm déployés dans votre cluster. Cet opérateur gère automatiquement les prérequis tels que la génération de certificats et la gestion des ressources personnalisées.
  2. Une fois l'opérateur en cours d'exécution, vous définissez la topologie de votre cluster Slurm à l'aide de ressources personnalisées Kubernetes.
  3. L'opérateur déploie les pods nécessaires (contrôleur, connexion et nœuds de calcul, par exemple) pour correspondre aux spécifications de votre charge de travail.

Ressources personnalisées

Le module complémentaire Slurm Operator pour GKE utilise les ressources personnalisées suivantes pour gérer le cluster Slurm :

  • NodeSet : définit un ensemble de nœuds de calcul homogènes. Vous pouvez mapper des nœuds de calcul Slurm à des pools de nœuds ou des types de matériel GKE spécifiques. Par exemple, vous pouvez créer un NodeSet pour les GPU H100 et un autre pour les TPU.
  • Contrôleur : définit un composant principal du cluster Slurm, qui est un contrôleur. Cette ressource crée un composant slurmctld dans un pod et tous les autres composants, tels qu'un NodeSet ou un LoginSet.
  • LoginSet : définit les nœuds de connexion sur lesquels les utilisateurs se connectent pour envoyer des jobs.
  • Restapi : définit un composant d'API REST du cluster Slurm.
  • Comptabilité : lorsqu'il est configuré, le composant slurmdbd est déployé pour gérer la comptabilité des jobs et le suivi de l'utilisation, généralement connecté à une base de données Cloud SQL.

Responsabilités partagées du module complémentaire Slurm Operator

Lorsque vous choisissez d'exécuter Slurm sur GKE avec le module complémentaire Slurm Operator pour GKE,Cloud de Confiance by S3NS et vous partagez les responsabilités. Cette intégration vous permet de personnaliser l'environnement de manière flexible, tandis que Google gère la couche d'orchestration.

Responsabilités de Google

  • Cycle de vie de l'opérateur : installez l'opérateur Slurm.
  • Plan de contrôle GKE : gérez la fiabilité et le temps d'activité du plan de contrôle GKE.
  • Kubernetes CustomResourceDefinition : gérez les ressources personnalisées requises pour Slurm.
  • Les images de base fournissent des images de conteneurs optimisées appartenant à Google pour les composants Slurm. L'utilisation de ces images est facultative. Lorsque vous configurez votre cluster Slurm, vous pouvez utiliser ces images fournies par Google ou vos propres images.

Responsabilités du client

  • Configuration Slurm : définissez la topologie, les partitions, les limites et les plug-ins du cluster Slurm à l'aide de fichiers YAML.
  • Envoi de jobs : gérez l'accès des utilisateurs et les workflows d'envoi de jobs.
  • Images personnalisées : conservez les images de conteneur personnalisées utilisées pour les nœuds de connexion ou de nœuds de calcul si les images Google par défaut ne répondent pas à des exigences spécifiques.
  • Dépendances externes : gérez les ressources externes telles que Cloud SQL pour la comptabilité ou Filestore pour le stockage partagé.

Pour en savoir plus, consultez Responsabilité partagée de GKE.

Étapes suivantes

Pour commencer à utiliser le module complémentaire Slurm Operator pour GKE, procédez comme suit :