Examiner les configurations des instances de calcul et des clusters

Ce document décrit les configurations d'AI Hypercomputer à prendre en compte avant de créer des instances et des clusters Compute Engine. L'examen des configurations disponibles permet de garantir des performances optimales pour vos charges de travail, ainsi que de minimiser les temps d'arrêt et les problèmes de performances.

Facteurs de configuration pour la création d'instances de calcul et de clusters

Avant de créer des instances de calcul et des clusters pour exécuter vos charges de travail, réfléchissez à la configuration à utiliser :

  1. Le modèle de provisionnement

  2. Outils de déploiement de clusters

  3. Si vous utilisez le modèle de provisionnement lié à la réservation, vous devez également tenir compte des facteurs suivants :

Modèles de provisionnement

En fonction de l'option de consommation que vous choisissez pour créer des instances ou des clusters de calcul, vous pouvez utiliser l'un des modèles de provisionnement suivants pour obtenir les ressources nécessaires à la création d'instances :

  • Lié à une réservation : vous pouvez réserver des ressources à prix réduit pour une date et une durée futures. Au début de la période de réservation, vous pouvez utiliser les ressources réservées pour créer des instances ou des clusters. Vous bénéficiez d'un accès exclusif aux ressources réservées pendant toute la période de réservation.

  • Démarrage flexible : vous pouvez demander des ressources à prix réduit pour une durée maximale de sept jours. Compute Engine s'efforce de planifier le provisionnement des ressources demandées dès qu'elles sont disponibles. Vous bénéficiez d'un accès exclusif aux ressources obtenues pendant la période demandée.

  • Spot : en fonction de la disponibilité, vous pouvez obtenir immédiatement des ressources à prix très réduit. Toutefois, Compute Engine peut arrêter ou supprimer des instances à tout moment pour récupérer de la capacité.

Modèle de provisionnement lié à une réservation

Le modèle de provisionnement lié à une réservation associe les instances de calcul que vous avez créées à la capacité que vous avez réservée précédemment. Lorsque vous réservez de la capacité, Compute Engine crée une réservation vide. Ensuite, à l'heure de début de la réservation, voici ce qui se produit :

  • Compute Engine ajoute le nombre d'instances réservées à la réservation. Vous bénéficiez d'un accès exclusif à la capacité réservée jusqu'à l'heure de fin de la réservation.

  • Google Cloud vous facture la capacité réservée jusqu'à la fin de votre période de réservation, que vous utilisiez ou non la capacité.

Vous pouvez ensuite utiliser les ressources réservées pour créer des instances sans frais supplémentaires. Vous ne payez que les ressources qui ne sont pas incluses dans la réservation, comme les disques ou les adresses IP.

Pour spécifier le modèle de provisionnement lié à la réservation lorsque vous créez des instances de calcul ou des MIG, procédez comme suit :

  • Dans la console Google Cloud , dans la liste Modèle de provisionnement, sélectionnez Lié à la réservation.

  • Dans la Google Cloud CLI, incluez le flag --provisioning-model=RESERVATION_BOUND dans la commande.

  • Dans l'API Compute Engine, incluez le champ "provisioningModel": "RESERVATION_BOUND" dans le corps de la requête.

Pour en savoir plus sur la définition de ces paramètres lorsque vous créez des instances ou des MIG après avoir réservé de la capacité, consultez Présentation de la création d'instances et de clusters de calcul. Si vous utilisez Cluster Toolkit pour déployer vos clusters, le plan de cluster définit le modèle de provisionnement pour vous.

Modèle de provisionnement Démarrage flexible

Le modèle de provisionnement à démarrage flexible vous permet de créer des VM à démarrage flexible autonomes ou d'ajouter des VM à démarrage flexible à un groupe d'instances géré (MIG) lorsque la capacité demandée est disponible. Lorsque vous ajoutez des VM à démarrage flexible à un MIG à l'aide de requêtes de redimensionnement, le MIG crée les instances simultanément. Cette approche vous permet d'éviter des frais inutiles liés à la capacité partielle que Compute Engine peut fournir en attendant que la capacité totale nécessaire au démarrage de votre charge de travail soit disponible. Le modèle de provisionnement à démarrage flexible provisionne les ressources à partir d'un pool de capacité sécurisé, ce qui augmente vos chances d'obtenir des ressources très demandées, comme des GPU.

