In die Warteschlange gestellte Ressourcen verwalten

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

Sie können in einer Anfrage für in die Warteschlange gestellte Ressourcen optional Beginn und Ende angeben. Der Beginn ist der früheste Zeitpunkt, zu dem die Anfrage ausgeführt werden soll. Wenn eine Anfrage nicht bis zum angegebenen Ende ausgeführt wurde, läuft sie ab. Die Anfrage bleibt in der Warteschlange, nachdem sie abgelaufen ist.

Anfragen für in die Warteschlange gestellte Ressourcen können einen der folgenden Status haben:

WAITING_FOR_RESOURCES
Die Anfrage hat die erste Validierung bestanden und wurde der Warteschlange hinzugefügt. Dieser Status bleibt bestehen, bis genügend freie Ressourcen vorhanden sind, um mit der Bereitstellung zu beginnen, oder bis das Zuweisungsintervall abläuft. Bei hoher Nachfrage können nicht alle angefragten Ressourcen sofort bereitgestellt werden. Wenn Sie eine verlässlichere Verfügbarkeit von TPUs benötigen, empfiehlt es sich, eine Reservierung zu erwerben.
PROVISIONING
Die Anfrage wurde aus der Warteschlange ausgewählt und die Ressourcen werden zugewiesen.
ACTIVE
Die angefragten Ressourcen wurden zugewiesen. Wenn sich Anfragen für in die Warteschlange gestellte Ressourcen im Status ACTIVE befinden, können Sie Ihre TPU-VMs so verwalten wie es unter TPUs verwalten beschrieben wird.
FAILED
Die Anfrage konnte nicht abgeschlossen werden, da entweder ein Problem mit der Anfrage vorliegt oder die angeforderten Ressourcen im Zuweisungsintervall nicht 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 sich eine Anfrage im Status SUSPENDED befindet, können ihr keine Ressourcen mehr zugewiesen werden.

Vorbereitung

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

Wenn Sie eine der Cloud-Clientbibliotheken verwenden, folgen Sie der Einrichtungsanleitung für die verwendete Sprache:

On-Demand-Ressource in der Warteschlange anfordern

On-Demand-Ressourcen werden nicht vorzeitig beendet. Das On-Demand-Kontingent gewährleistet jedoch nicht, dass genügend Cloud TPU-Ressourcen für Ihre Anfrage verfügbar sein werden. Weitere Informationen zu On-Demand-Ressourcen finden Sie auf der Seite zu den Kontingenttypen.

gcloud

gcloud compute tpus queued-resources create your-queued-resource-id \
    --node-id your-node-id \
    --project your-project-id \
    --zone us-central1-a \
    --accelerator-type v5litepod-8 \
    --runtime-version v2-alpha-tpuv5-lite

Beschreibungen der Befehlsparameter

queued-resource-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Vom Nutzer zugewiesene ID der TPU, die erstellt wird, wenn der Anfrage Ressourcen aus der Warteschlange zugewiesen werden
project
Ihr Projekt in Google Cloud
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
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-central1-a',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v5litepod-8',
        'runtime_version': 'v2-alpha-tpuv5-lite',
        }
    }
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central1-a/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehlsparameter

queued-resource-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Vom Nutzer zugewiesene ID der TPU, die erstellt wird, wenn der Anfrage Ressourcen aus der Warteschlange zugewiesen werden
project
Ihr Projekt in Google Cloud
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software

Console

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

    Zu TPUs

  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 Sie die TPU erstellen möchten.

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

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

  7. Klicken Sie auf die Umschaltfläche Warteschlange aktivieren.

  8. Geben Sie im Feld Name der Ressource in der Warteschlange einen Namen für die Anfrage für in die Warteschlange gestellte Ressourcen ein.

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

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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-a";
    // 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 = "v5litepod-4";
    // 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 = "v2-tpuv5-litepod";
    // 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 der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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-a"
# tpu_name = "tpu-name"
# tpu_type = "v5litepod-4"
# runtime_version = "v2-tpuv5-litepod"
# 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 = tpu_v2alpha1.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)
# Example response:
# projects/[project_id]/locations/[zone]/queuedResources/resource-name
# State.WAITING_FOR_RESOURCES

