In die Warteschlange gestellte Ressourcen verwalten

Mit Ressourcen in der Warteschlange können Sie Cloud TPU-Ressourcen in einer Warteschlange anfordern. Wenn Sie in die Warteschlange gestellte Ressourcen anfordern, wird die Anfrage einer vom Cloud TPU-Dienst verwalteten Warteschlange hinzugefügt. Sobald die angeforderte Ressource verfügbar ist, wird sie Ihrem Google Cloud Projekt zugewiesen und steht Ihnen sofort zur alleinigen Nutzung zur Verfügung. Sie bleibt Ihrem Projekt zugewiesen, es sei denn, Sie löschen sie oder sie wird vorzeitig beendet. Nur TPU-Spot-VMs und TPUs auf Abruf können vorzeitig beendet werden.

Sie können in einer Ressourcenanfrage, die sich in der Warteschlange befindet, optional einen Start- und Endzeitpunkt angeben. Der Beginn gibt an, wann die Anfrage frühestens erfüllt werden kann. Wenn eine Anfrage bis zur angegebenen Endzeit nicht erfüllt wurde, läuft sie ab. Die Anfrage bleibt nach Ablauf in der Warteschlange.

Angeforderte Ressourcen können einen der folgenden Status haben:

WAITING_FOR_RESOURCES
Die Anfrage hat die erste Validierung bestanden und wurde der Warteschlange hinzugefügt. Sie bleibt in diesem Status, bis genügend freie Ressourcen vorhanden sind, um mit der Bereitstellung Ihrer Anfrage zu beginnen, oder das Allokationsintervall abgelaufen ist. Bei hoher Nachfrage können nicht alle Anfragen sofort bereitgestellt werden. Wenn Sie TPUs zuverlässiger erhalten möchten, sollten Sie eine Reservierung erwerben.
PROVISIONING
Die Anfrage wurde aus der Warteschlange ausgewählt und die zugehörigen Ressourcen werden zugewiesen.
ACTIVE
Die Anfrage wurde zugewiesen. Wenn angeforderte Ressourcen in der Warteschlange den Status ACTIVE haben, können Sie Ihre TPU-VMs wie unter TPUs verwalten beschrieben verwalten.
FAILED
Die Anfrage konnte nicht abgeschlossen werden, entweder weil ein Problem mit der Anfrage vorliegt oder die angeforderten Ressourcen nicht innerhalb des Zuweisungszeitraums verfügbar waren. Die Anfrage bleibt in der Warteschlange, bis sie explizit gelöscht wird.
SUSPENDING
Die mit der Anfrage verknüpften Ressourcen werden gelöscht.
SUSPENDED
Die in der Anfrage angegebenen Ressourcen wurden gelöscht. Wenn eine Anfrage den Status SUSPENDED hat, kann sie nicht mehr zugewiesen werden.

Vorbereitung

Bevor Sie die Befehle in diesem Leitfaden ausführen, müssen Sie die Google Cloud CLI installieren, ein Google Cloud -Projekt erstellen und die Cloud TPU API aktivieren. Eine Anleitung finden Sie unter Cloud TPU-Umgebung einrichten.

On-Demand-Ressource in der Warteschlange anfordern

On-Demand-Ressourcen werden nicht vorrangig verwendet. Das On-Demand-Kontingent ist jedoch keine Garantie dafür, dass genügend Cloud TPU-Ressourcen verfügbar sind, um Ihre Anfrage zu erfüllen. Weitere Informationen zu On-Demand-Ressourcen finden Sie unter Kontingenttypen.

gcloud

gcloud 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.18.0-pjrt

Beschreibungen der Befehlsparameter

queued-resource-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die vom Nutzer zugewiesene ID der TPU, die erstellt wird, wenn die anstehende Ressourcenanfrage zugewiesen wird.
project
Ihr Google Cloud Projekt.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software

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.18.0-pjrt',
        }
    }
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehlsparameter

queued-resource-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die vom Nutzer zugewiesene ID der TPU, die erstellt wird, wenn die anstehende Ressourcenanfrage zugewiesen wird.
project
Ihr Google Cloud Projekt.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    TPUs aufrufen

  2. Klicken Sie auf TPU erstellen.

  3. Geben Sie im Feld Name einen Namen für die TPU ein.

  4. Wählen Sie im Feld Zone die Zone aus, in der die TPU erstellt werden soll.

  5. Wählen Sie im Feld TPU-Typ einen Beschleunigertyp aus. Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.

  6. Wählen Sie im Feld TPU-Softwareversion eine Softwareversion aus. Beim Erstellen einer Cloud TPU-VM gibt die TPU-Softwareversion die Version der zu installierenden TPU-Laufzeit an. Weitere Informationen finden Sie unter TPU-VM-Images.

  7. Klicken Sie auf den Schalter Warteschlange aktivieren.

  8. Geben Sie im Feld Name der anstehenden Ressource einen Namen für die anstehende Ressourcenanfrage ein.

  9. Klicken Sie auf Erstellen, um die anstehende Ressourcenanfrage zu erstellen.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import com.google.cloud.tpu.v2alpha1.CreateQueuedResourceRequest;
import com.google.cloud.tpu.v2alpha1.Node;
import com.google.cloud.tpu.v2alpha1.QueuedResource;
import com.google.cloud.tpu.v2alpha1.TpuClient;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class CreateQueuedResource {
  public static void main(String[] args)
          throws IOException, ExecutionException, InterruptedException, TimeoutException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Google Cloud project you want to create a node.
    String projectId = "YOUR_PROJECT_ID";
    // The zone in which to create the TPU.
    // For more information about supported TPU types for specific zones,
    // see https://cloud.google.com/tpu/docs/regions-zones
    String zone = "us-central1-f";
    // The name for your TPU.
    String nodeName = "YOUR_NODE_ID";
    // The accelerator type that specifies the version and size of the Cloud TPU you want to create.
    // For more information about supported accelerator types for each TPU version,
    // see https://cloud.google.com/tpu/docs/system-architecture-tpu-vm#versions.
    String tpuType = "v2-8";
    // Software version that specifies the version of the TPU runtime to install.
    // For more information see https://cloud.google.com/tpu/docs/runtimes
    String tpuSoftwareVersion = "tpu-vm-tf-2.14.1";
    // The name for your Queued Resource.
    String queuedResourceId = "QUEUED_RESOURCE_ID";

    createQueuedResource(
        projectId, zone, queuedResourceId, nodeName, tpuType, tpuSoftwareVersion);
  }

  // Creates a Queued Resource
  public static QueuedResource createQueuedResource(String projectId, String zone,
      String queuedResourceId, String nodeName, String tpuType, String tpuSoftwareVersion)
          throws IOException, ExecutionException, InterruptedException, TimeoutException {
    String resource = String.format("projects/%s/locations/%s/queuedResources/%s",
            projectId, zone, queuedResourceId);
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (TpuClient tpuClient = TpuClient.create()) {
      String parent = String.format("projects/%s/locations/%s", projectId, zone);
      Node node =
          Node.newBuilder()
              .setName(nodeName)
              .setAcceleratorType(tpuType)
              .setRuntimeVersion(tpuSoftwareVersion)
              .setQueuedResource(resource)
              .build();

      QueuedResource queuedResource =
          QueuedResource.newBuilder()
              .setName(queuedResourceId)
              .setTpu(
                  QueuedResource.Tpu.newBuilder()
                      .addNodeSpec(
                          QueuedResource.Tpu.NodeSpec.newBuilder()
                              .setParent(parent)
                              .setNode(node)
                              .setNodeId(nodeName)
                              .build())
                      .build())
              .build();

      CreateQueuedResourceRequest request =
          CreateQueuedResourceRequest.newBuilder()
              .setParent(parent)
              .setQueuedResourceId(queuedResourceId)
              .setQueuedResource(queuedResource)
              .build();

      return tpuClient.createQueuedResourceAsync(request).get(1, TimeUnit.MINUTES);
    }
  }
}

Python

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

from google.cloud import tpu_v2alpha1

# TODO(developer): Update and un-comment below lines
# project_id = "your-project-id"
# zone = "us-central1-b"
# tpu_name = "tpu-name"
# tpu_type = "v2-8"
# runtime_version = "tpu-vm-tf-2.17.0-pjrt"
# queued_resource_name = "resource-name"

node = tpu_v2alpha1.Node()
node.accelerator_type = tpu_type
# To see available runtime version use command:
# gcloud compute tpus versions list --zone={ZONE}
node.runtime_version = runtime_version

node_spec = tpu_v2alpha1.QueuedResource.Tpu.NodeSpec()
node_spec.parent = f"projects/{project_id}/locations/{zone}"
node_spec.node_id = tpu_name
node_spec.node = node

resource = tpu_v2alpha1.QueuedResource()
resource.tpu = tpu_v2alpha1.QueuedResource.Tpu(node_spec=[node_spec])

request = CreateQueuedResourceRequest(
    parent=f"projects/{project_id}/locations/{zone}",
    queued_resource_id=queued_resource_name,
    queued_resource=resource,
)

client = tpu_v2alpha1.TpuClient()
operation = client.create_queued_resource(request=request)

