Créer un MIG comprenant des VM avec GPU


Ce document explique comment créer un groupe d'instances géré (MIG) comprenant des VM avec GPU. Il explique comment ajouter simultanément des VM avec GPU dans le groupe à l'aide de demandes de redimensionnement.

L'utilisation d'une requête de redimensionnement améliore l'obtention des VM avec GPU dans un MIG. Dans la requête, spécifiez le nombre de VM avec GPU ainsi que la durée pendant laquelle vous souhaitez exécuter ces VM. Un mécanisme de programmeur sous-jacent gère toutes les requêtes de redimensionnement dans Compute Engine et planifie efficacement les requêtes en fonction des durées et de la disponibilité des VM. Lorsque les ressources deviennent disponibles, le MIG crée automatiquement les VM.

Si la tâche exécutée sur ces VM se termine avant la durée demandée, vous pouvez supprimer ces VM. Sinon, le MIG supprime automatiquement les VM à la fin de la durée définie.

Vous pouvez également découvrir d'autres scénarios de base pour la création d'un MIG.

Avant de commencer

  • Pour vous assurer que vous disposez d'un quota de GPU suffisant pour les ressources que vous demandez, vérifiez votre quota de GPU.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Limites

Consultez les limites de création d'une requête de redimensionnement dans un MIG.

Créer un MIG et ajouter des VM avec GPU en même temps

Pour créer un MIG et ajouter des VM avec GPU en même temps dans le groupe, procédez comme suit :

  1. Créez un modèle d'instance, qui est nécessaire pour créer un MIG. Le MIG crée chaque VM du groupe en fonction du modèle d'instance. Dans le modèle, spécifiez la configuration des VM avec GPU et les configurations supplémentaires requises pour utiliser des requêtes de redimensionnement.

    Pour en savoir plus sur les modèles d'instances, consultez la page À propos des modèles d'instances.

  2. Créez un MIG et une requête de redimensionnement pour ajouter toutes les VM avec GPU à la fois.

Créer un modèle d'instance

Créez un modèle d'instance comme décrit dans cette section, puis utilisez-le pour créer un MIG.

Console

  1. Accédez à la page Modèles d'instance.

    Accéder à la page Modèles d'instances

  2. Cliquez sur Créer un modèle d'instance.

  3. Dans le champ Nom, saisissez un nom pour le modèle d'instance.

  4. Dans la section Configuration de la machine, procédez comme suit :

    1. Cliquez sur l'onglet GPU.
    2. Dans la liste Type de GPU, sélectionnez le type de GPU.
    3. Dans la liste Nombre de GPU, sélectionnez le nombre de GPU.
    4. Dans le menu Type de machine, sélectionnez un type de machine.
  5. Développez la section Options avancées et procédez comme suit :

    1. Développez la section Gestion.
    2. Dans la liste Réservations, sélectionnez Ne pas utiliser.
  6. Cliquez sur Créer.

gcloud

Créez un modèle d'instance à l'aide de la commande instance-templates create.

La commande suivante crée un modèle d'instance global.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --reservation-affinity=none

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine compatible avec les GPU. Si vous spécifiez un type de machine N1, incluez l'option --accelerator pour spécifier le nombre et le type de GPU à associer à vos VM.

REST

Créez un modèle d'instance en envoyant une requête POST à la méthode instanceTemplates.insert.

La requête suivante crée un modèle d'instance global.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "mode": "READ_WRITE",
        "type": "PERSISTENT",
        "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/family/debian-10"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-IP",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "NO_RESERVATION"
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE"
    }
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel vous souhaitez créer le MIG.
  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine compatible avec les GPU. Si vous spécifiez un type de machine N1, incluez l'option guestAccelerators pour spécifier le nombre et le type de GPU à associer à vos VM.

Créer un MIG et ajouter des VM avec GPU en même temps

Créez un MIG en désactivant les réparations, comme décrit dans cette section. Pour utiliser la requête de redimensionnement dans le MIG, vous ne devez pas configurer l'autoscaling dans le groupe.

gcloud

  1. Créez un MIG zonal à l'aide de la commande bêta instance-groups managed create.

    gcloud beta compute instance-groups managed create INSTANCE_GROUP_NAME \
       --template=INSTANCE_TEMPLATE_NAME \
       --size=0 \
       --zone=ZONE \
       --default-action-on-vm-failure=do_nothing
    
  2. Dans le MIG, créez une requête de redimensionnement à l'aide de la commande bêta instance-groups managed resize-requests create. Spécifiez le nombre de VM avec GPU souhaité et la durée d'exécution de ces VM.

    gcloud beta compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
       --resize-request=RESIZE_REQUEST_NAME \
       --resize-by=COUNT \
       --requested-run-duration=RUN_DURATION\
       --zone=ZONE
    

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG.
  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance pour les VM avec GPU.
  • ZONE : une des zones disponibles pour Compute Engine.
  • RESIZE_REQUEST_NAME : nom de la requête de redimensionnement.
  • COUNT : nombre de VM à ajouter simultanément dans le groupe.
  • RUN_DURATION : durée d'exécution des VM demandées. La valeur doit correspondre au nombre de jours, d'heures, de minutes ou de secondes, suivi respectivement de d, h, m et s. Par exemple, spécifiez 30m pour 30 minutes ou 1d2h3m4s pour 1 jour, 2 heures, 3 minutes et 4 secondes. Cette valeur doit être comprise entre 10 minutes et 7 jours.

REST

  1. Créez un groupe d'instances géré zonal en envoyant une requête POST à la méthode bêta instanceGroupManagers.insert.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    
    {
     "versions": [
       {
         "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
       }
     ],
     "name": "INSTANCE_GROUP_NAME",
     "targetSize": 0,
     "instanceLifecyclePolicy": {
       "defaultActionOnFailure": "DO_NOTHING"
     }
    }
    
  2. Dans le MIG, créez une requête de redimensionnement en envoyant une requête POST à la méthode bêta instanceGroupManagerResizeRequests.insert. Dans le corps de la requête, spécifiez le nombre de VM avec GPU que vous souhaitez créer simultanément et la durée pendant laquelle vous souhaitez exécuter ces VM.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    
    {
     "name": "RESIZE_REQUEST_NAME",
     "resizeBy": COUNT,
     "requestedRunDuration": {
       "seconds": "RUN_DURATION"
     }
    }
    

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel vous souhaitez créer le MIG.
  • INSTANCE_GROUP_NAME : nom du MIG.
  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance pour les VM avec GPU.
  • ZONE : une des zones disponibles pour Compute Engine.
  • RESIZE_REQUEST_NAME : nom de la requête de redimensionnement.
  • COUNT : nombre de VM à ajouter simultanément dans le groupe.
  • RUN_DURATION : durée, en secondes, pendant laquelle vous souhaitez que les VM demandées s'exécutent avant que le MIG ne les supprime automatiquement. La valeur doit être comprise entre 600, soit 600 secondes (10 minutes), et 604800, soit 604 800 secondes (7 jours).

La requête de redimensionnement que vous créez reste à l'état ACCEPTED jusqu'à ce que le MIG crée toutes les VM avec GPU demandées. Une fois toutes les VM avec GPU créées dans le groupe, l'état de la requête passe à SUCCEEDED.

Étapes suivantes