Ressource in der Warteschlange mit einer Reservierung anfordern

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

gcloud

gcloud compute tpus queued-resources create your-queued-resource-id \
    --node-id your-node-id \
    --project your-project-id \
    --zone us-central1-a \
    --accelerator-type v5litepod-8 \
    --runtime-version v2-alpha-tpuv5-lite \
    --reserved

Beschreibungen der Befehlsparameter

queued-resource-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Vom Nutzer zugewiesene ID der TPU, die erstellt wird, wenn der Anfrage Ressourcen aus der Warteschlange zugewiesen werden
project
Ihr Projekt in Google Cloud
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
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-central1-a',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v5litepod-8',
        'runtime_version': 'v2-alpha-tpuv5-lite',
        }
    }
    },
    'guaranteed': {
    'reserved': true,
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central1-a/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehlsparameter

queued-resource-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Vom Nutzer zugewiesene ID der TPU, die erstellt wird, wenn der Anfrage Ressourcen aus der Warteschlange zugewiesen werden
project
Ihr Projekt in Google Cloud
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
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 Console von Google Cloud die Seite TPUs auf:

    Zu TPUs

  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 Sie die TPU erstellen möchten.

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

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

  7. Klicken Sie auf die Umschaltfläche Warteschlange aktivieren.

  8. Geben Sie im Feld Name der Ressource in der Warteschlange einen Namen für die Anfrage für in die Warteschlange gestellte Ressourcen ein.

  9. Maximieren Sie den Bereich Verwaltung.

  10. Aktivieren Sie das Kästchen Vorhandene Reservierung verwenden.

  11. Klicken Sie auf Erstellen, um die 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. Spot-VM-Ressourcen kosten weniger und Sie erhalten möglicherweise schneller Zugriff auf Ressourcen als bei anderen Anfragen. 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-central1-a \
    --accelerator-type v5litepod-8 \
    --runtime-version v2-alpha-tpuv5-lite \
    --spot

Beschreibungen der Befehlsparameter

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Benutzerdefinierte ID der TPU, die als Antwort auf die Anfrage erstellt wurde
project
ID des Projekts, dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software
spot
Boolesches Flag, das angibt, dass die Ressource in der Warteschlange eine Spot-VM ist

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-central1-a',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v5litepod-8',
        'runtime_version': 'v2-alpha-tpuv5-lite'
        }
    }
    },
    'spot': {}
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central1-a/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehlsparameter

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Benutzerdefinierte ID der TPU, die als Antwort auf die Anfrage erstellt wurde
project
ID des Projekts, dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software
spot
Boolesches Flag, das angibt, dass die Ressource in der Warteschlange eine Spot-VM ist

Console

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

    Zu TPUs

  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 Sie die TPU erstellen möchten.

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

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

  7. Klicken Sie auf die Umschaltfläche Warteschlange aktivieren.

  8. Geben Sie im Feld Name der Ressource in der Warteschlange einen Namen für die Anfrage für in die Warteschlange gestellte Ressourcen ein.

  9. Maximieren Sie den Bereich Verwaltung.

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

  11. Klicken Sie auf Erstellen.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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-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 = "v5litepod-4";
    // 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 = "v2-tpuv5-litepod";
    // 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 der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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-a"
# tpu_name = "tpu-name"
# tpu_type = "v5litepod-4"
# runtime_version = "v2-tpuv5-litepod"
# 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 = tpu_v2alpha1.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)
# Example response:
# projects/[project_id]/locations/[zone]/queuedResources/resource-name
# State.WAITING_FOR_RESOURCES

Zuweisung einer Ressource in der Warteschlange vor oder nach einer bestimmten Zeit anfordern