response = operation.result()
print(response.name)
print(response.state.state)
# Example response:
# projects/[project_id]/locations/[zone]/queuedResources/resource-name
# State.WAITING_FOR_RESOURCES

Standard-Scheibengrößen für On-Demand-Ressourcen in der Warteschlange

Wenn Sie ein On-Demand-Kontingent verwenden, muss die Größe des Segments unter dem Standardlimit für den verwendeten Beschleunigertyp liegen. Anfragen, die die Standardlimits überschreiten, werden vom System abgelehnt.

In der folgenden Tabelle sind die TPU-Typen und die zugehörigen Standardlimits aufgeführt.

Beschleunigertyp Standardbegrenzung (in Anzahl der TensorCores)
v2 128
v3 128
v4 384
v5 32

Wenn Sie größere Slice-Größen benötigen, wenden Sie sich an den Cloud TPU-Support.

Ressourcen in der Warteschlange mit einer Reservierung anfordern

Sie können eine in der Warteschlange befindliche Ressource mit einer Reservierung anfordern. Wenn Sie eine Reservierung erwerben möchten, wenden Sie sich an Ihr Google Cloud Account-Management-Team.

gcloud

gcloud 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.18.0-pjrt \
    --reserved

Beschreibungen der Befehlsparameter

queued-resource-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die vom Nutzer zugewiesene ID der TPU, die erstellt wird, wenn die anstehende Ressourcenanfrage zugewiesen wird.
project
Ihr Google Cloud Projekt.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
reserved
Verwenden Sie dieses Flag, wenn Sie in die Warteschlange gestellte Ressourcen im Rahmen einer Cloud TPU-Reservierung anfordern.

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.18.0-pjrt',
        }
    }
    },
    'guaranteed': {
    'reserved': true,
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehlsparameter

queued-resource-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die vom Nutzer zugewiesene ID der TPU, die erstellt wird, wenn die anstehende Ressourcenanfrage zugewiesen wird.
project
Ihr Google Cloud Projekt.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
reserved
Verwenden Sie dieses Flag, wenn Sie in die Warteschlange gestellte Ressourcen im Rahmen einer Cloud TPU-Reservierung anfordern.

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    TPUs aufrufen

  2. Klicken Sie auf TPU erstellen.

  3. Geben Sie im Feld Name einen Namen für die TPU ein.

  4. Wählen Sie im Feld Zone die Zone aus, in der die TPU erstellt werden soll.

  5. Wählen Sie im Feld TPU-Typ einen Beschleunigertyp aus. Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.

  6. Wählen Sie im Feld TPU-Softwareversion eine Softwareversion aus. Beim Erstellen einer Cloud TPU-VM gibt die TPU-Softwareversion die Version der zu installierenden TPU-Laufzeit an. Weitere Informationen finden Sie unter TPU-VM-Images.

  7. Klicken Sie auf den Schalter Warteschlange aktivieren.

  8. Geben Sie im Feld Name der anstehenden Ressource einen Namen für die anstehende Ressourcenanfrage ein.

  9. Maximieren Sie den Bereich Verwaltung.

  10. Klicken Sie das Kästchen Vorhandene Reservierung verwenden an.

  11. Klicken Sie auf Erstellen, um die anstehende Ressourcenanfrage zu erstellen.

TPU-Spot-VM-Ressource in der Warteschlange anfordern

Eine Spot-VM ist eine Ressource, die jederzeit vorzeitig beendet und einer anderen Arbeitslast zugewiesen werden kann. Ressourcen für Spot-VMs sind günstiger und Sie erhalten möglicherweise schneller Zugriff auf Ressourcen als bei einer Anfrage, die nicht auf Spot-VMs basiert. Weitere Informationen zu TPU-Spot-VMs finden Sie unter TPU-Spot-VMs verwalten.

gcloud

gcloud 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.18.0-pjrt \
    --spot

Beschreibungen der Befehlsparameter

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die benutzerdefinierte ID der TPU, die als Reaktion auf die Anfrage erstellt wurde.
project
Die ID des Projekts, dem die erwartete Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
spot
Ein boolescher Wert, der angibt, dass es sich bei der anstehenden Ressource um eine Spot-VM handelt.

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.18.0-pjrt'
        }
    }
    },
    'spot': {}
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehlsparameter

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die benutzerdefinierte ID der TPU, die als Reaktion auf die Anfrage erstellt wurde.
project
Die ID des Projekts, dem die erwartete Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
spot
Ein boolescher Wert, der angibt, dass es sich bei der anstehenden Ressource um eine Spot-VM handelt.

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    TPUs aufrufen

  2. Klicken Sie auf TPU erstellen.

  3. Geben Sie im Feld Name einen Namen für die TPU ein.

  4. Wählen Sie im Feld Zone die Zone aus, in der die TPU erstellt werden soll.

  5. Wählen Sie im Feld TPU-Typ einen Beschleunigertyp aus. Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.

  6. Wählen Sie im Feld TPU-Softwareversion eine Softwareversion aus. Beim Erstellen einer Cloud TPU-VM gibt die TPU-Softwareversion die Version der zu installierenden TPU-Laufzeit an. Weitere Informationen finden Sie unter TPU-VM-Images.

  7. Klicken Sie auf den Schalter Warteschlange aktivieren.

  8. Geben Sie im Feld Name der anstehenden Ressource einen Namen für die anstehende Ressourcenanfrage ein.

  9. Maximieren Sie den Bereich Verwaltung.

  10. Klicken Sie das Kästchen Daraus eine TPU-Spot-VM machen an.

  11. Klicken Sie auf Erstellen.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import com.google.cloud.tpu.v2alpha1.CreateQueuedResourceRequest;
import com.google.cloud.tpu.v2alpha1.Node;
import com.google.cloud.tpu.v2alpha1.QueuedResource;
import com.google.cloud.tpu.v2alpha1.SchedulingConfig;
import com.google.cloud.tpu.v2alpha1.TpuClient;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

public class CreateSpotQueuedResource {
  public static void main(String[] args)
      throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Google Cloud project you want to create a node.
    String projectId = "YOUR_PROJECT_ID";
    // The zone in which to create the TPU.
    // For more information about supported TPU types for specific zones,
    // see https://cloud.google.com/tpu/docs/regions-zones
    String zone = "us-central1-f";
    // The name for your TPU.
    String nodeName = "YOUR_TPU_NAME";
    // The accelerator type that specifies the version and size of the Cloud TPU you want to create.
    // For more information about supported accelerator types for each TPU version,
    // see https://cloud.google.com/tpu/docs/system-architecture-tpu-vm#versions.
    String tpuType = "v2-8";
    // Software version that specifies the version of the TPU runtime to install.
    // For more information see https://cloud.google.com/tpu/docs/runtimes
    String tpuSoftwareVersion = "tpu-vm-tf-2.14.1";
    // The name for your Queued Resource.
    String queuedResourceId = "QUEUED_RESOURCE_ID";

    createQueuedResource(
        projectId, zone, queuedResourceId, nodeName, tpuType, tpuSoftwareVersion);
  }

  // Creates a Queued Resource with --preemptible flag.
  public static QueuedResource createQueuedResource(
      String projectId, String zone, String queuedResourceId,
      String nodeName, String tpuType, String tpuSoftwareVersion)
      throws IOException, ExecutionException, InterruptedException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (TpuClient tpuClient = TpuClient.create()) {
      String parent = String.format("projects/%s/locations/%s", projectId, zone);
      String resourceName = String.format("projects/%s/locations/%s/queuedResources/%s",
              projectId, zone, queuedResourceId);
      SchedulingConfig schedulingConfig = SchedulingConfig.newBuilder()
          .setPreemptible(true)
          .build();

      Node node =
          Node.newBuilder()
              .setName(nodeName)
              .setAcceleratorType(tpuType)
              .setRuntimeVersion(tpuSoftwareVersion)
              .setSchedulingConfig(schedulingConfig)
              .setQueuedResource(resourceName)
              .build();

      QueuedResource queuedResource =
          QueuedResource.newBuilder()
              .setName(queuedResourceId)
              .setTpu(
                  QueuedResource.Tpu.newBuilder()
                      .addNodeSpec(
                          QueuedResource.Tpu.NodeSpec.newBuilder()
                              .setParent(parent)
                              .setNode(node)
                              .setNodeId(nodeName)
                              .build())
                      .build())
              .build();

      CreateQueuedResourceRequest request =
          CreateQueuedResourceRequest.newBuilder()
              .setParent(parent)
              .setQueuedResourceId(queuedResourceId)
              .setQueuedResource(queuedResource)
              .build();

      return tpuClient.createQueuedResourceAsync(request).get();
    }
  }
}

Python

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

from google.cloud import tpu_v2alpha1

# TODO(developer): Update and un-comment below lines
# project_id = "your-project-id"
# zone = "us-central1-b"
# tpu_name = "tpu-name"
# tpu_type = "v2-8"
# runtime_version = "tpu-vm-tf-2.17.0-pjrt"
# queued_resource_name = "resource-name"

node = tpu_v2alpha1.Node()
node.accelerator_type = tpu_type
# To see available runtime version use command:
# gcloud compute tpus versions list --zone={ZONE}
node.runtime_version = runtime_version

