Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Guida dell'utente sulle risorse in coda

Le risorse in coda ti consentono di richiedere le risorse Cloud TPU in coda. Quando richiedi risorse in coda, la richiesta viene aggiunta a una coda gestita dal servizio Cloud TPU. Quando la risorsa richiesta diventa disponibile, viene assegnata al tuo progetto Google Cloud per l'utilizzo immediato e esclusivo. Il job rimarrà assegnato al tuo progetto, a meno che non lo elimini o non venga prerilasciato. Solo le TPU prerilasciabili sono idonee per il prerilascio.

Puoi specificare un'ora di inizio facoltativa e/o un'ora di fine in una richiesta di risorsa in coda. L'ora di inizio specifica l'ora in cui soddisfare la richiesta. Se una richiesta non è stata completata entro l'ora di fine specificata, scade. La richiesta rimane in coda dopo la scadenza.

Le richieste di risorse in coda possono avere uno dei seguenti stati:

ACCEPTED
La richiesta è stata aggiunta alla coda.
ACTIVE
La richiesta è stata allocata.
FAILED
Impossibile completare la richiesta.
SUSPENDED
Le risorse specificate nella richiesta sono state eliminate.

Quando una richiesta di risorse in coda viene aggiunta alla coda, il suo stato viene impostato su ACCEPTED. Rimane in questo stato fino a quando non viene allocato o finché non scade l'intervallo di allocazione.

Quando la richiesta viene allocata, il suo stato viene impostato su ACTIVE. Quando scade un intervallo di allocazione di una richiesta, il suo stato rimane nello stato ACCEPTED, ma non è più idoneo per l'allocazione. Le richieste di risorse in coda rimangono nella coda finché non vengono eliminate esplicitamente.

Quando le risorse specificate in una richiesta vengono eliminate, la richiesta passa allo stato SUSPENDED. Quando una richiesta è in stato SUSPENDED, non è più idonea per un'ulteriore allocazione.

Se si verifica un problema con una richiesta o se le risorse richieste non sono disponibili, la richiesta passa allo stato FAILED.

Puoi visualizzare lo stato della risorsa in coda utilizzando i comandi gcloud alpha compute tpus queued-resources describe o gcloud alpha compute tpus queued-resources list.

Quando le richieste di risorse in coda sono nello stato ACTIVE, puoi gestire le tue VM TPU seguendo la guida dell'utente delle VM Cloud TPU".

Prerequisiti:

Prima di leggere questa guida, assicurati di:

Richiedi una richiesta di risorsa in coda utilizzando la quota riservata

Puoi richiedere una risorsa in coda utilizzando la quota riservata specificando il flag --reserved nel comando gcloud o guaranteed.reserved=true nella richiesta 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

Descrizioni dei parametri di comando

queued-resource-id
L'ID assegnato dall'utente della richiesta di risorse in coda.
node-id
L'ID TPU assegnato dall'utente che viene creato quando viene allocata la richiesta di risorse in coda.
project
Il tuo progetto Google Cloud.
zone
La zona in cui intendi creare la tua Cloud TPU.
accelerator-type
Il tipo di Cloud TPU da creare.
runtime-version
La versione software di Cloud TPU.
reserved
Utilizza questo flag quando richiedi risorse in coda come parte di una prenotazione Cloud TPU.

Richiedi una risorsa in coda on demand

Puoi richiedere una risorsa in coda on demand omettendo il flag --reserved nel comando gcloud CLI oppure omettendo guaranteed.reserved nella richiesta di curl. Ad esempio:

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

Descrizioni dei parametri di comando

queued-resource-id
L'ID assegnato dall'utente della richiesta di risorse in coda.
node-id
L'ID TPU assegnato dall'utente che viene creato quando viene allocata la richiesta di risorse in coda.
project
Il tuo progetto Google Cloud.
zone
La zona in cui intendi creare la tua Cloud TPU.
accelerator-type
Il tipo di Cloud TPU da creare.
runtime-version
La versione software di Cloud TPU.

Richiedi una risorsa in coda che scade dopo una durata specificata

Puoi specificare per quanto tempo una richiesta di risorsa in coda rimane valida utilizzando il flag --valid-until-duration. L'esempio seguente richiede la versione 4-32, che scade se non viene inserita entro sei ore. Dopo la durata specificata, la richiesta rimane in coda, ma non è più idonea all'allocazione.

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

Descrizioni dei parametri di comando

