Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Guide de l'utilisateur des ressources en file d'attente

Les ressources en file d'attente vous permettent de demander des ressources Cloud TPU en file d'attente. Lorsque vous demandez des ressources en file d'attente, la requête est ajoutée à une file d'attente gérée par le service Cloud TPU. Lorsque la ressource demandée devient disponible, elle est attribuée à votre projet Google Cloud pour une utilisation exclusive immédiate. Il restera attribué à votre projet, sauf si vous le supprimez ou qu'il est préempté. Seuls les TPU préemptifs sont éligibles à la préemption.

Vous pouvez spécifier une heure de début (facultative) et/ou une heure de fin dans une requête de ressource mise en file d'attente. L'heure de début indique l'heure à laquelle la requête doit être satisfaite au plus tôt. Si une demande n'est pas satisfaite avant l'heure de fin spécifiée, elle expire. La requête reste dans la file d'attente après expiration.

Les requêtes de ressources en file d'attente peuvent présenter l'un des états suivants:

ACCEPTED
La requête a été ajoutée à la file d'attente.
ACTIVE
La requête a été allouée.
FAILED
Impossible de traiter la demande.
SUSPENDED
Les ressources spécifiées dans la requête ont été supprimées.

Lorsqu'une requête de ressource en file d'attente est ajoutée à la file d'attente, son état est défini sur ACCEPTED. Il reste dans cet état jusqu'à ce qu'il soit alloué ou que son intervalle d'allocation soit écoulé.

Lorsque la requête est allouée, son état est défini sur ACTIVE. Lorsqu'un intervalle d'allocation d'une requête arrive à expiration, son état reste à l'état ACCEPTED, mais ne peut plus être attribué. Les requêtes de ressources en file d'attente restent dans la file d'attente jusqu'à leur suppression explicite.

Lorsque les ressources spécifiées dans une requête sont supprimées, la requête passe à l'état SUSPENDED. Lorsqu'une requête est à l'état SUSPENDED, elle ne peut plus être allouée.

En cas de problème avec une requête ou si les ressources demandées ne sont pas disponibles, la transition passe à l'état FAILED.

Vous pouvez afficher l'état de la ressource en file d'attente à l'aide des commandes gcloud alpha compute tpus queued-resources describe ou gcloud alpha compute tpus queued-resources list.

Lorsque les requêtes de ressources en file d'attente sont à l'état ACTIVE, vous pouvez gérer vos VM TPU en suivant les instructions du guide utilisateur de la VM Cloud TPU.

Prérequis :

Avant de lire ce guide, veillez à:

Demande de ressource en file d'attente à l'aide d'un quota réservé

Vous pouvez demander une ressource en file d'attente à l'aide d'un quota réservé en spécifiant l'option --reserved dans votre commande gcloud ou guaranteed.reserved=true dans votre requête curl.

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project \
--zone us-central2-b \
--accelerator-type v4-8 \
--runtime-version tpu-vm-tf-2.11.0 \
--reserved

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-8',
      'runtime_version': 'tpu-vm-tf-2.11.0',
    }
  }
},
'guaranteed': {
  'reserved': true,
}
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

Description des paramètres de commande

queued-resource-id
ID attribué par l'utilisateur à la requête de ressource mise en file d'attente.
node-id
ID du TPU créé par l'utilisateur lorsque la requête de ressource en file d'attente est allouée.
project
Votre projet Google Cloud.
zone
Zone dans laquelle vous prévoyez de créer votre Cloud TPU.
accelerator-type
Le type de Cloud TPU à créer.
runtime-version
La version du logiciel Cloud TPU
reserved
Utilisez cette option lorsque vous demandez des ressources en file d'attente dans le cadre d'une réservation Cloud TPU.

Demander une ressource en file d'attente à la demande

Vous pouvez demander une ressource en file d'attente à la demande en omettant l'option --reserved dans la commande gcloud CLI ou en omettant guaranteed.reserved dans votre requête curl. Exemple :

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project \
--zone us-central2-b \
--accelerator-type v4-8 \
--runtime-version tpu-vm-tf-2.11.0 \

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-8',
      'runtime_version': 'tpu-vm-tf-2.11.0',
    }
  }
}
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

Description des paramètres de commande

queued-resource-id
ID attribué par l'utilisateur à la requête de ressource mise en file d'attente.
node-id
ID du TPU créé par l'utilisateur lorsque la requête de ressource en file d'attente est allouée.
project
Votre projet Google Cloud.
zone
Zone dans laquelle vous prévoyez de créer votre Cloud TPU.
accelerator-type
Le type de Cloud TPU à créer.
runtime-version
La version du logiciel Cloud TPU

Demander une ressource en file d'attente qui expire après une durée spécifiée