node_spec = tpu_v2alpha1.QueuedResource.Tpu.NodeSpec()
node_spec.parent = f"projects/{project_id}/locations/{zone}"
node_spec.node_id = tpu_name
node_spec.node = node

resource = tpu_v2alpha1.QueuedResource()
resource.tpu = tpu_v2alpha1.QueuedResource.Tpu(node_spec=[node_spec])
# Create a spot resource
resource.spot = tpu_v2alpha1.QueuedResource.Spot()

request = CreateQueuedResourceRequest(
    parent=f"projects/{project_id}/locations/{zone}",
    queued_resource_id=queued_resource_name,
    queued_resource=resource,
)

client = tpu_v2alpha1.TpuClient()
operation = client.create_queued_resource(request=request)
response = operation.result()

print(response.name)
print(response.state.state)
# Example response:
# projects/[project_id]/locations/[zone]/queuedResources/resource-name
# State.WAITING_FOR_RESOURCES

Anfordern, dass eine in der Warteschlange befindliche Ressource vor oder nach einer bestimmten Zeit zugewiesen wird

Sie können in einer anstehenden Ressourcenanfrage eine optionale Startzeit oder Endzeit angeben. Mit der Startzeit oder der Startdauer wird der früheste Zeitpunkt angegeben, zu dem die Anfrage erfüllt werden soll. Mit der Endzeit oder Enddauer wird angegeben, wie lange die Anfrage gültig bleibt. Wenn eine Anfrage nicht bis zum angegebenen Endzeitpunkt oder innerhalb der angegebenen Dauer erfüllt wurde, läuft sie ab. Nach Ablauf der Anfrage bleibt sie in der Warteschlange, kann aber nicht mehr zugewiesen werden.

Sie können auch ein Zuweisungsintervall angeben, indem Sie einen Startzeitpunkt oder eine Dauer sowie einen Endzeitpunkt oder eine Dauer angeben.

Eine Liste der unterstützten Zeitstempel- und Zeitformate finden Sie unter Datum/Uhrzeit.

Anfordern, dass eine in der Warteschlange befindliche Ressource nach einer bestimmten Zeit erfüllt wird

In einer Ressourcenanfrage in der Warteschlange können Sie einen Zeitpunkt oder eine Dauer angeben, nach dem bzw. der eine Ressource zugewiesen werden soll.

gcloud

Mit dem folgenden Befehl wird eine TPU vom Typ „v4-4096“ angefordert, die nach dem 14. Dezember 2022 um 9:00 Uhr (UTC) zugewiesen werden soll.

gcloud 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.18.0-pod-pjrt \
    --valid-after-time 2022-12-14T09:00:00Z

Beschreibungen der Befehlsparameter

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die benutzerdefinierte ID der TPU, die als Reaktion auf die Anfrage erstellt wurde.
project
Das Google Cloud Projekt, dem die in der Warteschlange befindliche Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
valid-after-time
Die Zeit, nach der die Ressource zugewiesen werden soll. Weitere Informationen zu Zeitformaten finden Sie unter Google Cloud CLI-Thema „datetime“.

curl

Mit dem folgenden Befehl wird eine TPU v4-4096 angefordert, die nach 9:00 Uhr am 14. Dezember 2022 zugewiesen werden soll.

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.18.0-pod-pjrt',
        }
    }
    },
    '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

Beschreibungen der Befehlsparameter

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die benutzerdefinierte ID der TPU, die als Reaktion auf die Anfrage erstellt wurde.
project
Das Google Cloud Projekt, dem die in der Warteschlange befindliche Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
valid-after-time
Die Zeit, nach der die Ressource zugewiesen werden soll. Weitere Informationen zu Zeitformaten finden Sie unter Google Cloud CLI-Thema „Datum und Uhrzeit“.

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    TPUs aufrufen

  2. Klicken Sie auf TPU erstellen.

  3. Geben Sie im Feld Name einen Namen für die TPU ein.

  4. Wählen Sie im Feld Zone die Zone aus, in der die TPU erstellt werden soll.

  5. Wählen Sie im Feld TPU-Typ einen Beschleunigertyp aus. Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.

  6. Wählen Sie im Feld TPU-Softwareversion eine Softwareversion aus. Beim Erstellen einer Cloud TPU-VM gibt die TPU-Softwareversion die Version der zu installierenden TPU-Laufzeit an. Weitere Informationen finden Sie unter TPU-VM-Images.

  7. Klicken Sie auf den Schalter Warteschlange aktivieren.

  8. Geben Sie im Feld Name der anstehenden Ressource einen Namen für die anstehende Ressourcenanfrage ein.

  9. Geben Sie im Feld Anfrage starten am die Zeit ein, nach der die Ressource zugewiesen werden soll.

  10. Klicken Sie auf Erstellen, um die anstehende Ressourcenanfrage zu erstellen.

Im folgenden Beispiel wird angefordert, dass ein v4-32 nach sechs Stunden zugewiesen wird.

gcloud

    gcloud 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.18.0-pod-pjrt \
        --valid-after-duration 6h

Beschreibungen der Befehlsparameter

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die benutzerdefinierte ID der TPU, die als Reaktion auf die Anfrage erstellt wurde.
project
Das Google Cloud Projekt, dem die in der Warteschlange befindliche Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
valid-after-duration
Die Dauer, vor der die TPU nicht bereitgestellt werden darf. Weitere Informationen zu Zeitformaten finden Sie im Google Cloud CLI-Thema „datetime“
.

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.18.0-pod-pjrt',
        }
    }
    },
'queueing_policy': {
    'valid_after_duration': {
        'seconds': 21600
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehlsparameter

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die benutzerdefinierte ID der TPU, die als Reaktion auf die Anfrage erstellt wurde.
project
Das Google Cloud Projekt, dem die in der Warteschlange befindliche Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
valid-after-duration
Die Dauer, vor der die TPU nicht bereitgestellt werden darf. Weitere Informationen zu Zeitformaten finden Sie im Google Cloud CLI-Thema „datetime“
.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import com.google.cloud.tpu.v2alpha1.CreateQueuedResourceRequest;
import com.google.cloud.tpu.v2alpha1.Node;
import com.google.cloud.tpu.v2alpha1.QueuedResource;
import com.google.cloud.tpu.v2alpha1.TpuClient;
import com.google.protobuf.Duration;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

public class CreateTimeBoundQueuedResource {

  public static void main(String[] args)
          throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Google Cloud project you want to create a node.
    String projectId = "YOUR_PROJECT_ID";
    // The zone in which to create the TPU.
    // For more information about supported TPU types for specific zones,
    // see https://cloud.google.com/tpu/docs/regions-zones
    String zone = "us-central2-b";
    // The name of your node.
    String nodeId = "YOUR_NODE_ID";
    // The accelerator type that specifies the version and size of the Cloud TPU you want to create.
    // For more information about supported accelerator types for each TPU version,
    // see https://cloud.google.com/tpu/docs/system-architecture-tpu-vm#versions.
    String acceleratorType = "v2-8";
    // Software version that specifies the version of the TPU runtime to install.
    // For more information see https://cloud.google.com/tpu/docs/runtimes
    String runtimeVersion = "tpu-vm-tf-2.14.1";
    // The name of your Queued Resource.
    String queuedResourceId = "YOUR_QUEUED_RESOURCE_ID";

    createTimeBoundQueuedResource(projectId, nodeId,
        queuedResourceId, zone, acceleratorType, runtimeVersion);
  }

  // Creates a Queued Resource with time bound configuration.
  public static QueuedResource createTimeBoundQueuedResource(
      String projectId, String nodeId, String queuedResourceId,
      String zone, String acceleratorType, String runtimeVersion)
          throws IOException, ExecutionException, InterruptedException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (TpuClient tpuClient = TpuClient.create()) {
      String parent = String.format("projects/%s/locations/%s", projectId, zone);
      // Create a Duration object representing 6 hours.
      Duration validAfterDuration = Duration.newBuilder().setSeconds(6 * 3600).build();
      // You could also use timestamps like this:
      // Timestamp validAfterTime = Timestamps.parse("2024-10-14T09:00:00Z");

      Node node =
          Node.newBuilder()
              .setName(nodeId)
              .setAcceleratorType(acceleratorType)
              .setRuntimeVersion(runtimeVersion)
              .setQueuedResource(
                  String.format(
                      "projects/%s/locations/%s/queuedResources/%s",
                      projectId, zone, queuedResourceId))
              .build();

      QueuedResource queuedResource =
          QueuedResource.newBuilder()
              .setName(queuedResourceId)
              .setTpu(
                  QueuedResource.Tpu.newBuilder()
                      .addNodeSpec(
                          QueuedResource.Tpu.NodeSpec.newBuilder()
                              .setParent(parent)
                              .setNode(node)
                              .setNodeId(nodeId)
                              .build())
                      .build())
              .setQueueingPolicy(
                  QueuedResource.QueueingPolicy.newBuilder()
                      .setValidAfterDuration(validAfterDuration)
                      // .setValidAfterTime(validAfterTime)
                      .build())
              .build();

      CreateQueuedResourceRequest request =
          CreateQueuedResourceRequest.newBuilder()
              .setParent(parent)
              .setQueuedResource(queuedResource)
              .setQueuedResourceId(queuedResourceId)
              .build();

      return tpuClient.createQueuedResourceAsync(request).get();
    }
  }
}