queued-resource-request-id
L'ID assegnato dall'utente della richiesta di risorse in coda.
node-id
L'ID definito dall'utente della TPU creata in risposta alla richiesta.
project
Il progetto Google Cloud a cui è allocata la risorsa in coda.
zone
La zona in cui intendi creare la tua Cloud TPU.
accelerator-type
Il tipo di Cloud TPU da creare.
runtime-version
La versione software di Cloud TPU.
valid-until-duration
La durata della richiesta. Per saperne di più sui formati di durata, consulta l'orario dell'argomento dell'interfaccia a riga di comando di Google Cloud

Richiedi una risorsa in coda dopo un periodo di tempo specificato

Puoi specificare il tempo dopo il quale una risorsa deve essere allocata utilizzando il flag --valid-after-time.

Il seguente comando richiede l'allocazione di una TPU v4-4096 con versione di runtime tpu-vm-tf-2.11.0 dopo le 09:00 del 14 dicembre 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

Descrizioni dei parametri di comando

queued-resource-request-id
L'ID assegnato dall'utente della richiesta di risorse in coda.
node-id
L'ID definito dall'utente della TPU creata in risposta alla richiesta.
project
Il progetto Google Cloud a cui è allocata la risorsa in coda.
zone
La zona in cui intendi creare la tua Cloud TPU.
accelerator-type
Il tipo di Cloud TPU da creare.
runtime-version
La versione software di Cloud TPU.
valid-after-time
Il periodo di tempo trascorso il quale la risorsa deve essere allocata. Per ulteriori informazioni sui formati relativi alla durata, consulta l'articolo Timestamp dell'argomento dell'interfaccia a riga di comando di Google Cloud.

Richiedi una risorsa in coda prima di un orario specificato

Puoi specificare un intervallo di tempo prima di assegnare la risorsa utilizzando il flag --valid-until-time. Se a questa data non è stata allocata una TPU, la richiesta rimane in coda ma non è più idonea all'allocazione.

Il seguente comando richiede la creazione di un nodo TPU v4-4096 con versione di runtime tpu-vm-tf-2.10.0-pod entro le 09:00 del 14 dicembre 2022. Vedi Datetime per un elenco dei formati timestamp supportati.

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

Descrizioni dei parametri di comando

queued-resource-request-id
L'ID assegnato dall'utente della richiesta di risorse in coda.
node-id
L'ID definito dall'utente della TPU creata in risposta alla richiesta.
project
L'ID del progetto a cui è allocata la risorsa in coda.
zone
La zona in cui intendi creare la tua Cloud TPU.
accelerator-type
Il tipo di Cloud TPU da creare.
runtime-version
La versione software di Cloud TPU.
valid-until-time
Il periodo di tempo trascorso il quale la richiesta viene annullata. Per saperne di più sui formati di durata, consulta l'orario dell'argomento dell'interfaccia a riga di comando di Google Cloud.

Richiedi una risorsa in coda prerilasciabile

Puoi richiedere una risorsa in coda prerilasciabile. Una risorsa prerilasciabile è una risorsa che può essere assegnata a un altro carico di lavoro se sono necessari risorse aggiuntive di altri carichi di lavoro. Le risorse prerilasciabili costano meno e potresti ottenere accesso alle risorse prima rispetto a una richiesta non prerilasciabile.

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

Descrizioni dei parametri di comando

queued-resource-request-id
L'ID assegnato dall'utente della richiesta di risorse in coda.
node-id
L'ID definito dall'utente della TPU creata in risposta alla richiesta.
project
L'ID del progetto a cui è allocata la risorsa in coda.
zone
La zona in cui intendi creare la tua Cloud TPU.
accelerator-type
Il tipo di Cloud TPU da creare.
runtime-version
La versione software di Cloud TPU.
best-effort
Un flag booleano che specifica che la risorsa in coda è prerilasciabile.

Richiedi una risorsa in coda entro una durata specificata

Puoi specificare per quanto tempo la richiesta rimane valida utilizzando il flag --valid-until-duration. Se la richiesta non viene allocata prima della scadenza, la richiesta rimane in coda, ma non è più idonea per l'allocazione. L'esempio seguente richiede l'allocazione di una v4-32 entro le prossime sei ore.

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

Descrizioni dei parametri di comando