Sie können in einer Anfrage für in die Warteschlange gestellte Ressourcen optional einen Beginn oder ein Ende angeben. Der Beginn oder die Dauer bis zum Beginn ist der früheste Zeitpunkt, zu dem die Anfrage ausgeführt werden soll. Das Ende oder die Dauer bis zum Ende gibt an, wie lange die Anfrage gültig bleibt. Wenn eine Anfrage nicht bis zum angegebenen Ende oder innerhalb der angegebenen Dauer ausgeführt wurde, läuft sie ab. Abgelaufene Anfragen bleiben in der Warteschlange, ihr können jedoch keine Ressourcen mehr zugewiesen werden.

Sie können auch ein Zuweisungsintervall angeben, indem Sie einen Beginn oder eine Dauer bis zum Beginn und ein Ende oder eine Dauer bis zum Ende festlegen.

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

Ausführung einer Ressource in der Warteschlange vor oder nach einer bestimmten Zeit anfordern

In einer Anfrage für in die Warteschlange gestellte Ressourcen können Sie eine Uhrzeit oder eine Dauer angeben, nach der eine Ressource zugewiesen werden soll.

gcloud

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

gcloud compute tpus queued-resources create your-queued-resource-id \
    --node-id your-node-id \
    --project your-project-id \
    --zone us-east5-a \
    --accelerator-type v5p-4096 \
    --runtime-version v2-alpha-tpuv5 \
    --valid-after-time 2022-12-14T09:00:00Z

Beschreibungen der Befehlsparameter

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Benutzerdefinierte ID der TPU, die als Antwort auf die Anfrage erstellt wurde
project
Projekt in Google Cloud , dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software
valid-after-time
Zeit, nach der die Ressource zugewiesen werden soll. Weitere Informationen zu Zeitdauerformaten finden Sie im Google Cloud CLI-Thema „Datum/Uhrzeit“.

curl

Mit dem folgenden Befehl wird eine v5p-4096-TPU 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-east5-a',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v5p-4096',
        'runtime_version': 'v2-alpha-tpuv5',
        }
    }
    },
    'queueing_policy': {
    'valid_after_time': {
        'seconds': 2022-12-14T09:00:00Z
    }
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-east5-a/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehlsparameter

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Benutzerdefinierte ID der TPU, die als Antwort auf die Anfrage erstellt wurde
project
Projekt in Google Cloud , dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software
valid-after-time
Zeit, nach der die Ressource zugewiesen werden soll. Weitere Informationen zu Zeitdauerformaten finden Sie im Google Cloud CLI-Thema „Datum/Uhrzeit“.

Console

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

    Zu TPUs

  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 Sie die TPU erstellen möchten.

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

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

  7. Klicken Sie auf die Umschaltfläche Warteschlange aktivieren.

  8. Geben Sie im Feld Name der Ressource in der Warteschlange einen Namen für die Anfrage für in die Warteschlange gestellte Ressourcen ein.

  9. Geben Sie im Feld Anfrage beginnen um die Uhrzeit ein, nach der die Ressource zugewiesen werden soll.

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

Im folgenden Beispiel wird angefordert, dass nach sechs Stunden eine v5p-32 zugewiesen wird.

gcloud

    gcloud compute tpus queued-resources create your-queued-resource-id \
        --node-id your-node-id \
        --project your-project-id \
        --zone us-east5-a \
        --accelerator-type v5p-32 \
        --runtime-version v2-alpha-tpuv5 \
        --valid-after-duration 6h

Beschreibungen der Befehlsparameter

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Benutzerdefinierte ID der TPU, die als Antwort auf die Anfrage erstellt wurde
project
Projekt in Google Cloud , dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software
valid-after-duration
Dauer, vor deren Ablauf die TPU nicht bereitgestellt werden darf. Weitere Informationen zu Zeitdauerformaten finden Sie im Google Cloud CLI-Thema „Datum/Uhrzeit“.

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-east5-a',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v5p-32',
        'runtime_version': 'v2-alpha-tpuv5',
        }
    }
    },