In die Warteschlange gestellte Ressource anfordern, die nach einer bestimmten Zeit abläuft

Bei einer Ressourcenanfrage in der Warteschlange können Sie angeben, wie lange sie gültig bleibt. Wenn die Anfrage nicht bis zum von Ihnen angegebenen Zeitpunkt oder innerhalb des angegebenen Zeitraums erfüllt wurde, läuft sie ab.

gcloud

Mit dem folgenden Befehl wird eine v4-4096-TPU angefordert. Wenn die Anfrage nicht bis zum 14. Dezember 2022 um 9:00 Uhr erfüllt wird, läuft sie ab.

gcloud 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.18.0-pod-pjrt \
    --valid-until-time 2022-12-14T09:00:00Z

Beschreibungen der Befehlsparameter

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die benutzerdefinierte ID der TPU, die als Reaktion auf die Anfrage erstellt wurde.
project
Die ID des Projekts, dem die erwartete Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
valid-until-time
Der Zeitpunkt, nach dem der Antrag storniert wird. Weitere Informationen zu Zeitformaten finden Sie unter Google Cloud CLI-Thema „Datum und Uhrzeit“.

curl

Mit dem folgenden Befehl wird eine v4-4096-TPU angefordert. Wenn die Anfrage nicht bis zum 14. Dezember 2022 um 9:00 Uhr (UTC) erfüllt wird, läuft sie ab.

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.18.0-pod-pjrt',
        }
    }
    },
    '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

Beschreibungen der Befehlsparameter

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die benutzerdefinierte ID der TPU, die als Reaktion auf die Anfrage erstellt wurde.
project
Die ID des Projekts, dem die erwartete Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
valid-until-time
Der Zeitpunkt, nach dem die Anfrage storniert wird. Weitere Informationen zu Zeitformaten finden Sie unter Google Cloud CLI-Thema „Datum und Uhrzeit“.

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    TPUs aufrufen

  2. Klicken Sie auf TPU erstellen.

  3. Geben Sie im Feld Name einen Namen für die TPU ein.

  4. Wählen Sie im Feld Zone die Zone aus, in der die TPU erstellt werden soll.

  5. Wählen Sie im Feld TPU-Typ einen Beschleunigertyp aus. Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.

  6. Wählen Sie im Feld TPU-Softwareversion eine Softwareversion aus. Beim Erstellen einer Cloud TPU-VM gibt die TPU-Softwareversion die Version der zu installierenden TPU-Laufzeit an. Weitere Informationen finden Sie unter TPU-VM-Images.

  7. Klicken Sie auf den Schalter Warteschlange aktivieren.

  8. Geben Sie im Feld Name der anstehenden Ressource einen Namen für die anstehende Ressourcenanfrage ein.

  9. Geben Sie im Feld Anfrage abbrechen bei die Zeit ein, zu der die anstehende Ressourcenanfrage ablaufen soll, wenn sie nicht erfüllt wird.

  10. Klicken Sie auf Erstellen, um die anstehende Ressourcenanfrage zu erstellen.

Im folgenden Beispiel wird eine v4-32 angefordert. Die Anfrage läuft ab, wenn sie nicht innerhalb von sechs Stunden erfüllt wird.

gcloud

    gcloud 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.18.0-pod-pjrt \
    --valid-until-duration 6h

Beschreibungen der Befehlsparameter

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die benutzerdefinierte ID der TPU, die als Reaktion auf die Anfrage erstellt wurde.
project
Das Google Cloud Projekt, dem die in der Warteschlange befindliche Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
valid-until-duration
Die Dauer, für die die Anfrage gültig ist. Weitere Informationen zu Zeitformaten finden Sie unter Google Cloud CLI-Thema „datetime“
.

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.18.0-pod-pjrt',
        }
    }
    },
'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

Beschreibungen der Befehlsparameter

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die benutzerdefinierte ID der TPU, die als Reaktion auf die Anfrage erstellt wurde.
project
Das Google Cloud Projekt, dem die in der Warteschlange befindliche Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
valid-until-duration
Die Dauer, für die die Anfrage gültig ist. Weitere Informationen zu Zeitformaten finden Sie unter Google Cloud CLI-Thema „datetime“
.

Python

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

from google.cloud import tpu_v2alpha1

# TODO(developer): Update and un-comment below lines
# project_id = "your-project-id"
# zone = "us-central1-b"
# tpu_name = "tpu-name"
# tpu_type = "v2-8"
# runtime_version = "tpu-vm-tf-2.17.0-pjrt"
# queued_resource_name = "resource-name"

node = tpu_v2alpha1.Node()
node.accelerator_type = tpu_type
# To see available runtime version use command:
# gcloud compute tpus versions list --zone={ZONE}
node.runtime_version = runtime_version

node_spec = tpu_v2alpha1.QueuedResource.Tpu.NodeSpec()
node_spec.parent = f"projects/{project_id}/locations/{zone}"
node_spec.node_id = tpu_name
node_spec.node = node

resource = tpu_v2alpha1.QueuedResource()
resource.tpu = tpu_v2alpha1.QueuedResource.Tpu(node_spec=[node_spec])

# Use one of the following queueing policies
resource.queueing_policy = tpu_v2alpha1.QueuedResource.QueueingPolicy(
    # valid_after_duration = "6000s", # Duration after which a resource should be allocated
    valid_until_duration="90s",  # Specify how long a queued resource request remains valid
    # valid_after_time="2024-10-31T09:00:00Z", # Specify a time after which a resource should be allocated
    # valid_until_time="2024-10-29T16:00:00Z",  # Specify a time before which the resource should be allocated
)

request = CreateQueuedResourceRequest(
    parent=f"projects/{project_id}/locations/{zone}",
    queued_resource_id=queued_resource_name,
    queued_resource=resource,
)

client = tpu_v2alpha1.TpuClient()
operation = client.create_queued_resource(request=request)

response = operation.result()
print(resource.queueing_policy)
print(response.queueing_policy.valid_until_time)
# Example response:
# valid_until_duration {
#   seconds: 90
# }
# 2024-10-29 14:22:53.562090+00:00

Anfordern, dass eine in der Warteschlange befindliche Ressource innerhalb eines bestimmten Intervalls zugewiesen wird

Sie können ein Zuweisungsintervall angeben, indem Sie sowohl die Startzeit oder -dauer als auch die Endzeit oder -dauer angeben.

gcloud

Mit dem folgenden Befehl wird eine v4-32 in 5 Stunden und 30 Minuten ab der aktuellen Uhrzeit angefordert, die spätestens am 14. Dezember 2022 um 9:00 Uhr erstellt werden soll.

gcloud 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.18.0-pod-pjrt \
    --valid-after-duration 5h30m \
    --valid-until-time 2022-12-14T09:00:00Z

Beschreibung der Befehls-Flags

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die benutzerdefinierte ID der TPU, die als Reaktion auf die Anfrage erstellt wurde.
project
Die ID des Projekts, dem die erwartete Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
valid-until-timw
Der Zeitpunkt, nach dem der Antrag storniert wird. Weitere Informationen zu Zeitformaten finden Sie unter Google Cloud CLI-Thema „Datum und Uhrzeit“.
valid-until-duration
Die Dauer, für die die Anfrage gültig ist. Weitere Informationen zu Zeitformaten finden Sie unter Google Cloud CLI-Thema „Datum und Uhrzeit“.

curl

Mit dem folgenden Befehl wird eine v4-32 in 5 Stunden und 30 Minuten ab der aktuellen Uhrzeit angefordert, die spätestens am 14. Dezember 2022 um 9:00 Uhr erstellt werden soll.

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.18.0-pod-pjrt',
        }
    }
    },
'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

Beschreibung der Befehls-Flags

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die benutzerdefinierte ID der TPU, die als Reaktion auf die Anfrage erstellt wurde.
project
Die ID des Projekts, dem die erwartete Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
valid-until-timw
Der Zeitpunkt, nach dem die Anfrage storniert wird. Weitere Informationen zu Zeitformaten finden Sie unter Google Cloud CLI-Thema „Datum und Uhrzeit“.
valid-until-duration
Die Dauer, für die die Anfrage gültig ist. Weitere Informationen zu Zeitformaten finden Sie unter Google Cloud CLI-Thema „Datum und Uhrzeit“.

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    TPUs aufrufen

  2. Klicken Sie auf TPU erstellen.

  3. Geben Sie im Feld Name einen Namen für die TPU ein.

  4. Wählen Sie im Feld Zone die Zone aus, in der die TPU erstellt werden soll.

  5. Wählen Sie im Feld TPU-Typ einen Beschleunigertyp aus. Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.

  6. Wählen Sie im Feld TPU-Softwareversion eine Softwareversion aus. Beim Erstellen einer Cloud TPU-VM gibt die TPU-Softwareversion die Version der zu installierenden TPU-Laufzeit an. Weitere Informationen finden Sie unter TPU-VM-Images.

  7. Klicken Sie auf den Schalter Warteschlange aktivieren.

  8. Geben Sie im Feld Name der anstehenden Ressource einen Namen für die anstehende Ressourcenanfrage ein.

  9. Geben Sie im Feld Anfrage starten am die Zeit ein, nach der die Ressource zugewiesen werden soll.

  10. Geben Sie im Feld Anfrage abbrechen bei die Zeit ein, zu der die anstehende Ressourcenanfrage ablaufen soll, wenn sie nicht erfüllt wird.

  11. Klicken Sie auf Erstellen, um die anstehende Ressourcenanfrage zu erstellen.