Vous pouvez spécifier la durée de validité d'une requête de ressources en file d'attente à l'aide de l'option --valid-until-duration. L'exemple suivant demande une version 4-32 qui expire si elle n'est pas remplie dans six heures. Après la durée spécifiée, la requête reste dans la file d'attente, mais elle ne peut plus être allouée.

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project-id \
--zone us-central2-b \
--accelerator-type v4-32 \
--runtime-version tpu-vm-tf-2.11.0-pod \
--valid-until-duration 6h

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-32',
      'runtime_version': 'tpu-vm-tf-2.11.0-pod',
    }
  }
},
'queueing_policy': {
  'valid_until_duration': {
    'seconds': 21600
  }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

Description des paramètres de commande

queued-resource-request-id
ID attribué par l'utilisateur à la requête de ressource mise en file d'attente.
node-id
ID du TPU créé par l'utilisateur en réponse à la requête.
project
Projet Google Cloud dans lequel la ressource mise en file d'attente est allouée.
zone
Zone dans laquelle vous prévoyez de créer votre Cloud TPU.
accelerator-type
Le type de Cloud TPU à créer.
runtime-version
La version du logiciel Cloud TPU
valid-until-duration
Durée de validité de la requête. Pour en savoir plus sur les formats de durée, consultez Date et heure de l'article sur Google Cloud CLI.

Demander une ressource en file d'attente après un délai spécifié

Vous pouvez spécifier une durée après laquelle une ressource doit être allouée à l'aide de l'option --valid-after-time.

La commande suivante demande l'allocation d'un TPU v4-4096 doté de la version d'exécution tpu-vm-tf-2.11.0 après 9h le 14 décembre 2022.

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project-id \
--zone us-central2-b \
--accelerator-type v4-4096 \
--runtime-version tpu-vm-tf-2.11.0-pod \
--valid-after-time 2022-12-14T09:00:00Z

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-4096',
      'runtime_version': 'tpu-vm-tf-2.11.0-pod',
    }
  }
},
'queueing_policy': {
  'valid_after_time': {
    'seconds': 2022-12-14T09:00:00Z
  }
}
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

Description des paramètres de commande

queued-resource-request-id
ID attribué par l'utilisateur à la requête de ressource mise en file d'attente.
node-id
ID du TPU créé par l'utilisateur en réponse à la requête.
project
Projet Google Cloud dans lequel la ressource mise en file d'attente est allouée.
zone
Zone dans laquelle vous prévoyez de créer votre Cloud TPU.
accelerator-type
Le type de Cloud TPU à créer.
runtime-version
La version du logiciel Cloud TPU
valid-after-time
Après ce délai, la ressource doit être allouée. Pour en savoir plus sur les formats de durée, consultez Sujet Google Cloud CLI datetime.

Demander une ressource en file d'attente avant une heure spécifiée

Vous pouvez spécifier une heure avant laquelle la ressource doit être allouée à l'aide de l'option --valid-until-time. Si un TPU n'est pas alloué à ce moment-là, la requête reste dans la file d'attente, mais ne peut plus être allouée.

La commande suivante permet de créer un nœud TPU v4-4096 avec la version d'exécution tpu-vm-tf-2.10.0-pod au plus tard le 14 décembre 2022 à 9h00. Consultez la page Dates pour connaître les formats d'horodatage acceptés.

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project-id \
--zone us-central2-b \
--accelerator-type v4-4096 \
--runtime-version tpu-vm-tf-2.11.0-pod \
--valid-until-time 2022-12-14T09:00:00Z

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-4096',
      'runtime_version': 'tpu-vm-tf-2.11.0-pod',
    }
  }
},
'queueing_policy': {
  'valid_until_time': {
    'seconds': 1655197200
  }
}
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

Description des paramètres de commande

queued-resource-request-id
ID attribué par l'utilisateur à la requête de ressource mise en file d'attente.
node-id
ID du TPU créé par l'utilisateur en réponse à la requête.
project
ID du projet où la ressource mise en file d'attente est allouée.
zone
Zone dans laquelle vous prévoyez de créer votre Cloud TPU.
accelerator-type
Le type de Cloud TPU à créer.
runtime-version
La version du logiciel Cloud TPU
valid-until-time
Délai après lequel la demande est annulée. Pour en savoir plus sur les formats de durée, consultez Date et heure de l'article sur Google Cloud CLI.

Demander une ressource préemptive en file d'attente

Vous pouvez demander une ressource en file d'attente préemptive. Une ressource préemptive est une ressource qui peut être attribuée à une autre charge de travail si des ressources supplémentaires en ont besoin. Les ressources préemptives coûtent moins cher, et vous pouvez accéder aux ressources plus rapidement qu'une requête non préemptive.

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project-id \
--zone us-central2-b \
--accelerator-type v4-8 \
--runtime-version tpu-vm-tf-2.11.0 \
--best-effort

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-8',
      'runtime_version': 'tpu-vm-tf-2.11.0',
    }
  }
},
'best_effort': {}
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