'queueing_policy': {
    'valid_after_duration': {
        'seconds': 21600
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-east5-a/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehlsparameter

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Benutzerdefinierte ID der TPU, die als Antwort auf die Anfrage erstellt wurde
project
Projekt in Google Cloud , dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software
valid-after-duration
Dauer, vor deren Ablauf die TPU nicht bereitgestellt werden darf. Weitere Informationen zu Zeitdauerformaten finden Sie im Google Cloud CLI-Thema „Datum/Uhrzeit“.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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 = "v2-tpuv5-litepod";
    // 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();
    }
  }
}

Zeitbegrenzte Anfrage nach einer Ressource in der Warteschlange stellen

In einer Anfrage für in die Warteschlange gestellte Ressourcen können Sie angeben, wie lange die Anfrage gültig bleiben soll. Wenn die Anfrage nicht bis zur von Ihnen angegebenen Uhrzeit oder innerhalb der von Ihnen angegebenen Dauer ausgeführt wurde, läuft sie ab.

gcloud

Mit dem folgenden Befehl wird eine v5p-4096-TPU angefordert. Wenn die Anfrage nicht bis zum 14. Dezember 2022 um 9:00 Uhr ausgeführt 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-east5-a \
    --accelerator-type v5p-4096 \
    --runtime-version v2-alpha-tpuv5 \
    --valid-until-time 2022-12-14T09:00:00Z

Beschreibungen der Befehlsparameter

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Benutzerdefinierte ID der TPU, die als Antwort auf die Anfrage erstellt wurde
project
ID des Projekts, dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software
valid-until-time
Zeit, nach der die Anfrage abgebrochen wird. Weitere Informationen zu Zeitdauerformaten finden Sie im Google Cloud CLI-Thema „Datum/Uhrzeit“.

curl

Mit dem folgenden Befehl wird eine v5p-4096-TPU angefordert. Wenn die Anfrage nicht bis zum 14. Dezember 2022 um 9:00 Uhr ausgeführt 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-east5-a',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v5p-4096',
        'runtime_version': 'v2-alpha-tpuv5',
        }
    }
    },
    'queueing_policy': {
    'valid_until_time': {
        'seconds': 1655197200
    }
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-east5-a/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehlsparameter

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Benutzerdefinierte ID der TPU, die als Antwort auf die Anfrage erstellt wurde
project
ID des Projekts, dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software
valid-until-time
Zeit, nach der die Anfrage abgebrochen wird. Weitere Informationen zu Zeitdauerformaten finden Sie im Google Cloud CLI-Thema „Datum/Uhrzeit“.

Console

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

    Zu TPUs

  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 Sie die TPU erstellen möchten.

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

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

  7. Klicken Sie auf die Umschaltfläche Warteschlange aktivieren.

  8. Geben Sie im Feld Name der Ressource in der Warteschlange einen Namen für die Anfrage für in die Warteschlange gestellte Ressourcen ein.

  9. Geben Sie im Feld Anfrage abbrechen um die Uhrzeit ein, zu der die Anfrage für in die Warteschlange gestellte Ressourcen ablaufen soll, wenn sie bis dahin nicht ausgeführt wurde.

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

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

gcloud

    gcloud compute tpus queued-resources create your-queued-resource-id \
    --node-id your-node-id \
    --project your-project-id \
    --zone us-east5-a \
    --accelerator-type v5p-32 \
    --runtime-version v2-alpha-tpuv5 \
    --valid-until-duration 6h

Beschreibungen der Befehlsparameter

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Benutzerdefinierte ID der TPU, die als Antwort auf die Anfrage erstellt wurde
project
Projekt in Google Cloud , dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software
valid-until-duration
Gültigkeitsdauer der Anfrage. Weitere Informationen zu Zeitdauerformaten finden Sie im Google Cloud CLI-Thema „Datum/Uhrzeit“.

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-east5-a',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v5p-32',
        'runtime_version': 'v2-alpha-tpuv5',
        }
    }
    },