Eine in der Warteschlange befindliche Ressource mit einem Startskript anfordern

Sie können ein Script angeben, das auf einer in der Warteschlange befindlichen Ressource ausgeführt werden soll, nachdem sie bereitgestellt wurde.

gcloud

Wenn Sie den Befehl gcloud verwenden, können Sie entweder das Flag --metadata oder --metadata-from-file verwenden, um einen Skriptbefehl bzw. eine Datei mit dem Skriptcode anzugeben. Im folgenden Beispiel wird eine anstehende Ressourcenanfrage erstellt, über die das startup-script.sh-Script ausgeführt wird.

gcloud 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.12.0 \
    --metadata-from-file='startup-script=startup-script.sh'

Beschreibung der Befehls-Flags

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die benutzerdefinierte ID der TPU, die als Reaktion auf die Anfrage erstellt wurde.
project
Die ID des Projekts, dem die erwartete Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
validInterval
Die Zeitspanne, in der die Anfrage gültig ist, nach der sie storniert wird. Weitere Informationen zu Zeitformaten finden Sie unter Google Cloud CLI-Thema „Datum/Uhrzeit“.
metadata-from-file
Gibt eine Datei an, die Metadaten enthält. Wenn Sie keinen vollständig qualifizierten Pfad zur Metadatendatei angeben, geht der Befehl davon aus, dass sie sich im aktuellen Verzeichnis befindet. In diesem Beispiel enthält die Datei ein Startskript, das ausgeführt wird, wenn die in der Warteschlange befindliche Ressource bereitgestellt wird.
metadata
Gibt Metadaten für die Anfrage an. In diesem Beispiel sind die Metadaten ein Startskriptbefehl, der ausgeführt wird, wenn die erwartete Ressource bereitgestellt wird.

curl

Wenn Sie curl verwenden, müssen Sie den Scriptcode in den JSON-Inhalt einfügen. Das folgende Beispiel enthält ein Inline-Script im JSON-Textkörper.

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: 'v2-8',
            runtime_version: 'tpu-vm-tf-2.18.0-pjrt',
            metadata: {
                "startup-script": "#! /bin/bash\npwd > /tmp/out.txt\nwhoami >> /tmp/out.txt"
            }
        }
        }
    },
'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

Beschreibung der Befehls-Flags

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die benutzerdefinierte ID der TPU, die als Reaktion auf die Anfrage erstellt wurde.
project
Die ID des Projekts, dem die erwartete Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
validInterval
Die Zeitspanne, in der die Anfrage gültig ist, nach der sie storniert wird. Weitere Informationen zu Zeitformaten finden Sie unter Google Cloud CLI-Thema „Datum/Uhrzeit“.
metadata-from-file
Gibt eine Datei an, die Metadaten enthält. Wenn Sie keinen vollständig qualifizierten Pfad zur Metadatendatei angeben, geht der Befehl davon aus, dass sie sich im aktuellen Verzeichnis befindet. In diesem Beispiel enthält die Datei ein Startskript, das ausgeführt wird, wenn die in der Warteschlange befindliche Ressource bereitgestellt wird.
metadata
Gibt Metadaten für die Anfrage an. In diesem Beispiel sind die Metadaten ein Startskriptbefehl, der ausgeführt wird, wenn die erwartete Ressource bereitgestellt wird.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import com.google.cloud.tpu.v2alpha1.CreateQueuedResourceRequest;
import com.google.cloud.tpu.v2alpha1.Node;
import com.google.cloud.tpu.v2alpha1.QueuedResource;
import com.google.cloud.tpu.v2alpha1.TpuClient;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ExecutionException;

public class CreateQueuedResourceWithStartupScript {
  public static void main(String[] args)
      throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Google Cloud project you want to create a node.
    String projectId = "YOUR_PROJECT_ID";
    // The zone in which to create the TPU.
    // For more information about supported TPU types for specific zones,
    // see https://cloud.google.com/tpu/docs/regions-zones
    String zone = "us-central1-a";
    // The name for your TPU.
    String nodeName = "YOUR_TPU_NAME";
    // The accelerator type that specifies the version and size of the Cloud TPU you want to create.
    // For more information about supported accelerator types for each TPU version,
    // see https://cloud.google.com/tpu/docs/system-architecture-tpu-vm#versions.
    String tpuType = "v2-8";
    // Software version that specifies the version of the TPU runtime to install.
    // For more information see https://cloud.google.com/tpu/docs/runtimes
    String tpuSoftwareVersion = "tpu-vm-tf-2.14.1";
    // The name for your Queued Resource.
    String queuedResourceId = "QUEUED_RESOURCE_ID";

    createQueuedResource(projectId, zone, queuedResourceId, nodeName,
        tpuType, tpuSoftwareVersion);
  }

  // Creates a Queued Resource with startup script.
  public static QueuedResource createQueuedResource(
      String projectId, String zone, String queuedResourceId,
      String nodeName, String tpuType, String tpuSoftwareVersion)
      throws IOException, ExecutionException, InterruptedException {
    String parent = String.format("projects/%s/locations/%s", projectId, zone);
    String startupScriptContent = "#!/bin/bash\necho \"Hello from the startup script!\"";
    // Add startup script to metadata
    Map<String, String> metadata = new HashMap<>();
    metadata.put("startup-script", startupScriptContent);
    String queuedResourceForTpu =  String.format("projects/%s/locations/%s/queuedResources/%s",
            projectId, zone, queuedResourceId);
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (TpuClient tpuClient = TpuClient.create()) {
      Node node =
          Node.newBuilder()
              .setName(nodeName)
              .setAcceleratorType(tpuType)
              .setRuntimeVersion(tpuSoftwareVersion)
              .setQueuedResource(queuedResourceForTpu)
              .putAllMetadata(metadata)
              .build();

      QueuedResource queuedResource =
          QueuedResource.newBuilder()
              .setName(queuedResourceId)
              .setTpu(
                  QueuedResource.Tpu.newBuilder()
                      .addNodeSpec(
                          QueuedResource.Tpu.NodeSpec.newBuilder()
                              .setParent(parent)
                              .setNode(node)
                              .setNodeId(nodeName)
                              .build())
                      .build())
              .build();

      CreateQueuedResourceRequest request =
          CreateQueuedResourceRequest.newBuilder()
              .setParent(parent)
              .setQueuedResourceId(queuedResourceId)
              .setQueuedResource(queuedResource)
              .build();
      // You can wait until TPU Node is READY,
      // and check its status using getTpuVm() from "tpu_vm_get" sample.

      return tpuClient.createQueuedResourceAsync(request).get();
    }
  }
}

Python

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

from google.cloud import tpu_v2alpha1

# TODO(developer): Update and un-comment below lines
# project_id = "your-project-id"
# zone = "us-central1-b"
# tpu_name = "tpu-name"
# tpu_type = "v2-8"
# runtime_version = "tpu-vm-tf-2.17.0-pjrt"
# queued_resource_name = "resource-name"

node = tpu_v2alpha1.Node()
node.accelerator_type = tpu_type
# To see available runtime version use command:
# gcloud compute tpus versions list --zone={ZONE}
node.runtime_version = runtime_version
# This startup script updates numpy to the latest version and logs the output to a file.
script = {
    "startup-script": """#!/bin/bash
echo "Hello World" > /var/log/hello.log
sudo pip3 install --upgrade numpy >> /var/log/hello.log 2>&1
"""
}
node.metadata = script
# Enabling external IPs for internet access from the TPU node for updating numpy
node.network_config = tpu_v2alpha1.NetworkConfig(
    enable_external_ips=True,
)

node_spec = tpu_v2alpha1.QueuedResource.Tpu.NodeSpec()
node_spec.parent = f"projects/{project_id}/locations/{zone}"
node_spec.node_id = tpu_name
node_spec.node = node

resource = tpu_v2alpha1.QueuedResource()
resource.tpu = tpu_v2alpha1.QueuedResource.Tpu(node_spec=[node_spec])

request = CreateQueuedResourceRequest(
    parent=f"projects/{project_id}/locations/{zone}",
    queued_resource_id=queued_resource_name,
    queued_resource=resource,
)

client = tpu_v2alpha1.TpuClient()
operation = client.create_queued_resource(request=request)

response = operation.result()
print(response.name)
print(response.tpu.node_spec[0].node.metadata)
# Example response:
# projects/[project_id]/locations/[zone]/queuedResources/resource-name
# {'startup-script': '#!/bin/bash\n    echo "Hello World" > /var/log/hello.log\n
# sudo pip3 install --upgrade numpy >> /var/log/hello.log 2>&1\n    '}

