Guia do usuário de recursos na fila
Os recursos na fila permitem solicitar recursos do Cloud TPU de maneira filada. Quando você solicita recursos na fila, a solicitação é adicionada a uma fila mantida pelo serviço da Cloud TPU. Quando o recurso solicitado fica disponível, ele é atribuído ao seu projeto do Google Cloud para uso exclusivo imediato. Ele permanecerá atribuído ao projeto, a menos que você o exclua ou tenha uma interrupção forçada. Somente TPUs preemptivas estão qualificadas para preempção.
É possível especificar um horário de início e/ou de término em uma solicitação de recurso na fila. O horário de início especifica o primeiro horário em que a solicitação será atendida. Se uma solicitação não tiver sido preenchida pelo horário de término especificado, a solicitação expirará. A solicitação permanece na fila após expirar.
As solicitações de recursos na fila podem estar em um dos seguintes estados:
ACCEPTED
- A solicitação foi adicionada à fila.
ACTIVE
- A solicitação foi alocada.
FAILED
- Não foi possível concluir a solicitação.
SUSPENDED
- Os recursos especificados na solicitação foram excluídos.
Quando uma solicitação de recurso na fila é adicionada à fila, o estado dela é definido como ACCEPTED
. Ela permanece nesse estado até ser alocada ou até que o
intervalo de alocação decorra.
Quando a solicitação é alocada, o estado dela é definido como ACTIVE
. Quando
um intervalo de alocação de uma solicitação termina, o estado dele permanece no estado
ACCEPTED
, mas não está mais qualificado para alocação. As solicitações de recursos na fila permanecem
na fila até serem excluídas explicitamente.
Quando os recursos especificados em uma solicitação são excluídos, a solicitação passa para o estado SUSPENDED
. Quando uma solicitação está no estado SUSPENDED
, ela não está mais qualificada para mais alocações.
Se houver um problema com uma solicitação ou os recursos solicitados não estiverem disponíveis,
a solicitação será transferida para o estado FAILED
.
É possível visualizar o status do recurso na fila usando os comandos gcloud alpha compute tpus queued-resources describe
ou gcloud alpha compute tpus queued-resources list
.
Quando as solicitações de recursos na fila estão no estado ACTIVE
, é possível
gerenciar suas VMs de TPU seguindo o guia do usuário da VM do Cloud TPU".
Pré-requisitos:
Antes de ler este guia, faça o seguinte:
- Instale os componentes Alfa da Google Cloud CLI.
- Ative a API Cloud TPU.
Solicitar uma solicitação de recurso com fila usando a cota reservada
É possível solicitar um recurso na fila usando a cota reservada especificando a sinalização --reserved
no comando gcloud
ou guaranteed.reserved=true
na solicitação 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
Descrições dos parâmetros de comando
queued-resource-id
- O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
- O ID atribuído pelo usuário da TPU que é criado quando a solicitação de recurso na fila é alocada.
project
- Seu projeto do Google Cloud.
zone
- A zona em que você planeja criar a Cloud TPU.
accelerator-type
- O tipo da Cloud TPU a ser criada.
runtime-version
- A versão do software do Cloud TPU.
reserved
- Use essa sinalização ao solicitar recursos na fila como parte de uma reserva do Cloud TPU.
Solicitar um recurso na fila sob demanda
É possível solicitar um recurso em fila sob demanda omitindo a sinalização --reserved
no comando gcloud CLI
ou guaranteed.reserved
na solicitação curl. Exemplo:
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
Descrições dos parâmetros de comando
queued-resource-id
- O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
- O ID atribuído pelo usuário da TPU que é criado quando a solicitação de recurso na fila é alocada.
project
- Seu projeto do Google Cloud.
zone
- A zona em que você planeja criar a Cloud TPU.
accelerator-type
- O tipo da Cloud TPU a ser criada.
runtime-version
- A versão do software do Cloud TPU.
Solicitar um recurso na fila que expire após uma duração especificada
É possível especificar por quanto tempo uma solicitação de recurso na fila permanece válida usando
a sinalização --valid-until-duration
. O exemplo a seguir solicita uma v4-32 que
expira se não for preenchida em seis horas. Após a duração especificada, a solicitação
permanecerá na fila, mas não estará mais qualificada para alocação.
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
Descrições dos parâmetros de comando
queued-resource-request-id
- O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
- O ID definido pelo usuário da TPU criado em resposta à solicitação.
project
- O projeto do Google Cloud em que o recurso na fila está alocado.
zone
- A zona em que você planeja criar a Cloud TPU.
accelerator-type
- O tipo da Cloud TPU a ser criada.
runtime-version
- A versão do software do Cloud TPU.
valid-until-duration
- Por quanto tempo a solicitação é válida. Para mais informações sobre os formatos de duração, consulte Data e hora do tópico do Google Cloud CLI
Solicitar um recurso na fila após um período especificado
É possível especificar um período após o qual um recurso será alocado usando a sinalização --valid-after-time
.
O comando a seguir solicita que uma TPU v4-4096 com
a versão de ambiente de execução tpu-vm-tf-2.11.0
seja alocada após as 9h em 14 de dezembro de 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
Descrições dos parâmetros de comando
queued-resource-request-id
- O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
- O ID definido pelo usuário da TPU criado em resposta à solicitação.
project
- O projeto do Google Cloud em que o recurso na fila está alocado.
zone
- A zona em que você planeja criar a Cloud TPU.
accelerator-type
- O tipo da Cloud TPU a ser criada.
runtime-version
- A versão do software do Cloud TPU.
valid-after-time
- Após esse período, o recurso deve ser alocado. Para mais informações sobre formatos de duração, consulte Data/hora do tópico da Google Cloud CLI.
Solicitar um recurso na fila antes de um período especificado
É possível especificar um horário antes da alocação do recurso usando a
sinalização --valid-until-time
. Se uma TPU não tiver sido alocada nesse momento, a
solicitação permanecerá na fila, mas não estará mais qualificada para isso.
O comando a seguir solicita que um nó de TPU v4-4096 com
a versão de ambiente de execução tpu-vm-tf-2.10.0-pod
seja criado até 14 de dezembro de 2022, às 9h.
Consulte Data e hora
para ver uma lista de formatos de carimbo de data/hora compatíveis.
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
Descrições dos parâmetros de comando
queued-resource-request-id
- O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
- O ID definido pelo usuário da TPU criado em resposta à solicitação.
project
- O ID do projeto em que o recurso na fila está alocado.
zone
- A zona em que você planeja criar a Cloud TPU.
accelerator-type
- O tipo da Cloud TPU a ser criada.
runtime-version
- A versão do software do Cloud TPU.
valid-until-time
- Período após o cancelamento da solicitação. Para mais informações sobre os formatos de duração, consulte Data e hora do tópico da Google Cloud CLI.
Solicitar um recurso na fila preemptiva
É possível solicitar um recurso com fila preemptiva. Um recurso preemptivo pode ser atribuído a outra carga de trabalho se recursos extras forem necessários para outras cargas de trabalho. Os recursos preemptivos custam menos e você pode ter acesso aos recursos antes de uma solicitação não preemptiva.
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
Descrições dos parâmetros de comando
queued-resource-request-id
- O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
- O ID definido pelo usuário da TPU criado em resposta à solicitação.
project
- O ID do projeto em que o recurso na fila está alocado.
zone
- A zona em que você planeja criar a Cloud TPU.
accelerator-type
- O tipo da Cloud TPU a ser criada.
runtime-version
- A versão do software do Cloud TPU.
best-effort
- Uma sinalização booleana especificando que o recurso na fila é preemptivo.
Solicitar um recurso na fila em um período especificado
É possível especificar por quanto tempo a solicitação permanece válida usando a sinalização --valid-until-duration
. Se a solicitação não for alocada antes do término da
duração, a solicitação permanecerá na fila, mas não estará mais qualificada para
alocação. O exemplo a seguir solicita que uma v4-32 seja alocada nas
próximas seis horas.
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
Descrições dos parâmetros de comando
queued-resource-request-id
- O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
- O ID definido pelo usuário da TPU criado em resposta à solicitação.
project
- O ID do projeto em que o recurso na fila está alocado.
zone
- A zona em que você planeja criar a Cloud TPU.
accelerator-type
- O tipo da Cloud TPU a ser criada.
runtime-version
- A versão do software do Cloud TPU.
valid-until-duration
- Por quanto tempo a solicitação é válida. Para mais informações sobre os formatos de duração, consulte Data e hora do tópico da Google Cloud CLI.
Solicitar a alocação de um recurso na fila em um intervalo especificado
É possível especificar um intervalo de alocação usando qualquer par de sinalizações –valid-after-time
, –valid-after-duration
, –valid-until-duration
e –valid-until-time
, desde que uma especifique o início do intervalo e a outra especifique o fim dele. Se a solicitação não tiver sido
alocada na duração especificada, ela permanecerá na fila, mas não
será provisionada.
O comando a seguir solicita uma v4-32 em 5 horas e 30 minutos a partir do horário atual. Consulte Data e hora para ver uma lista de formatos compatíveis de carimbo de data/hora e duração.
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
Descrições de sinalizações de comando
queued-resource-request-id
- O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
- O ID definido pelo usuário da TPU criado em resposta à solicitação.
project
- O ID do projeto em que o recurso na fila está alocado.
zone
- A zona em que você planeja criar a Cloud TPU.
accelerator-type
- O tipo da Cloud TPU a ser criada.
runtime-version
- A versão do software do Cloud TPU.
valid-until-timw
- Período após o cancelamento da solicitação. Para mais informações sobre os formatos de duração, consulte Data e hora do tópico da Google Cloud CLI.
valid-until-duration
- Por quanto tempo a solicitação é válida. Para mais informações sobre os formatos de duração, consulte Data e hora do tópico da Google Cloud CLI.
Excluir uma solicitação de recurso na fila
Para excluir uma solicitação de recurso na fila, é preciso excluir a VM da TPU primeiro. Quando você exclui a VM da TPU, a solicitação passa para o estado SUSPENDED
.
Os comandos a seguir excluem a solicitação de recurso na fila chamada "my-queued-resource" no projeto "my-project" na 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
Descrições de sinalizações de comando
queued-resource-request-id
- O ID atribuído pelo usuário da solicitação de recurso na fila.
project
- O projeto do Google Cloud em que o recurso na fila está alocado.
zone
- A zona em que você planeja criar a Cloud TPU.
Recuperar informações de estado e diagnósticos sobre uma solicitação de recurso na fila
Recupere as informações de estado e de diagnóstico sobre uma solicitação de recurso na fila:
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
Descrições de sinalizações de comando
queued-resource-request-id
- O ID atribuído pelo usuário da solicitação de recurso na fila.
project
- O ID do projeto em que o recurso na fila está alocado.
zone
- A zona em que você planeja criar a Cloud TPU.
Se a solicitação falhar, a resposta conterá informações de erro. A saída
de gcloud alpha compute tpus queued-resources describe
vai ser semelhante à seguinte:
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
Listar as solicitações de recursos na fila no projeto
O comando a seguir lista as solicitações de recursos na fila no projeto "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
Descrições de sinalizações de comando
project
- O projeto do Google Cloud em que o recurso na fila está alocado.
zone
- A zona em que você planeja criar a Cloud TPU.
Gerenciar solicitações de recursos na fila usando o curl
A emissão de comandos da API Queued Resource usando HTTP exige um cabeçalho Authorization.
Para recuperar o cabeçalho, execute gcloud auth print-access-token
.
Crie um arquivo (por exemplo, "req.json") para armazenar o corpo da solicitação HTTP.
Para solicitar uma única TPU, use o texto a seguir no corpo da solicitação 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' } } } }
Para solicitar uma única TPU com um script de inicialização, use o texto a seguir no corpo da solicitação 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" } } } } }
O comando a seguir mostra como fazer a solicitação HTTP com 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}
A resposta ao comando será semelhante a esta:
{ "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 }
É possível verificar o progresso da sua solicitação usando 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}
Verifique o status de todas as solicitações de recursos na fila no projeto usando 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