Pour spécifier le modèle de provisionnement à démarrage flexible lorsque vous créez une instance autonome ou un modèle d'instance pour un MIG, procédez comme suit :

  • Dans la console Google Cloud , dans la liste Modèle de provisionnement, sélectionnez Démarrage flexible.

  • Dans gcloud CLI, incluez l'option --provisioning-model=FLEX_START dans la commande.

  • Dans l'API Compute Engine, incluez le champ "provisioningModel": "FLEX_START" dans le corps de la requête.

Pour en savoir plus sur la création d'instances ou de clusters qui utilisent le modèle de provisionnement à démarrage flexible, consultez les documents suivants :

Modèle de provisionnement Spot

Le modèle de provisionnement de VM spot vous permet de créer des instances de calcul à prix très réduit en fonction de la disponibilité. Toutefois, Compute Engine peut arrêter ou supprimer les instances créées à tout moment pour récupérer de la capacité. Ce processus est appelé préemption.

Pour spécifier le modèle d'approvisionnement spot lorsque vous créez des instances ou des MIG, procédez comme suit :

  • Dans la console Google Cloud , dans la liste Modèle de provisionnement, sélectionnez Spot.

  • Dans gcloud CLI, incluez l'option --provisioning-model=SPOT dans la commande.

  • Dans l'API Compute Engine, incluez le champ "provisioningModel": "SPOT" dans le corps de la requête.

Pour en savoir plus sur la définition de ces paramètres lorsque vous créez des instances ou des MIG, consultez Présentation de la création d'instances de calcul et de clusters.

Outils de déploiement de cluster

Cluster Toolkit est un outil de déploiement Open Source recommandé pour créer des clusters accélérés par GPU. Cluster Toolkit peut déployer des clusters Google Kubernetes Engine (GKE) ou Slurm.

Vous pouvez également choisir de provisionner vos groupes d'instances de calcul à l'aide de l'une des méthodes suivantes, puis d'intégrer votre propre planificateur de charge de travail si nécessaire :

Types de déploiement des blocs de réservation

Si vous utilisez le modèle de provisionnement lié à la réservation lorsque vous créez des instances ou des clusters de calcul A4X Max, A4X, A4, A3 Ultra, A3 Mega et A3 High (8 GPU), les machines que vous recevez sont automatiquement déployées dans des blocs d'hôtes à allocation dense. Ce déploiement offre les avantages suivants :

  • Mise en réseau non bloquante pour une connectivité d'instance cohérente à faible latence et à bande passante élevée grâce à la structure réseau de machine learning (ML) dynamique de Google.

  • Accès à la topologie du réseau, qui fournit une vue hiérarchique de la proximité relative entre les instances. Cette fonctionnalité est utile pour les cas d'utilisation avancés de planification des tâches.

  • Placement précis et tenant compte de la topologie lorsque vous utilisez des orchestrateurs.

  • Contrôle précis des utilisateurs sur les plannings de maintenance pour maximiser la planification des tâches et le temps d'activité, et minimiser les temps d'arrêt.

Mode de fonctionnement des réservations

Si vous utilisez le modèle de provisionnement lié à une réservation, le type de machine que vous réservez détermine le mode opérationnel de la réservation pour votre capacité réservée. Chaque mode définit la façon de répondre aux erreurs d'hôte ou aux rapports d'hôte défectueux, ainsi que votre niveau de visibilité et de contrôle sur l'infrastructure de la réservation.

Chaque mode opérationnel de réservation définit les éléments suivants :

  • Qui gère la récupération : vous ou Google Cloud.

  • Capacité utilisée pour la récupération : uniquement votre capacité réservée, ou capacité dans ou en dehors de vos réservations.

  • Votre niveau de contrôle de l'emplacement : indique si vous pouvez afficher et démarrer la maintenance avant l'heure prévue pour des sous-blocs de réservation spécifiques afin de bénéficier d'un contrôle précis.

Lorsque vous réservez de la capacité pour créer des instances de calcul ou des clusters, vous devez choisir l'un des modes opérationnels de réservation suivants : mode géré ou mode toute la capacité.

Mode géré

En mode géré, Google Cloud gère automatiquement le processus de maintenance et de récupération de vos instances de calcul après des erreurs d'hôte ou des rapports d'hôte défectueux. Cette approche est idéale lorsque votre charge de travail nécessite une grande stabilité et que vous préférez un processus automatisé pour minimiser les temps d'arrêt.