Eine in der Warteschlange befindliche Ressource mit einem bestimmten Netzwerk und Subnetzwerk anfordern

In einer in die Warteschlange gestellten Ressourcenanfrage können Sie ein Netzwerk und ein Subnetzwerk angeben, mit dem Sie Ihre TPU verbinden möchten.

gcloud

gcloud 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.18.0-pjrt \
    --network network-name \
    --subnetwork subnetwork-name

Beschreibungen der Befehlsparameter

queued-resource-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die vom Nutzer zugewiesene ID der TPU, die erstellt wird, wenn die anstehende Ressourcenanfrage zugewiesen wird.
project
Ihr Google Cloud Projekt.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
reserved
Verwenden Sie dieses Flag, wenn Sie in die Warteschlange gestellte Ressourcen im Rahmen einer Cloud TPU-Reservierung anfordern.
network
Ein Netzwerk, zu dem die in der Warteschlange befindliche Ressource gehört.
subnetwork
Ein Subnetzwerk, zu dem die in die Warteschlange gestellte Ressource gehört.

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.18.0-pjrt',
        'network_config': {
            'network': 'network-name',
            'subnetwork': 'subnetwork-name',
            'enable_external_ips': true
        }
    }
    },
    'guaranteed': {
    'reserved': true,
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehlsparameter

queued-resource-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
node-id
Die vom Nutzer zugewiesene ID der TPU, die erstellt wird, wenn die anstehende Ressourcenanfrage zugewiesen wird.
project
Ihr Google Cloud Projekt.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.
runtime-version
Die Version der Cloud TPU-Software
reserved
Verwenden Sie dieses Flag, wenn Sie in die Warteschlange gestellte Ressourcen im Rahmen einer Cloud TPU-Reservierung anfordern.
network
Ein Netzwerk, zu dem die in der Warteschlange befindliche Ressource gehört.
subnetwork
Ein Subnetzwerk, zu dem die in die Warteschlange gestellte Ressource gehört.

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    TPUs aufrufen

  2. Klicken Sie auf TPU erstellen.

  3. Geben Sie im Feld Name einen Namen für die TPU ein.

  4. Wählen Sie im Feld Zone die Zone aus, in der die TPU erstellt werden soll.

  5. Wählen Sie im Feld TPU-Typ einen Beschleunigertyp aus. Mit dem Beschleunigertyp geben Sie die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen.

  6. Wählen Sie im Feld TPU-Softwareversion eine Softwareversion aus. Beim Erstellen einer Cloud TPU-VM gibt die TPU-Softwareversion die Version der zu installierenden TPU-Laufzeit an. Weitere Informationen finden Sie unter TPU-VM-Images.

  7. Klicken Sie auf den Schalter Warteschlange aktivieren.

  8. Geben Sie im Feld Name der anstehenden Ressource einen Namen für die anstehende Ressourcenanfrage ein.

  9. Maximieren Sie den Bereich Netzwerk.

  10. Wählen Sie in den Feldern Netzwerk und Subnetzwerk das gewünschte Netzwerk und Subnetzwerk aus.

  11. Klicken Sie auf Erstellen, um die anstehende Ressourcenanfrage zu erstellen.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import com.google.api.gax.retrying.RetrySettings;
import com.google.cloud.tpu.v2alpha1.CreateQueuedResourceRequest;
import com.google.cloud.tpu.v2alpha1.NetworkConfig;
import com.google.cloud.tpu.v2alpha1.Node;
import com.google.cloud.tpu.v2alpha1.QueuedResource;
import com.google.cloud.tpu.v2alpha1.TpuClient;
import com.google.cloud.tpu.v2alpha1.TpuSettings;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import org.threeten.bp.Duration;

public class CreateQueuedResourceWithNetwork {
  public static void main(String[] args)
      throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Google Cloud project you want to create a node.
    String projectId = "YOUR_PROJECT_ID";
    // The zone in which to create the TPU.
    // For more information about supported TPU types for specific zones,
    // see https://cloud.google.com/tpu/docs/regions-zones
    String zone = "europe-west4-a";
    // The name for your TPU.
    String nodeName = "YOUR_TPU_NAME";
    // The accelerator type that specifies the version and size of the Cloud TPU you want to create.
    // For more information about supported accelerator types for each TPU version,
    // see https://cloud.google.com/tpu/docs/system-architecture-tpu-vm#versions.
    String tpuType = "v2-8";
    // Software version that specifies the version of the TPU runtime to install.
    // For more information see https://cloud.google.com/tpu/docs/runtimes
    String tpuSoftwareVersion = "tpu-vm-tf-2.14.1";
    // The name for your Queued Resource.
    String queuedResourceId = "QUEUED_RESOURCE_ID";
    // The name of the network you want the node to connect to.
    // The network should be assigned to your project.
    String networkName = "YOUR_COMPUTE_TPU_NETWORK";

    createQueuedResourceWithNetwork(projectId, zone, queuedResourceId, nodeName,
        tpuType, tpuSoftwareVersion, networkName);
  }

  // Creates a Queued Resource with network configuration.
  public static QueuedResource createQueuedResourceWithNetwork(
      String projectId, String zone, String queuedResourceId, String nodeName,
      String tpuType, String tpuSoftwareVersion, String networkName)
      throws IOException, ExecutionException, InterruptedException {
    // With these settings the client library handles the Operation's polling mechanism
    // and prevent CancellationException error
    TpuSettings.Builder clientSettings =
        TpuSettings.newBuilder();
    clientSettings
        .createQueuedResourceSettings()
        .setRetrySettings(
            RetrySettings.newBuilder()
                .setInitialRetryDelay(Duration.ofMillis(5000L))
                .setRetryDelayMultiplier(2.0)
                .setInitialRpcTimeout(Duration.ZERO)
                .setRpcTimeoutMultiplier(1.0)
                .setMaxRetryDelay(Duration.ofMillis(45000L))
                .setTotalTimeout(Duration.ofHours(24L))
                .build());
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (TpuClient tpuClient = TpuClient.create(clientSettings.build())) {
      String parent = String.format("projects/%s/locations/%s", projectId, zone);
      String region = zone.substring(0, zone.length() - 2);

      // Specify the network and subnetwork that you want to connect your TPU to.
      NetworkConfig networkConfig =
          NetworkConfig.newBuilder()
              .setEnableExternalIps(true)
              .setNetwork(String.format("projects/%s/global/networks/%s", projectId, networkName))
              .setSubnetwork(
                  String.format(
                      "projects/%s/regions/%s/subnetworks/%s", projectId, region, networkName))
              .build();

      // Create a node
      Node node =
          Node.newBuilder()
              .setName(nodeName)
              .setAcceleratorType(tpuType)
              .setRuntimeVersion(tpuSoftwareVersion)
              .setNetworkConfig(networkConfig)
              .setQueuedResource(
                  String.format(
                      "projects/%s/locations/%s/queuedResources/%s",
                      projectId, zone, queuedResourceId))
              .build();

      // Create queued resource
      QueuedResource queuedResource =
          QueuedResource.newBuilder()
              .setName(queuedResourceId)
              .setTpu(
                  QueuedResource.Tpu.newBuilder()
                      .addNodeSpec(
                          QueuedResource.Tpu.NodeSpec.newBuilder()
                              .setParent(parent)
                              .setNode(node)
                              .setNodeId(nodeName)
                              .build())
                      .build())
              .build();

      CreateQueuedResourceRequest request =
          CreateQueuedResourceRequest.newBuilder()
              .setParent(parent)
              .setQueuedResource(queuedResource)
              .setQueuedResourceId(queuedResourceId)
              .build();

      // You can wait until TPU Node is READY,
      // and check its status using getTpuVm() from "tpu_vm_get" sample.

      return tpuClient.createQueuedResourceAsync(request).get();
    }
  }
}

Python

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

from google.cloud import tpu_v2alpha1

# TODO(developer): Update and un-comment below lines
# project_id = "your-project-id"
# zone = "us-central1-b"
# tpu_name = "tpu-name"
# tpu_type = "v2-8"
# runtime_version = "tpu-vm-tf-2.17.0-pjrt"
# queued_resource_name = "resource-name"
# network = "default"

node = tpu_v2alpha1.Node()
node.accelerator_type = tpu_type
node.runtime_version = runtime_version
# Setting network configuration
node.network_config = tpu_v2alpha1.NetworkConfig(
    network=network,  # Update if you want to use a specific network
    subnetwork="default",  # Update if you want to use a specific subnetwork
    enable_external_ips=True,
    can_ip_forward=True,
)

node_spec = tpu_v2alpha1.QueuedResource.Tpu.NodeSpec()
node_spec.parent = f"projects/{project_id}/locations/{zone}"
node_spec.node_id = tpu_name
node_spec.node = node

resource = tpu_v2alpha1.QueuedResource()
resource.tpu = tpu_v2alpha1.QueuedResource.Tpu(node_spec=[node_spec])

request = CreateQueuedResourceRequest(
    parent=f"projects/{project_id}/locations/{zone}",
    queued_resource_id=queued_resource_name,
    queued_resource=resource,
)

client = tpu_v2alpha1.TpuClient()
operation = client.create_queued_resource(request=request)

