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 d'optimiser les performances de 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 :
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 de calcul ou des clusters, 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 à un 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'à la 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 l'utilisiez ou non.
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_BOUNDdans 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 Compute. 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 de 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 Flex-start à 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 vous aide à augmenter vos chances d'obtenir des ressources très demandées, comme des GPU.
Pour spécifier le modèle de provisionnement à démarrage flexible lors de la création d'une instance autonome ou d'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 la gcloud CLI, incluez l'option
--provisioning-model=FLEX_STARTdans 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 :
Créez des clusters Slurm :
Créez des clusters GKE :
Modèle de provisionnement Spot
Le modèle de provisionnement 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 de provisionnement 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 la gcloud CLI, incluez l'option
--provisioning-model=SPOTdans 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 charges de travail si nécessaire :
Types de déploiement de blocs de réservation
Si vous utilisez le modèle de provisionnement lié à une réservation lors de la création d'instances de calcul ou de clusters de GPU en cluster, les machines que vous recevez sont automatiquement déployées dans des blocs d'hôtes densément alloués. Ce déploiement offre les avantages suivants :
Mise en réseau non bloquante pour une connectivité d'instance cohérente à bande passante élevée et à faible latence à l'aide de 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 de jobs.
Placement précis et tenant compte de la topologie lorsque vous utilisez des orchestrateurs.
Contrôle précis des utilisateurs sur les planifications de maintenance pour optimiser la planification des tâches et le temps d'activité, et minimiser les temps d'arrêt.
Mode opérationnel de réservation
Si vous utilisez le modèle de provisionnement lié à la réservation, le type de machine que vous réservez détermine le mode opérationnel de réservation pour votre capacité réservée. Chaque mode définit la manière 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é que vous utilisez pour la récupération : uniquement votre capacité réservée, ou la 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 d'obtenir 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 : le mode géré ou le mode de capacité totale.
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 stabilité élevée 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 :
Utiliser uniquement la capacité réservée pour la récupération : Compute Engine n'utilise que votre capacité réservée pour redémarrer les instances. Si aucune capacité n'est disponible dans vos réservations, Compute Engine ne redémarre les instances qu'une fois que vous avez obtenu plus de capacité.
Redémarrages d'instance automatisés : Google Cloud gère l'intégralité du processus de récupération d'une instance. Lorsqu'une 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éservation 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 de signalement d'hôte défectueux peuvent être limités par réservation.
Mode "Toute la capacité"
En mode 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 démarrer la maintenance de vos sous-blocs de réservation. Ces fonctionnalités vous permettent de contrôler de manière précise et complète le processus de maintenance et de récupération de vos instances.
Le mode de capacité totale 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 en cas de défaillance de son hôte.
Redémarrages manuels d'instances : vous êtes responsable du processus de récupération d'une instance. Lorsqu'une 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 des sous-blocs : vous pouvez afficher la topologie, l'état et l'état de maintenance des réservations individuelles, des blocs de réservation et des sous-blocs de réservation. 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.
Aucune limite de débit d'API : il n'y a pas de limite de débit lorsque vous appelez l'API de signalement d'hôte défectueux.
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 de l'hôte 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 synchroniser la planification de la maintenance (groupées), ou si les instances peuvent être faiblement couplées et disposer d'une planification de maintenance indépendante (indépendantes).
Planification de la maintenance groupée
Le type de planification de maintenance groupée permet d'aligner toutes les instances exécutant la même charge de travail sur la même fréquence de maintenance planifiée, quel que soit le moment où Compute Engine provisionne une instance de calcul. 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 maintenance de groupe est utile dans les cas suivants :
Votre environnement utilise un planificateur de jobs, 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 maintenance indépendante attribue des planifications de maintenance différentes 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 ont des planifications de maintenance distinctes.