Le mode géré présente les caractéristiques suivantes :

  • N'utiliser la capacité réservée que pour la récupération : Compute Engine n'utilise votre capacité réservée que pour redémarrer les instances. S'il n'y a pas de capacité disponible dans vos réservations, Compute Engine ne redémarre les instances qu'une fois que vous avez obtenu plus de capacité.

  • Redémarrages automatiques des instances : Google Cloud gère l'ensemble du processus de récupération d'une instance. Lorsque la maintenance de l'hôte est requise, Compute Engine migre automatiquement vos instances vers d'autres machines disponibles dans votre réservation et les redémarre.

  • Gestion et visibilité des blocs : vous pouvez afficher la topologie, l'état et l'état de maintenance des réservations et des blocs de réservations individuels. Vous pouvez également recevoir des notifications de maintenance et, si vous le souhaitez, démarrer la maintenance avant l'heure prévue pour ces ressources.

  • Limites de débit potentielles de l'API : les appels à l'API report faulty host peuvent être soumis à une limite de débit par réservation.

Mode "Toute la capacité"

Dans tous les modes de capacité, vous êtes responsable de la gestion du processus de récupération d'une instance de calcul. Vous devez démarrer manuellement la maintenance après des erreurs d'hôte ou des rapports d'hôte défectueux. Contrairement au mode géré, vous pouvez également afficher et lancer la maintenance de vos sous-blocs de réservation. Ces fonctionnalités vous permettent de contrôler entièrement et précisément le processus de maintenance et de récupération de vos instances.

Le mode "Toute capacité" présente les caractéristiques suivantes :

  • Utiliser la capacité réservée et non réservée pour la récupération : vous pouvez utiliser vos ressources réservées, ainsi que toutes les ressources disponibles en dehors de votre réservation, pour vous aider à migrer et à redémarrer une instance lorsque son hôte échoue.

  • Redémarrages manuels des instances : vous êtes responsable du processus de récupération d'une instance. Lorsque la maintenance de l'hôte est requise en raison d'une erreur d'hôte ou d'un rapport d'hôte défectueux, Compute Engine arrête votre instance. Vous ne pouvez redémarrer l'instance qu'une fois la maintenance terminée.

  • Gestion et visibilité des blocs et sous-blocs : vous pouvez afficher la topologie, l'état de fonctionnement et l'état de maintenance des réservations, blocs de réservation et sous-blocs de réservation individuels. Vous pouvez également recevoir des notifications de maintenance et, si vous le souhaitez, lancer la maintenance avant l'heure prévue pour ces ressources.

  • Aucune limite de débit d'API : aucune limite de débit ne s'applique lorsque vous appelez l'API Report faulty host.

Types de planification de la maintenance

Si vous utilisez le modèle de provisionnement lié à une réservation, Cluster Director propose des options pour planifier la maintenance des hôtes pour les instances de calcul en cours d'exécution dans votre cluster. Lorsque vous réservez de la capacité, vous pouvez spécifier si vous souhaitez regrouper les instances et planifier la maintenance de manière synchronisée (groupée), ou si les instances peuvent être faiblement couplées et avoir une planification de maintenance indépendante (indépendante).

Planification groupée de la maintenance

Le type de planification de la maintenance groupée permet de s'assurer que, quelle que soit la date à laquelle Compute Engine provisionne une instance de calcul, toutes les instances exécutant la même charge de travail ont la même fréquence de maintenance planifiée. Cette maintenance étroitement couplée vous permet d'optimiser les performances de votre job en vous donnant un contrôle total sur votre capacité utilisée et inutilisée.

Un type de planification de la maintenance de groupe est utile dans les cas suivants :

  • Votre environnement utilise un planificateur de tâches, tel que Slurm ou GKE.

  • Vous souhaitez exécuter des charges de travail d'entraînement ou d'autres charges de travail de calcul hautement parallélisées.

Planification indépendante de la maintenance

Ce type de planification de la maintenance indépendante attribue des plannings de maintenance différents aux instances. Cette configuration est idéale si vous souhaitez exécuter une inférence ou un entraînement à échelle limitée, où les charges de travail s'exécutent plus efficacement lorsqu'elles disposent de plannings de maintenance distincts.

Étape suivante