response = operation.result()
print(response.name)
print(response.tpu.node_spec[0].node.network_config)
print(resource.tpu.node_spec[0].node.network_config.network == "default")
# Example response:
# network: "default"
# subnetwork: "default"
# enable_external_ips: true
# can_ip_forward: true

In die Warteschlange gestellte Ressourcenanfrage löschen

Sie können eine in der Warteschlange befindliche Ressourcenanfrage und die mit der Anfrage verknüpfte TPU löschen, indem Sie die Ressourcenanfrage löschen:

gcloud

Übergeben Sie das Flag --force an den Befehl queued-resource delete:

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

Beschreibung der Befehls-Flags

your-queued-resource-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
project
Das Google Cloud Projekt, dem die in der Warteschlange befindliche Ressource zugewiesen ist.
zone
Die Zone der zu löschenden Cloud TPU.
force
Löschen Sie sowohl die TPU-VM als auch die Anfrage für die in die Warteschlange gestellte Ressource.

curl

Verwenden Sie den Abfrageparameter force=true in Ihrer curl-Anfrage:

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

Beschreibung der Befehls-Flags

your-queued-resource-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
project
Das Google Cloud Projekt, dem die in der Warteschlange befindliche Ressource zugewiesen ist.
zone
Die Zone der zu löschenden Cloud TPU.
force
Löschen Sie sowohl die TPU-VM als auch die Anfrage für die in die Warteschlange gestellte Ressource.

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    TPUs aufrufen

  2. Klicken Sie auf den Tab In der Warteschlange befindliche Ressourcen.

  3. Klicken Sie das Kästchen neben der anstehenden Ressourcenanfrage an.

  4. Klicken Sie auf Löschen.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import com.google.api.gax.retrying.RetrySettings;
import com.google.cloud.tpu.v2alpha1.DeleteQueuedResourceRequest;
import com.google.cloud.tpu.v2alpha1.TpuClient;
import com.google.cloud.tpu.v2alpha1.TpuSettings;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import org.threeten.bp.Duration;

public class DeleteForceQueuedResource {
  public static void main(String[] args)
      throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Google Cloud project.
    String projectId = "YOUR_PROJECT_ID";
    // The zone in which the TPU was created.
    String zone = "us-central1-f";
    // The name for your Queued Resource.
    String queuedResourceId = "QUEUED_RESOURCE_ID";

    deleteForceQueuedResource(projectId, zone, queuedResourceId);
  }

  // Deletes a Queued Resource asynchronously with --force flag.
  public static void deleteForceQueuedResource(
      String projectId, String zone, String queuedResourceId)
          throws ExecutionException, InterruptedException, IOException {
    String name = String.format("projects/%s/locations/%s/queuedResources/%s",
        projectId, zone, queuedResourceId);
    // With these settings the client library handles the Operation's polling mechanism
    // and prevent CancellationException error
    TpuSettings.Builder clientSettings =
        TpuSettings.newBuilder();
    clientSettings
        .deleteQueuedResourceSettings()
        .setRetrySettings(
            RetrySettings.newBuilder()
                .setInitialRetryDelay(Duration.ofMillis(5000L))
                .setRetryDelayMultiplier(2.0)
                .setInitialRpcTimeout(Duration.ZERO)
                .setRpcTimeoutMultiplier(1.0)
                .setMaxRetryDelay(Duration.ofMillis(45000L))
                .setTotalTimeout(Duration.ofHours(24L))
                .build());

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (TpuClient tpuClient = TpuClient.create(clientSettings.build())) {
      DeleteQueuedResourceRequest request =
          DeleteQueuedResourceRequest.newBuilder().setName(name).setForce(true).build();
      // Waiting for updates in the library. Until then, the operation will complete successfully,
      // but the user will receive an error message with UnknownException and IllegalStateException.
      tpuClient.deleteQueuedResourceAsync(request).get();

      System.out.printf("Deleted Queued Resource: %s\n", name);
    }
  }
}

Python

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

from google.cloud import tpu_v2alpha1

# TODO(developer): Update and un-comment below lines
# project_id = "your-project-id"
# zone = "us-central1-b"
# queued_resource_name = "resource-name"

client = tpu_v2alpha1.TpuClient()
request = tpu_v2alpha1.DeleteQueuedResourceRequest(
    name=f"projects/{project_id}/locations/{zone}/queuedResources/{queued_resource_name}",
    force=True,  # Set force=True to delete the resource with tpu nodes.
)

try:
    op = client.delete_queued_resource(request=request)
    op.result()
    print(f"Queued resource '{queued_resource_name}' successfully deleted.")
except TypeError as e:
    print(f"Error deleting resource: {e}")
    print(f"Queued resource '{queued_resource_name}' successfully deleted.")

Wenn Sie die TPU direkt löschen, müssen Sie auch die in die Warteschlange gestellte Ressource löschen, wie im folgenden Beispiel gezeigt. Wenn Sie die TPU löschen, ändert sich der Status der anstehenden Ressourcenanfrage in SUSPENDED. Danach kann die anstehende Ressourcenanfrage gelöscht werden.

gcloud

Löschen Sie die TPU:

$ gcloud compute tpus tpu-vm delete your-node-id \
    --project=your-project \
    --zone=zone \
    --quiet

Beschreibung der Befehls-Flags

project
Das Google Cloud Projekt, dem die in der Warteschlange befindliche Ressource zugewiesen ist.
zone
Die Zone der zu löschenden Cloud TPU.
your-node-id
Der Name der TPU, die Sie löschen möchten.

Wenn Sie Ihre TPU löschen, ändert sich der Status der zugehörigen in der Warteschlange befindlichen Ressource zu SUSPENDING und dann zu SUSPENDED. Wenn die in der Warteschlange befindliche Ressource den Status SUSPENDED hat, können Sie sie löschen:

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

Beschreibung der Befehls-Flags

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
project
Das Google Cloud Projekt, dem die in der Warteschlange befindliche Ressource zugewiesen ist.
zone
Die Zone der zu löschenden Cloud TPU.

curl

Löschen Sie die TPU:

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

Beschreibung der Befehls-Flags

project
Das Google Cloud Projekt, dem die in der Warteschlange befindliche Ressource zugewiesen ist.
zone
Die Zone der zu löschenden Cloud TPU.
your-node-id
Der Name der TPU, die Sie löschen möchten.

Wenn Sie Ihre TPU löschen, ändert sich der Status der zugehörigen in der Warteschlange befindlichen Ressource zu SUSPENDING und dann zu SUSPENDED. Wenn die in der Warteschlange befindliche Ressource den Status SUSPENDED hat, können Sie sie löschen:

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

Beschreibung der Befehls-Flags

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
project
Das Google Cloud Projekt, dem die in der Warteschlange befindliche Ressource zugewiesen ist.
zone
Die Zone der zu löschenden Cloud TPU.

Console

So löschen Sie Ihre TPU:

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    TPUs aufrufen

  2. Klicken Sie auf das Kästchen neben Ihrer TPU.

  3. Klicken Sie auf Löschen.

Wenn Sie Ihre TPU löschen, wechselt der Status der zugehörigen in der Warteschlange befindlichen Ressource zu In der Schwebe und dann zu Angehalten. Wenn sich die in der Warteschlange befindliche Ressource im Status Ausgesetzt befindet, können Sie sie löschen:

  1. Klicken Sie auf den Tab In der Warteschlange befindliche Ressourcen.
  2. Klicken Sie das Kästchen neben der anstehenden Ressourcenanfrage an.
  3. Klicken Sie auf Löschen.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import com.google.api.gax.longrunning.OperationTimedPollAlgorithm;
import com.google.api.gax.retrying.RetrySettings;
import com.google.cloud.tpu.v2.DeleteNodeRequest;
import com.google.cloud.tpu.v2.NodeName;
import com.google.cloud.tpu.v2.TpuClient;
import com.google.cloud.tpu.v2.TpuSettings;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import org.threeten.bp.Duration;

public class DeleteTpuVm {

  public static void main(String[] args)
      throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Google Cloud project you want to create a node.
    String projectId = "YOUR_PROJECT_ID";
    // The zone in which to create the TPU.
    // For more information about supported TPU types for specific zones,
    // see https://cloud.google.com/tpu/docs/regions-zones
    String zone = "europe-west4-a";
    // The name for your TPU.
    String nodeName = "YOUR_TPU_NAME";

    deleteTpuVm(projectId, zone, nodeName);
  }

  // Deletes a TPU VM with the specified name in the given project and zone.
  public static void deleteTpuVm(String projectId, String zone, String nodeName)
      throws IOException, ExecutionException, InterruptedException {
    // With these settings the client library handles the Operation's polling mechanism
    // and prevent CancellationException error
    TpuSettings.Builder clientSettings =
        TpuSettings.newBuilder();
    clientSettings
        .deleteNodeOperationSettings()
        .setPollingAlgorithm(
            OperationTimedPollAlgorithm.create(
                RetrySettings.newBuilder()
                    .setInitialRetryDelay(Duration.ofMillis(5000L))
                    .setRetryDelayMultiplier(1.5)
                    .setMaxRetryDelay(Duration.ofMillis(45000L))
                    .setInitialRpcTimeout(Duration.ZERO)
                    .setRpcTimeoutMultiplier(1.0)
                    .setMaxRpcTimeout(Duration.ZERO)
                    .setTotalTimeout(Duration.ofHours(24L))
                    .build()));

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (TpuClient tpuClient = TpuClient.create(clientSettings.build())) {
      String name = NodeName.of(projectId, zone, nodeName).toString();

      DeleteNodeRequest request = DeleteNodeRequest.newBuilder().setName(name).build();

      tpuClient.deleteNodeAsync(request).get();
      System.out.println("TPU VM deleted");
    }
  }
}

