Ce document décrit les configurations à prendre en compte dans AI Hypercomputer 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 réduire 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é à la 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 pendant sept jours maximum. 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é à la réservation
Le modèle de provisionnement lié à la 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é à 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 la période de réservation, que vous utilisiez ou non cette 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 Google Cloud console, 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
"provisioningModel": "RESERVATION_BOUND"champ 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 la présentation de la création d'instances de calcul et de clusters. 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 pour la capacité partielle que Compute Engine peut fournir pendant que vous attendez la capacité totale nécessaire pour démarrer votre charge de travail. 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 lorsque vous créez une instance autonome ou un modèle d'instance pour un MIG, procédez comme suit :
Dans la Google Cloud console, dans la liste Modèle de provisionnement, sélectionnez Démarrage flexible.
Dans gcloud CLI, incluez le flag
--provisioning-model=FLEX_STARTdans la commande.Dans l'API Compute Engine, incluez le
"provisioningModel": "FLEX_START"champ 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éer des clusters Slurm :
Créer 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 Google Cloud console, dans la liste Modèle de provisionnement, sélectionnez Spot.
Dans gcloud CLI, incluez le flag
--provisioning-model=SPOTdans la commande.Dans l'API Compute Engine, incluez le
"provisioningModel": "SPOT"champ 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 la 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 programmeur de charges de travail si nécessaire :
Types de déploiement de bloc de réservation
Si vous utilisez le modèle de provisionnement lié à la réservation lorsque vous créez des instances de calcul ou des clusters 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 à bande passante élevée et à faible latence cohérente à l'aide de la structure réseau de machine learning (ML) dynamique de Google.
Accès à la topologie 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 basé sur la topologie lorsque vous utilisez des orchestrateurs.
Contrôle précis de l'utilisateur sur les calendriers de maintenance pour maximiser la planification des tâches et la disponibilité, et minimiser les temps d'arrêt.
Mode de fonctionnement de la réservation
Si vous utilisez le modèle de provisionnement lié à la réservation, alors le type de machine que vous réservez détermine le mode de fonctionnement de la réservation pour votre capacité réservée. Chaque mode définit comment 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 de fonctionnement de la réservation définit les éléments suivants :
Qui gère la récupération : vous ou Google Cloud.
Quelle capacité 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 du placement : si vous pouvez afficher et démarrer la maintenance avant l'heure prévue pour les 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 de fonctionnement de la 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 :
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'après que vous avez obtenu plus de capacité.
Redémarrages d'instance automatisés: 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 sur 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 d'API potentielles : les appels à l'API de signalement d'hôte défectueux peuvent être limités par réservation.
Mode toute la capacité
En mode toute la 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 pour vos sous-blocs de réservation. Ces fonctionnalités vous offrent un contrôle total et précis sur le processus de maintenance et de récupération de vos instances.
Le mode toute la 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 d'instance manuels : 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 des sous-blocs : vous pouvez afficher la topologie, l'état et l'état de maintenance des réservations, des blocs de réservation et des sous-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.
Aucune limite de débit d'API : il n'existe aucune limite de débit lorsque vous effectuez des appels à l' API de signalement d'hôte défectueux.
Types de planification de la maintenance
Si vous utilisez le modèle de provisionnement lié à la réservation, alors Cluster Director fournit 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ée), ou si les instances peuvent être faiblement couplées et avoir une planification de la maintenance indépendante (indépendante).
Planification de la maintenance groupée
Le type de planification de la maintenance groupée permet de s'assurer que, quel que soit le moment où 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 tâche en vous offrant 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 programmeur 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 de la maintenance indépendante
Ce type de planification de la maintenance indépendante attribue aux instances des calendriers de maintenance différents. 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 calendriers de maintenance distincts.