'queueing_policy': {
    'valid_until_duration': {
        'seconds': 21600
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-east5-a/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehlsparameter

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Benutzerdefinierte ID der TPU, die als Antwort auf die Anfrage erstellt wurde
project
Projekt in Google Cloud , dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software
valid-until-duration
Gültigkeitsdauer der Anfrage. Weitere Informationen zu Zeitdauerformaten finden Sie im Google Cloud CLI-Thema „Datum/Uhrzeit“.

Python

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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-a"
# tpu_name = "tpu-name"
# tpu_type = "v5litepod-4"
# runtime_version = "v2-tpuv5-litepod"
# 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 = tpu_v2alpha1.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

Zuweisung einer Ressource in der Warteschlange innerhalb eines bestimmten Intervalls anfordern

Sie können ein Zuweisungsintervall angeben, indem Sie sowohl einen Beginn bzw. eine Dauer bis zum Beginn als auch ein Ende bzw. eine Dauer bis zum Ende angeben.

gcloud

Mit dem folgenden Befehl wird in 5 Stunden und 30 Minuten ab der aktuellen Uhrzeit eine v5p-32 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-east5-a \
    --accelerator-type v5p-32 \
    --runtime-version v2-alpha-tpuv5 \
    --valid-after-duration 5h30m \
    --valid-until-time 2022-12-14T09:00:00Z

Beschreibungen der Befehls-Flags

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Benutzerdefinierte ID der TPU, die als Antwort auf die Anfrage erstellt wurde
project
ID des Projekts, dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software
valid-until-time
Zeit, nach der die Anfrage abgebrochen wird. Weitere Informationen zu Zeitdauerformaten finden Sie im Google Cloud CLI-Thema „Datum/Uhrzeit“.
valid-after-duration
Dauer, vor deren Ablauf die TPU nicht bereitgestellt werden darf. Weitere Informationen zu Zeitdauerformaten finden Sie im Google Cloud CLI-Thema „Datum/Uhrzeit“.

curl

Mit dem folgenden Befehl wird in 5 Stunden und 30 Minuten ab der aktuellen Uhrzeit eine v5p-32 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-east5-a',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v5p-32',
        'runtime_version': 'v2-alpha-tpuv5',
        }
    }
    },
'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-east5-a/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehls-Flags

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Benutzerdefinierte ID der TPU, die als Antwort auf die Anfrage erstellt wurde
project
ID des Projekts, dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software
valid-until-timw
Zeit, nach der die Anfrage abgebrochen wird. Weitere Informationen zu Zeitdauerformaten finden Sie im Google Cloud CLI-Thema „Datum/Uhrzeit“.
valid-until-duration
Gültigkeitsdauer der Anfrage. Weitere Informationen zu Zeitdauerformaten finden Sie im Google Cloud CLI-Thema „Datum/Uhrzeit“.

Console

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

    Zu TPUs

  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 Sie die TPU erstellen möchten.

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

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

  7. Klicken Sie auf die Umschaltfläche Warteschlange aktivieren.

  8. Geben Sie im Feld Name der Ressource in der Warteschlange einen Namen für die Anfrage für in die Warteschlange gestellte Ressourcen ein.

  9. Geben Sie im Feld Anfrage beginnen um die Uhrzeit ein, nach der die Ressource zugewiesen werden soll.

  10. Geben Sie im Feld Anfrage abbrechen um die Uhrzeit ein, zu der die Anfrage für in die Warteschlange gestellte Ressourcen ablaufen soll, wenn sie bis dahin nicht ausgeführt wurde.

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

Ressource in der Warteschlange mit einem Startscript anfordern

Sie können ein Script angeben, das für eine Ressource in der Warteschlange ausgeführt werden soll, nachdem sie bereitgestellt wurde.

gcloud

Wenn Sie den Befehl gcloud verwenden, können Sie entweder das Flag --metadata bzw. --metadata-from-file verwenden, um einen Scriptbefehl bzw. eine Datei mit dem Scriptcode anzugeben. Im folgenden Beispiel wird eine Anfrage für in die Warteschlange gestellte Ressourcen erstellt, mit der das Script startup-script.sh ausgeführt wird.

gcloud compute tpus queued-resources create your-queued-resource-id \
    --node-id your-node-id \
    --project your-project-id \
    --zone us-central1-a \
    --accelerator-type v5litepod-8 \
    --runtime-version v2-alpha-tpuv5-lite \
    --metadata-from-file='startup-script=startup-script.sh'