Wenn Sie Ihre TPU löschen, ändert sich der Status der zugehörigen in der Warteschlange befindlichen Ressource zu SUSPENDING und dann zu SUSPENDED. Wenn die in der Warteschlange befindliche Ressource den Status SUSPENDED hat, können Sie sie löschen:

import com.google.cloud.tpu.v2alpha1.DeleteQueuedResourceRequest;
import com.google.cloud.tpu.v2alpha1.TpuClient;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

public class DeleteQueuedResource {
  public static void main(String[] args)
      throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Google Cloud project.
    String projectId = "YOUR_PROJECT_ID";
    // The zone in which the TPU was created.
    String zone = "us-central1-f";
    // The name for your Queued Resource.
    String queuedResourceId = "QUEUED_RESOURCE_ID";

    deleteQueuedResource(projectId, zone, queuedResourceId);
  }

  // Deletes a Queued Resource asynchronously.
  public static void deleteQueuedResource(String projectId, String zone, String queuedResourceId)
      throws ExecutionException, InterruptedException, IOException {
    String name = String.format("projects/%s/locations/%s/queuedResources/%s",
        projectId, zone, queuedResourceId);
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (TpuClient tpuClient = TpuClient.create()) {
      // Before deleting the queued resource it is required to delete the TPU VM.
      // For more information about deleting TPU
      // see https://cloud.google.com/tpu/docs/managing-tpus-tpu-vm

      DeleteQueuedResourceRequest request =
              DeleteQueuedResourceRequest.newBuilder().setName(name).build();

      tpuClient.deleteQueuedResourceAsync(request).get();
    }
  }
}

Python

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

from google.cloud import tpu_v2

# TODO(developer): Update and un-comment below lines
# project_id = "your-project-id"
# zone = "us-central1-b"
# tpu_name = "tpu-name"

client = tpu_v2.TpuClient()
try:
    client.delete_node(
        name=f"projects/{project_id}/locations/{zone}/nodes/{tpu_name}"
    )
    print("The TPU node was deleted.")
except Exception as e:
    print(e)

Wenn Sie Ihre TPU löschen, ändert sich der Status der zugehörigen in der Warteschlange befindlichen Ressource zu SUSPENDING und dann zu SUSPENDED. Wenn die in der Warteschlange befindliche Ressource den Status SUSPENDED hat, können Sie sie löschen:

from google.cloud import tpu_v2alpha1

# TODO(developer): Update and un-comment below lines
# project_id = "your-project-id"
# zone = "us-central1-b"
# queued_resource_name = "resource-name"

client = tpu_v2alpha1.TpuClient()
name = (
    f"projects/{project_id}/locations/{zone}/queuedResources/{queued_resource_name}"
)

try:
    op = client.delete_queued_resource(name=name)
    op.result()
    print(f"Queued resource '{queued_resource_name}' successfully deleted.")
except TypeError as e:
    print(f"Error deleting resource: {e}")
    print(f"Queued resource '{queued_resource_name}' successfully deleted.")

Status- und Diagnoseinformationen zu einer anstehenden Ressourcenanfrage abrufen

Status- und Diagnoseinformationen zu einer anstehenden Ressourcenanfrage abrufen:

gcloud

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

Beschreibung der Befehls-Flags

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
project
Die ID des Projekts, dem die erwartete Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.

curl

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

Beschreibung der Befehls-Flags

queued-resource-request-id
Die vom Nutzer zugewiesene ID der anstehenden Ressourcenanfrage.
project
Die ID des Projekts, dem die erwartete Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    TPUs aufrufen

  2. Klicken Sie auf den Tab In der Warteschlange befindliche Ressourcen.

  3. Klicken Sie auf den Namen Ihrer anstehenden Ressourcenanfrage.

Nachdem Ihre TPU bereitgestellt wurde, können Sie auch Details zu Ihrer in der Warteschlange befindlichen Ressourcenanfrage aufrufen. Rufen Sie dazu die Seite TPUs auf, suchen Sie nach Ihrer TPU und klicken Sie auf den Namen der entsprechenden in der Warteschlange befindlichen Ressourcenanfrage.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import com.google.cloud.tpu.v2alpha1.GetQueuedResourceRequest;
import com.google.cloud.tpu.v2alpha1.QueuedResource;
import com.google.cloud.tpu.v2alpha1.TpuClient;
import java.io.IOException;

public class GetQueuedResource {
  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Google Cloud project.
    String projectId = "YOUR_PROJECT_ID";
    // The zone in which the TPU was created.
    String zone = "us-central1-f";
    // The name for your Queued Resource.
    String queuedResourceId = "QUEUED_RESOURCE_ID";

    getQueuedResource(projectId, zone, queuedResourceId);
  }

  // Get a Queued Resource.
  public static QueuedResource getQueuedResource(
      String projectId, String zone, String queuedResourceId) throws IOException {
    String name = String.format("projects/%s/locations/%s/queuedResources/%s",
        projectId, zone, queuedResourceId);
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (TpuClient tpuClient = TpuClient.create()) {
      GetQueuedResourceRequest request =
          GetQueuedResourceRequest.newBuilder().setName(name).build();

      return tpuClient.getQueuedResource(request);
    }
  }
}

Python

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

from google.cloud import tpu_v2alpha1

# TODO(developer): Update and un-comment below lines
# project_id = "your-project-id"
# zone = "us-central1-b"
# queued_resource_name = "resource-name"

client = tpu_v2alpha1.TpuClient()
name = (
    f"projects/{project_id}/locations/{zone}/queuedResources/{queued_resource_name}"
)
resource = client.get_queued_resource(name=name)
print("Resource name:", resource.name)
print(resource.state.state)
# Example response:
# Resource name: projects/{project_id}/locations/{zone}/queuedResources/resource-name
# State.ACTIVE

Wenn die Anfrage fehlschlägt, enthält die Ausgabe Fehlerinformationen. Bei einer Anfrage, die auf Ressourcen wartet, sieht die Ausgabe in etwa so aus:

gcloud

    name: projects/your-project-id/locations/us-central2-b/queuedResources/your-queued-resource-id
    state:
    state: WAITING_FOR_RESOURCES
    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

Console

Im Feld Status der Ressource in der Warteschlange wird Warte auf Ressourcen angezeigt.

Anstehende Ressourcenanfragen in Ihrem Projekt auflisten

So listen Sie die anstehenden Ressourcenanfragen in Ihrem Projekt auf:

gcloud

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

Beschreibung der Befehls-Flags

project
Das Google Cloud Projekt, dem die in der Warteschlange befindliche Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.

curl

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

Beschreibung der Befehls-Flags

project
Das Google Cloud Projekt, dem die in der Warteschlange befindliche Ressource zugewiesen ist.
zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite TPUs auf:

    TPUs aufrufen

  2. Klicken Sie auf den Tab In der Warteschlange befindliche Ressourcen.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import com.google.cloud.tpu.v2alpha1.ListQueuedResourcesRequest;
import com.google.cloud.tpu.v2alpha1.QueuedResource;
import com.google.cloud.tpu.v2alpha1.TpuClient;
import com.google.cloud.tpu.v2alpha1.TpuClient.ListQueuedResourcesPage;
import java.io.IOException;

public class ListQueuedResources {
  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Google Cloud project.
    String projectId = "YOUR_PROJECT_ID";
    // The zone in which the TPU was created.
    String zone = "us-central1-a";

    listQueuedResources(projectId, zone);
  }

  // List Queued Resources.
  public static ListQueuedResourcesPage listQueuedResources(
      String projectId, String zone) throws IOException {
    String parent = String.format("projects/%s/locations/%s", projectId, zone);
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (TpuClient tpuClient = TpuClient.create()) {
      ListQueuedResourcesRequest request =
          ListQueuedResourcesRequest.newBuilder().setParent(parent).build();
      ListQueuedResourcesPage response =  tpuClient.listQueuedResources(request).getPage();

      for (QueuedResource queuedResource : response.iterateAll()) {
        System.out.println(queuedResource.getName());
      }
      return response;
    }
  }
}

Python

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

from google.cloud import tpu_v2alpha1

# TODO(developer): Update and un-comment below lines
# project_id = "your-project-id"
# zone = "us-central1-b"

client = tpu_v2alpha1.TpuClient()
parent = f"projects/{project_id}/locations/{zone}"
resources = client.list_queued_resources(parent=parent)
for resource in resources:
    print("Resource name:", resource.name)
    print("TPU id:", resource.tpu.node_spec[0].node_id)
# Example response:
# Resource name: projects/{project_id}/locations/{zone}/queuedResources/resource-name
# TPU id: tpu-name