queued-resource-request-id
L'ID assegnato dall'utente della richiesta di risorse in coda.
node-id
L'ID definito dall'utente della TPU creata in risposta alla richiesta.
project
L'ID del progetto a cui è allocata la risorsa in coda.
zone
La zona in cui intendi creare la tua Cloud TPU.
accelerator-type
Il tipo di Cloud TPU da creare.
runtime-version
La versione software di Cloud TPU.
valid-until-duration
La durata della richiesta. Per saperne di più sui formati di durata, consulta l'orario dell'argomento dell'interfaccia a riga di comando di Google Cloud.

Richiedi l'allocazione di una risorsa in coda entro un intervallo specificato

Puoi specificare un intervallo di allocazione utilizzando una qualsiasi coppia dei flag –valid-after-time, –valid-after-duration, –valid-until-duration e –valid-until-time, a condizione che un flag indichi l'inizio dell'intervallo di allocazione, mentre l'altro specifica la fine dell'intervallo di allocazione. Se la richiesta non è stata allocata entro la durata specificata, rimane nella coda, ma non ne verrà eseguito il provisioning.

Il seguente comando richiede un v4-32 tra 5 ore e 30 minuti dall'ora attuale. Consulta la sezione Datetime per un elenco dei formati di timestamp e durata supportati.

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

Descrizioni flag comando

queued-resource-request-id
L'ID assegnato dall'utente della richiesta di risorse in coda.
node-id
L'ID definito dall'utente della TPU creata in risposta alla richiesta.
project
L'ID del progetto a cui è allocata la risorsa in coda.
zone
La zona in cui intendi creare la tua Cloud TPU.
accelerator-type
Il tipo di Cloud TPU da creare.
runtime-version
La versione software di Cloud TPU.
valid-until-timw
Il periodo di tempo trascorso il quale la richiesta viene annullata. Per saperne di più sui formati di durata, consulta l'orario dell'argomento dell'interfaccia a riga di comando di Google Cloud.
valid-until-duration
La durata della richiesta. Per saperne di più sui formati di durata, consulta l'orario dell'argomento dell'interfaccia a riga di comando di Google Cloud.

Elimina una richiesta di risorsa in coda

Per eliminare una richiesta di risorse in coda, devi prima eliminare la VM TPU. Quando elimini la VM TPU, la richiesta passa allo stato SUSPENDED.

I seguenti comandi eliminano la richiesta di risorsa in coda denominata "my-queued-resource" nel progetto "my-project" nella zona "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

Descrizioni flag comando

queued-resource-request-id
L'ID assegnato dall'utente della richiesta di risorse in coda.
project
Il progetto Google Cloud a cui è allocata la risorsa in coda.
zone
La zona in cui intendi creare la tua Cloud TPU.

Recuperare informazioni su stato e diagnostica su una richiesta di risorsa in coda

Recupera le informazioni sullo stato e sulla diagnostica relative a una richiesta di risorsa in coda:

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

Descrizioni flag comando

queued-resource-request-id
L'ID assegnato dall'utente della richiesta di risorse in coda.
project
L'ID del progetto a cui è allocata la risorsa in coda.
zone
La zona in cui intendi creare la tua Cloud TPU.

Se la richiesta ha esito negativo, la risposta conterrà informazioni sull'errore. L'output di gcloud alpha compute tpus queued-resources describe sarà simile al seguente:

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

Elenca le richieste di risorse in coda nel progetto

Il comando seguente elenca le richieste di risorse in coda nel progetto "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

Descrizioni flag comando

project
Il progetto Google Cloud a cui è allocata la risorsa in coda.
zone
La zona in cui intendi creare la tua Cloud TPU.

Gestisci le richieste di risorse in coda utilizzando curl

Per emettere comandi dell'API Resource Queued utilizzando HTTP è necessaria un'intestazione di autorizzazione. Puoi recuperare l'intestazione eseguendo gcloud auth print-access-token.

Crea un file (ad esempio "req.json") per contenere il corpo della richiesta HTTP.

Per richiedere una singola TPU, utilizza il seguente testo nel corpo della richiesta 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'
            }
        }
    }
}

Per richiedere una singola TPU con uno script di avvio, utilizza il seguente testo nel corpo della richiesta 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"
                }
            }
        }
    }
}

Il comando seguente mostra come eseguire la richiesta HTTP con 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 risposta al comando sarà simile alla seguente:

{
    "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
}

Puoi controllare l'avanzamento della tua richiesta utilizzando 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}

Puoi controllare lo stato di tutte le richieste di risorse in coda nel tuo progetto utilizzando 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