Description des paramètres de commande

queued-resource-request-id
ID attribué par l'utilisateur à la requête de ressource mise en file d'attente.
node-id
ID du TPU créé par l'utilisateur en réponse à la requête.
project
ID du projet où la ressource mise en file d'attente est allouée.
zone
Zone dans laquelle vous prévoyez de créer votre Cloud TPU.
accelerator-type
Le type de Cloud TPU à créer.
runtime-version
La version du logiciel Cloud TPU
best-effort
Indicateur booléen spécifiant que la ressource en file d'attente est préemptive.

Demander une ressource en file d'attente dans une durée spécifiée

Vous pouvez spécifier la durée de validité de la requête à l'aide de l'option --valid-until-duration. Si la requête n'est pas allouée avant la fin de la durée, elle reste dans la file d'attente, mais elle ne peut plus être allouée. Dans l'exemple suivant, la requête v4-32 est allouée dans les six prochaines heures.

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project-id \
--zone us-central2-b \
--accelerator-type v4-32 \
--runtime-version tpu-vm-tf-2.11.0-pod \
--valid-until-duration 6h

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-32',
      'runtime_version': 'tpu-vm-tf-2.11.0-pod',
    }
  }
},
'queueing_policy': {
  'valid_until_duration': {
    'seconds': 21600
  }
},
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

Description des paramètres de commande

queued-resource-request-id
ID attribué par l'utilisateur à la requête de ressource mise en file d'attente.
node-id
ID du TPU créé par l'utilisateur en réponse à la requête.
project
ID du projet où la ressource mise en file d'attente est allouée.
zone
Zone dans laquelle vous prévoyez de créer votre Cloud TPU.
accelerator-type
Le type de Cloud TPU à créer.
runtime-version
La version du logiciel Cloud TPU
valid-until-duration
Durée de validité de la requête. Pour en savoir plus sur les formats de durée, consultez Date et heure de l'article sur Google Cloud CLI.

Demander l'allocation d'une ressource en file d'attente dans un intervalle spécifié

Vous pouvez spécifier un intervalle d'allocation à l'aide de n'importe quelle paire d'options –valid-after-time, –valid-after-duration, –valid-until-duration et –valid-until-time, à condition qu'un indicateur spécifie le début de l'intervalle d'allocation et que l'autre spécifie la fin de l'intervalle d'allocation. Si la requête n'a pas été allouée dans le délai spécifié, elle reste dans la file d'attente, mais elle ne sera pas provisionnée.

La commande suivante demande une version v4-32 dans les 5 heures et 30 minutes suivant l'heure actuelle. Consultez la section Date/Heure pour obtenir la liste des formats d'horodatage et de durée acceptés.

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project-id \
--zone us-central2-b \
--accelerator-type v4-32 \
--runtime-version tpu-vm-tf-2.11.0-pod \
--valid-after-duration 5h30m \
--valid-until-time 2022-12-14T09:00:00Z

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-32',
      'runtime_version': 'tpu-vm-tf-2.11.0-pod',
    }
  }
},
'queueing_policy': {
  'validInterval': {
    'startTime': '2022-12-10T14:30:00Z',
    'endTime': '2022-12-14T09:00:00Z'
  }
},
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

Description des options de commande

queued-resource-request-id
ID attribué par l'utilisateur à la requête de ressource mise en file d'attente.
node-id
ID du TPU créé par l'utilisateur en réponse à la requête.
project
ID du projet où la ressource mise en file d'attente est allouée.
zone
Zone dans laquelle vous prévoyez de créer votre Cloud TPU.
accelerator-type
Le type de Cloud TPU à créer.
runtime-version
La version du logiciel Cloud TPU
valid-until-timw
Délai après lequel la demande est annulée. Pour en savoir plus sur les formats de durée, consultez Date et heure de l'article sur Google Cloud CLI.
valid-until-duration
Durée de validité de la requête. Pour en savoir plus sur les formats de durée, consultez Date et heure de l'article sur Google Cloud CLI.

Supprimer une requête de ressource en file d'attente

Pour supprimer une requête de ressource en file d'attente, vous devez d'abord supprimer la VM TPU. Lorsque vous supprimez la VM TPU, la requête passe à l'état SUSPENDED.

Les commandes suivantes suppriment la requête de ressource en file d'attente nommée "my-queued-resource" dans le projet "my-project" dans la zone "us-central2-b".

gcloud

gcloud alpha compute tpus queued-resources delete your-queued-resource-id \
--project your-project-id \
--zone us-central2-b

curl

curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

HTTP

DELETE https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources/your-queued-resource-id

Description des options de commande