Beschreibungen der Befehls-Flags

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Benutzerdefinierte ID der TPU, die als Antwort auf die Anfrage erstellt wurde
project
ID des Projekts, dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software
validInterval
Gültigkeitszeitraum für die Anfrage. Danach wird die Anfrage abgebrochen. Weitere Informationen zu Zeitdauerformaten finden Sie im Google Cloud CLI-Thema „Datum/Uhrzeit“.
metadata-from-file
Gibt eine Datei mit Metadaten an. Wenn Sie keinen voll qualifizierten Pfad zur Metadatendatei angeben, wird für den Befehl angenommen, dass sie sich im aktuellen Verzeichnis befindet. In diesem Beispiel enthält die Datei ein Startscript, das ausgeführt wird, wenn die Ressource aus der Warteschlange bereitgestellt wird.
metadata
Gibt Metadaten für die Anfrage an. In diesem Beispiel sind die Metadaten ein Startscriptbefehl, der ausgeführt wird, wenn die Ressource aus der Warteschlange 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-Text.

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-central1-a',
        node_id: 'your-node-id',
        node: {
            accelerator_type: 'v5e-8',
            runtime_version: 'v2-alpha-tpuv5-lite',
            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-central1-a/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehls-Flags

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Benutzerdefinierte ID der TPU, die als Antwort auf die Anfrage erstellt wurde
project
ID des Projekts, dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
Version der Cloud TPU-Software
validInterval
Gültigkeitszeitraum für die Anfrage. Danach wird die Anfrage abgebrochen. Weitere Informationen zu Zeitdauerformaten finden Sie im Google Cloud CLI-Thema „Datum/Uhrzeit“.
metadata-from-file
Gibt eine Datei mit Metadaten an. Wenn Sie keinen voll qualifizierten Pfad zur Metadatendatei angeben, wird für den Befehl angenommen, dass sie sich im aktuellen Verzeichnis befindet. In diesem Beispiel enthält die Datei ein Startscript, das ausgeführt wird, wenn die Ressource aus der Warteschlange bereitgestellt wird.
metadata
Gibt Metadaten für die Anfrage an. In diesem Beispiel sind die Metadaten ein Startscriptbefehl, der ausgeführt wird, wenn die Ressource aus der Warteschlange bereitgestellt wird.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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 = "v5litepod-4";
    // 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 = "v2-tpuv5-litepod";
    // 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 der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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-a"
# tpu_name = "tpu-name"
# tpu_type = "v5litepod-4"
# runtime_version = "v2-tpuv5-litepod"
# 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 = tpu_v2alpha1.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    '}

Ressource in der Warteschlange mit einem bestimmten Netzwerk und Subnetzwerk anfordern

In einer Anfrage für in die Warteschlange gestellte Ressourcen können Sie ein Netzwerk und ein Subnetzwerk angeben, mit denen die TPU eine Verbindung herstellen soll.

gcloud

gcloud compute tpus queued-resources create your-queued-resource-id \
    --node-id your-node-id \
    --project your-project-id \
    --zone us-central1-a \
    --accelerator-type v5e-8 \
    --runtime-version v2-alpha-tpuv5-lite \
    --network network-name \
    --subnetwork subnetwork-name

Beschreibungen der Befehlsparameter

queued-resource-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Vom Nutzer zugewiesene ID der TPU, die erstellt wird, wenn der Anfrage Ressourcen aus der Warteschlange zugewiesen werden
project
Ihr Projekt in Google Cloud
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
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
Netzwerk, zu dem die Ressource aus der Warteschlange gehören wird
subnetwork
Subnetzwerk, zu dem die Ressource aus der Warteschlange gehören wird

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-central1-a',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v5e-8',
        'runtime_version': 'v2-alpha-tpuv5-lite',
        '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-central1-a/queuedResources?queued_resource_id=your-queued-resource-id

Beschreibungen der Befehlsparameter

queued-resource-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
node-id
Vom Nutzer zugewiesene ID der TPU, die erstellt wird, wenn der Anfrage Ressourcen aus der Warteschlange zugewiesen werden
project
Ihr Projekt in Google Cloud
zone
Zone, in der Sie die Cloud TPU erstellen möchten
accelerator-type
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
runtime-version
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
Netzwerk, zu dem die Ressource aus der Warteschlange gehören wird
subnetwork
Subnetzwerk, zu dem die Ressource aus der Warteschlange gehören wird

Console

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

    Zu TPUs

  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 Sie die TPU erstellen möchten.

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

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

  7. Klicken Sie auf die Umschaltfläche Warteschlange aktivieren.

  8. Geben Sie im Feld Name der Ressource in der Warteschlange einen Namen für die Anfrage für in die Warteschlange gestellte Ressourcen ein.

  9. Maximieren Sie den Bereich Netzwerk.

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

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

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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 = "v5litepod-4";
    // 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 = "v2-tpuv5-litepod";
    // 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 der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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-a"
# tpu_name = "tpu-name"
# tpu_type = "v5litepod-4"
# runtime_version = "v2-tpuv5-litepod"
# 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 = tpu_v2alpha1.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

Anfrage für in die Warteschlange gestellte Ressourcen löschen

Sie können eine Anfrage für in die Warteschlange gestellte Ressourcen und die mit der Anfrage verknüpfte TPU 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 your-project-id \
    --zone us-central1-a \
    --force \
    --async

Beschreibungen der Befehls-Flags

your-queued-resource-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
project
Projekt in Google Cloud , dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone der zu löschenden Cloud TPU
force
Löscht sowohl die TPU-VM als auch die Anfrage für in die Warteschlange gestellte Ressourcen.

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/your-project-id/locations/us-central1-a/queuedResources/your-queued-resource-id?force=true

Beschreibungen der Befehls-Flags

your-queued-resource-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
project
Projekt in Google Cloud , dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone der zu löschenden Cloud TPU
force
Löscht sowohl die TPU-VM als auch die Anfrage für in die Warteschlange gestellte Ressourcen.

Console

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

    Zu TPUs

  2. Klicken Sie auf den Tab In die Warteschlange gestellte Ressourcen.

  3. Aktivieren Sie das Kästchen neben Ihrer Anfrage für in die Warteschlange gestellte Ressourcen.

  4. Klicken Sie auf  Löschen.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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 der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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, wechselt die Anfrage für in die Warteschlange gestellte Ressourcen in den Status SUSPENDED. Danach kann die Anfrage gelöscht werden.

gcloud

So löschen Sie die TPU:

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

Beschreibungen der Befehls-Flags

project
Projekt in Google Cloud , dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone der zu löschenden Cloud TPU
your-node-id
Name der TPU, die Sie löschen möchten

Wenn Sie Ihre TPU löschen, wechselt die verknüpfte in die Warteschlange gestellte Ressource in den Status SUSPENDING und dann in den Status SUSPENDED. Wenn sich Ihre in die Warteschlange gestellte Ressource im Status SUSPENDED befindet, können Sie sie löschen:

gcloud compute tpus queued-resources delete your-queued-resource-id \
    --project your-project-id \
    --zone us-central1-a

Beschreibungen der Befehls-Flags

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
project
Projekt in Google Cloud , dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone der zu löschenden Cloud TPU

curl

So 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-central1-a/nodes?node_id=your-node-id

Beschreibungen der Befehls-Flags

project
Projekt in Google Cloud , dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone der zu löschenden Cloud TPU
your-node-id
Name der TPU, die Sie löschen möchten

Wenn Sie Ihre TPU löschen, wechselt die verknüpfte in die Warteschlange gestellte Ressource in den Status SUSPENDING und dann in den Status SUSPENDED. Wenn sich Ihre in die Warteschlange gestellte Ressource im Status SUSPENDED befindet, 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-central1-a/queuedResources/your-queued-resource-id

Beschreibungen der Befehls-Flags

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
project
Projekt in Google Cloud , dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone der zu löschenden Cloud TPU

Console

So löschen Sie die TPU:

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

    Zu TPUs

  2. Aktivieren Sie das Kästchen neben Ihrer TPU.

  3. Klicken Sie auf  Löschen.

Wenn Sie Ihre TPU löschen, wechselt die verknüpfte Ressource in der Warteschlange in den Status Wird ausgesetzt und dann in den Status Ausgesetzt. Wenn sich Ihre in die Warteschlange gestellte Ressource im Status Ausgesetzt befindet, können Sie sie löschen:

  1. Klicken Sie auf den Tab In die Warteschlange gestellte Ressourcen.
  2. Aktivieren Sie das Kästchen neben Ihrer Anfrage für in die Warteschlange gestellte Ressourcen.
  3. Klicken Sie auf  Löschen.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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, wechselt die verknüpfte in die Warteschlange gestellte Ressource in den Status SUSPENDING und dann in den Status SUSPENDED. Wenn sich Ihre in die Warteschlange gestellte Ressource im Status SUSPENDED befindet, 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 der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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, wechselt die verknüpfte in die Warteschlange gestellte Ressource in den Status SUSPENDING und dann in den Status SUSPENDED. Wenn sich Ihre in die Warteschlange gestellte Ressource im Status SUSPENDED befindet, 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 Anfrage für in die Warteschlange gestellte Ressourcen abrufen

So rufen Sie Status- und Diagnoseinformationen zu einer Anfrage für in die Warteschlange gestellte Ressourcen ab:

gcloud

gcloud compute tpus queued-resources describe queued-resource-request-id \
    --project your-project-id \
    --zone us-central1-a

Beschreibungen der Befehls-Flags

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
project
ID des Projekts, dem die Ressource aus der Warteschlange zugewiesen wird
zone
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-central1-a/queuedResources/your-queued-resource-id

Beschreibungen der Befehls-Flags

queued-resource-request-id
Vom Nutzer zugewiesene ID der Anfrage für in die Warteschlange gestellte Ressourcen
project
ID des Projekts, dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten

Console

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

    Zu TPUs

  2. Klicken Sie auf den Tab In die Warteschlange gestellte Ressourcen.

  3. Klicken Sie auf den Namen Ihrer Anfrage für in die Warteschlange gestellte Ressourcen.

Nachdem Ihre TPU bereitgestellt wurde, können Sie auch Details zur Anfrage für in die Warteschlange gestellte Ressourcen aufrufen. Öffnen Sie dazu die Seite TPUs, suchen Sie nach Ihrer TPU und klicken Sie auf den Namen der zugehörigen Ressourcenanfrage.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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 der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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)
# 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-central1-a/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-central1-a/queuedResources/your-queued-resource-id
        runtimeVersion: v2-alpha-tpuv5-lite
        schedulingConfig: {}
        serviceAccount: {}
        shieldedInstanceConfig: {}
        useTpuVm: true
        nodeId: your-node-id
        parent: projects/your-project-number/locations/us-central1-a

Console

Im Feld Status der Ressource in der Warteschlange steht Auf Ressourcen warten.

Anfragen für in die Warteschlange gestellte Ressourcen in Ihrem Projekt auflisten

So listen Sie die Anfragen für in die Warteschlange gestellte Ressourcen in Ihrem Projekt auf:

gcloud

gcloud compute tpus queued-resources list --project your-project-id \
    --zone us-central1-a

Beschreibungen der Befehls-Flags

project
Projekt in Google Cloud , dem die Ressource aus der Warteschlange zugewiesen wird
zone
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/your-zone/queuedResources

Beschreibungen der Befehls-Flags

project
Projekt in Google Cloud , dem die Ressource aus der Warteschlange zugewiesen wird
zone
Zone, in der Sie die Cloud TPU erstellen möchten

Console

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

    Zu TPUs

  2. Klicken Sie auf den Tab In die Warteschlange gestellte Ressourcen.

Java

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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 der Cloud TPU zu authentifizieren. Weitere Informationen finden Sie unter ADC 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