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 à:
- Installez les composants alpha de Google Cloud CLI.
- Activez l'API Cloud TPU.
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