queued-resource-request-id
ID attribué par l'utilisateur à la requête de ressource mise en file d'attente.
project
Projet Google Cloud dans lequel la ressource mise en file d'attente est allouée.
zone
Zone dans laquelle vous prévoyez de créer votre Cloud TPU.

Récupérer les informations d'état et de diagnostic concernant une requête de ressource mise en file d'attente

Récupérez les informations d'état et de diagnostic d'une requête de ressource mise en file d'attente:

gcloud

gcloud alpha compute tpus queued-resources describe queued-resource-request-id \
--project your-project-id \
--zone us-central2-b

HTTP

GET https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/ us-central2-b/queuedResources/your-queued-resource-id

Description des options de commande

queued-resource-request-id
ID attribué par l'utilisateur à la requête de ressource mise en file d'attente.
project
ID du projet où la ressource mise en file d'attente est allouée.
zone
Zone dans laquelle vous prévoyez de créer votre Cloud TPU.

Si la requête échoue, la réponse contiendra des informations sur l'erreur. Le résultat de gcloud alpha compute tpus queued-resources describe ressemblera à ce qui suit:

name: projects/your-project-id/locations/us-central2-b/queuedResources/your-queued-resource-id
state:
  state: ACCEPTED
tpu:
  nodeSpec:
  - node:
      acceleratorType: v4-8
      bootDisk: {}
      networkConfig:
        enableExternalIps: true
      queuedResource: projects/your-project-number/locations/us-central2-b/queuedResources/your-queued-resource-id
      runtimeVersion: tpu-vm-tf-2.10.0
      schedulingConfig: {}
      serviceAccount: {}
      shieldedInstanceConfig: {}
      useTpuVm: true
    nodeId: your-node-id
    parent: projects/your-project-number/locations/us-central2-b

Répertorier les demandes de ressources en file d'attente dans votre projet

La commande suivante répertorie les requêtes de ressources en file d'attente dans le projet "your-project-id":

gcloud

gcloud alpha compute tpus queued-resources list --project your-project-id \
--zone us-central2-b

HTTP

GET https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources

Description des options de commande

project
Projet Google Cloud dans lequel la ressource mise en file d'attente est allouée.
zone
Zone dans laquelle vous prévoyez de créer votre Cloud TPU.

Gérer les requêtes de ressources en file d'attente à l'aide de curl

L'émission de commandes de l'API Resource Queued via HTTP nécessite un en-tête Authorization. Vous pouvez récupérer l'en-tête en exécutant gcloud auth print-access-token.

Créez un fichier (par exemple, "req.json") pour contenir le corps de la requête HTTP.

Pour demander un seul TPU, utilisez le texte suivant dans le corps de la requête HTTP:

{
    tpu: {
        node_spec: {
            parent: 'projects/your-project-number/locations/us-central2-b',
            node_id: 'your-node-id',
            node: {
                accelerator_type: 'v3-8',
                runtime_version: 'tpu-vm-tf-2.11.0'
            }
        }
    }
}

Pour demander un seul TPU avec un script de démarrage, utilisez le texte suivant dans le corps de la requête HTTP:

{
    tpu: {
        node_spec: {
            parent: 'projects/your-project-number/locations/us-central2-b',
            node_id: 'your-node-id',
            node: {
                accelerator_type: 'v2-8',
                runtime_version: 'tpu-vm-tf-2.11.0',
                metadata: {
                    "startup-script": "#! /bin/bash\npwd > /tmp/out.txt\nwhoami >> /tmp/out.txt"
                }
            }
        }
    }
}

La commande suivante montre comment effectuer la requête HTTP avec curl:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" -d @req.json \
  $ENDPOINT/$PARENT/queuedResources\?queued_resource_id\=${QUEUED_RESOURCE_ID}

La réponse à la commande se présente comme suit:

{
    "name": "projects/your-project-number/locations/us-central1-a/operations/operation-abc..",
    "metadata": {
        "@type": "type.googleapis.com/google.cloud.common.OperationMetadata",
        "createTime": "2022-02-02T22:06:27.402528581Z",
        "target": "projects/1234/locations/us-central1-a/queuedResources/my-queued-resource",
        "verb": "create",
        "cancelRequested": false,
        "apiVersion": "v2alpha1"
    },
    "done": false
}

Vous pouvez vérifier la progression de votre requête à l'aide de curl:

export ENDPOINT="https://tpu.googleapis.com/v2alpha1"
export OPERATION_NAME="projects/your-project-id/locations/us-central2-b/operations/operation-abc.."
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" $ENDPOINT/${OPERATION_NAME}

Vous pouvez vérifier l'état de toutes les demandes de ressources en file d'attente dans votre projet à l'aide de curl:

export ENDPOINT="https://tpu.googleapis.com/v2alpha1"
export PARENT="projects/your-project-id/locations/us-central2-b"
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" $ENDPOINT/$PARENT/queuedResources