コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

キューに格納されたリソース ユーザーガイド

キューに格納されたリソースを使用すると、Cloud TPU リソースをキューに格納してリクエストできます。キューに登録されたリソースをリクエストすると、そのリクエストは Cloud TPU サービスが管理するキューに追加されます。リクエストされたリソースが使用可能になると、すぐに Google Cloud プロジェクトに割り当てられ、すぐに専用で使用できるようになります。プロジェクトを削除またはプリエンプトしない限り、プロジェクトに割り当てられたままになります。プリエンプションの対象となるのは、プリエンプティブル TPU のみです。

キューに入れられたリソース リクエストでは、開始時刻や終了時刻を指定できます。開始時間には、リクエストを満たす最も早い時間を指定します。リクエストが指定された終了時間までに処理されない場合、リクエストは期限切れになります。 期限切れになったリクエストは、キューに残ります。

キューに入れられたリソース リクエストは、次のいずれかの状態になります。

ACCEPTED
リクエストがキューに追加されました。
ACTIVE
リクエストが割り振られました。
FAILED
リクエストを完了できませんでした。
SUSPENDED
リクエストで指定されたリソースは削除されています。

キューに入れられたリソース リクエストがキューに追加されると、その状態は ACCEPTED に設定されます。割り振られるか、割り当て間隔が経過するまで、この状態のままになります。

リクエストが割り当てられると、状態は ACTIVE に設定されます。リクエストの割り当て間隔が経過しても、その状態は ACCEPTED 状態のままですが、割り当ての対象ではなくなります。キュー内のリソース リクエストは、明示的に削除されるまでキュー内に残ります。

リクエストで指定されたリソースが削除されると、リクエストは SUSPENDED 状態に移行します。リクエストが SUSPENDED 状態の場合は、それ以上の割り当ての対象ではなくなります。

リクエストに問題がある場合、またはリクエストされたリソースが利用できない場合、リクエストは FAILED 状態に移行します。

gcloud alpha compute tpus queued-resources describe コマンドまたは gcloud alpha compute tpus queued-resources list コマンドを使用すると、キューに入れられたリソースのステータスを表示できます。

キューに登録されたリソース リクエストが ACTIVE 状態になると、Cloud TPU VM ユーザーガイドに沿って TPU VM を管理できます。

前提条件:

このガイドを読む前に、次のことを確認してください。

予約済みの割り当てを使用して、キューに入れられたリソース リクエストをリクエストする

予約済みの割り当てを使用して、キューに入れられたリソースをリクエストするには、gcloud コマンドで --reserved フラグを指定するか、curl リクエストで guaranteed.reserved=true を指定します。

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project \
--zone us-central2-b \
--accelerator-type v4-8 \
--runtime-version tpu-vm-tf-2.11.0 \
--reserved

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-8',
      'runtime_version': 'tpu-vm-tf-2.11.0',
    }
  }
},
'guaranteed': {
  'reserved': true,
}
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

コマンド パラメータの説明

queued-resource-id
キューに入れられたリソース リクエストのユーザー割り当て ID。
node-id
キューに入れられたリソース リクエストの割り当て時に作成される TPU のユーザー割り当て ID。
project
Google Cloud プロジェクト
zone
Cloud TPU を作成するゾーン
accelerator-type
作成する Cloud TPU のタイプ
runtime-version
Cloud TPU ソフトウェアのバージョン。
reserved
このフラグは、Cloud TPU 予約の一部としてキュー内のリソースをリクエストするときに使用します。

キューに入れられたオンデマンド リソースをリクエストする

キューに入れられたオンデマンド リソースをリクエストするには、gcloud CLI コマンドで --reserved フラグを省略するか、curl リクエストで guaranteed.reserved を省略します。次に例を示します。

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project \
--zone us-central2-b \
--accelerator-type v4-8 \
--runtime-version tpu-vm-tf-2.11.0 \

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-8',
      'runtime_version': 'tpu-vm-tf-2.11.0',
    }
  }
}
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

コマンド パラメータの説明

queued-resource-id
キューに入れられたリソース リクエストのユーザー割り当て ID。
node-id
キューに入れられたリソース リクエストの割り当て時に作成される TPU のユーザー割り当て ID。
project
Google Cloud プロジェクト
zone
Cloud TPU を作成するゾーン
accelerator-type
作成する Cloud TPU のタイプ
runtime-version
Cloud TPU ソフトウェアのバージョン。

指定期間後に期限切れとなるキュー内のリソースをリクエストする

キューに入れられたリソース リクエストの有効期間は、--valid-until-duration フラグを使用して指定できます。次の例では、6 時間の内に入力しないと期限切れになる v4-32 をリクエストします。指定した期間が経過すると、リクエストはキューに残りますが、割り当てはできなくなります。

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project-id \
--zone us-central2-b \
--accelerator-type v4-32 \
--runtime-version tpu-vm-tf-2.11.0-pod \
--valid-until-duration 6h

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-32',
      'runtime_version': 'tpu-vm-tf-2.11.0-pod',
    }
  }
},
'queueing_policy': {
  'valid_until_duration': {
    'seconds': 21600
  }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

コマンド パラメータの説明

queued-resource-request-id
キューに入れられたリソース リクエストのユーザー割り当て ID。
node-id
リクエストに応答して作成された TPU のユーザー定義 ID。
project
キューに入れられたリソースが割り当てられている Google Cloud プロジェクト。
zone
Cloud TPU を作成するゾーン
accelerator-type
作成する Cloud TPU のタイプ
runtime-version
Cloud TPU ソフトウェアのバージョン。
valid-until-duration
リクエストが有効である期間。期間の形式の詳細については、Google Cloud CLI トピックの日時をご覧ください。

指定した時間の経過後にキューに格納されたリソースをリクエストする

--valid-after-time フラグを使用して、リソースを割り当てる時間を指定できます。

次のコマンドは、ランタイム バージョン tpu-vm-tf-2.11.0 の v4-4096 TPU を 2022 年 12 月 14 日午前 9 時以降に割り当てるようリクエストします。

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project-id \
--zone us-central2-b \
--accelerator-type v4-4096 \
--runtime-version tpu-vm-tf-2.11.0-pod \
--valid-after-time 2022-12-14T09:00:00Z

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-4096',
      'runtime_version': 'tpu-vm-tf-2.11.0-pod',
    }
  }
},
'queueing_policy': {
  'valid_after_time': {
    'seconds': 2022-12-14T09:00:00Z
  }
}
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

コマンド パラメータの説明

queued-resource-request-id
キューに入れられたリソース リクエストのユーザー割り当て ID。
node-id
リクエストに応答して作成された TPU のユーザー定義 ID。
project
キューに入れられたリソースが割り当てられている Google Cloud プロジェクト。
zone
Cloud TPU を作成するゾーン
accelerator-type
作成する Cloud TPU のタイプ
runtime-version
Cloud TPU ソフトウェアのバージョン。
valid-after-time
リソースが割り当てられるべき時間。期間の形式の詳細については、Google Cloud CLI topic datetime をご覧ください。

指定した時間が経過するまでにキューに格納されたリソースをリクエストする

--valid-until-time フラグを使用して、リソースを割り当てる時間を指定できます。この時間までに TPU が割り当てられていない場合、リクエストはキューに残りますが、割り当ての対象ではなくなります。

次のコマンドは、tpu-vm-tf-2.10.0-pod バージョンのランタイムの v4-4096 TPU ノードを 2022 年 12 月 14 日午前 9 時までに作成するようリクエストします。対応するタイムスタンプ形式のリストについて詳しくは、Datetimes をご覧ください。

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project-id \
--zone us-central2-b \
--accelerator-type v4-4096 \
--runtime-version tpu-vm-tf-2.11.0-pod \
--valid-until-time 2022-12-14T09:00:00Z

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-4096',
      'runtime_version': 'tpu-vm-tf-2.11.0-pod',
    }
  }
},
'queueing_policy': {
  'valid_until_time': {
    'seconds': 1655197200
  }
}
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

コマンド パラメータの説明

queued-resource-request-id
キューに入れられたリソース リクエストのユーザー割り当て ID。
node-id
リクエストに応答して作成された TPU のユーザー定義 ID。
project
キューに入れられたリソースが割り当てられているプロジェクトの ID。
zone
Cloud TPU を作成するゾーン
accelerator-type
作成する Cloud TPU のタイプ
runtime-version
Cloud TPU ソフトウェアのバージョン。
valid-until-time
それ以降はリクエストがキャンセルされる時間。期間形式の詳細については、Google Cloud CLI トピックの日時をご覧ください。

キューに入れられたプリエンプティブル リソースをリクエストする

キューに格納されたプリエンプティブル リソースをリクエストできます。プリエンプティブル リソースは、他のワークロードで追加のリソースが必要な場合に別のワークロードに割り当てることができるリソースです。プリエンプティブル リソースは低コストなため、プリエンプティブル以外のリクエストよりも早くリソースにアクセスできます。

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project-id \
--zone us-central2-b \
--accelerator-type v4-8 \
--runtime-version tpu-vm-tf-2.11.0 \
--best-effort

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-8',
      'runtime_version': 'tpu-vm-tf-2.11.0',
    }
  }
},
'best_effort': {}
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

コマンド パラメータの説明

queued-resource-request-id
キューに入れられたリソース リクエストのユーザー割り当て ID。
node-id
リクエストに応答して作成された TPU のユーザー定義 ID。
project
キューに入れられたリソースが割り当てられているプロジェクトの ID。
zone
Cloud TPU を作成するゾーン
accelerator-type
作成する Cloud TPU のタイプ
runtime-version
Cloud TPU ソフトウェアのバージョン。
best-effort
キューに入れられたリソースがプリエンプティブルであることを指定するブール値フラグ。

指定した時間内にキューに格納されたリソースをリクエストする

--valid-until-duration フラグを使用して、リクエストの有効期間を指定できます。時間が経過する前にリクエストが割り振られていない場合、リクエストはキューに残りますが、割り当ての対象ではなくなります。次の例では、v4-32 を 6 時間以内に割り当てるようリクエストしています。

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project-id \
--zone us-central2-b \
--accelerator-type v4-32 \
--runtime-version tpu-vm-tf-2.11.0-pod \
--valid-until-duration 6h

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-32',
      'runtime_version': 'tpu-vm-tf-2.11.0-pod',
    }
  }
},
'queueing_policy': {
  'valid_until_duration': {
    'seconds': 21600
  }
},
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

コマンド パラメータの説明

queued-resource-request-id
キューに入れられたリソース リクエストのユーザー割り当て ID。
node-id
リクエストに応答して作成された TPU のユーザー定義 ID。
project
キューに入れられたリソースが割り当てられているプロジェクトの ID。
zone
Cloud TPU を作成するゾーン
accelerator-type
作成する Cloud TPU のタイプ
runtime-version
Cloud TPU ソフトウェアのバージョン。
valid-until-duration
リクエストが有効である期間。期間形式の詳細については、Google Cloud CLI トピックの日時をご覧ください。

キューに格納されたリソースを指定された時間内に割り当てるようリクエストする

–valid-after-time–valid-after-duration–valid-until-duration–valid-until-time フラグのうち、1 つが割り当て区間の開始を、もう 1 つが割り当て区間の終了を指定するものであれば、任意の組を使って割り当て区間を指定することができます。指定した期間内に割り当てられていないリクエストはキューに残りますが、プロビジョニングされません。

次のコマンドは、現在の時刻から 5 時間 30 分後に v4-32 をリクエストします。サポートされているタイムスタンプと期間の形式については、日時をご覧ください。

gcloud

gcloud alpha compute tpus queued-resources create your-queued-resource-id \
--node-id your-node-id \
--project your-project-id \
--zone us-central2-b \
--accelerator-type v4-32 \
--runtime-version tpu-vm-tf-2.11.0-pod \
--valid-after-duration 5h30m \
--valid-until-time 2022-12-14T09:00:00Z

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-32',
      'runtime_version': 'tpu-vm-tf-2.11.0-pod',
    }
  }
},
'queueing_policy': {
  'validInterval': {
    'startTime': '2022-12-10T14:30:00Z',
    'endTime': '2022-12-14T09:00:00Z'
  }
},
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

コマンドフラグの説明

queued-resource-request-id
キューに入れられたリソース リクエストのユーザー割り当て ID。
node-id
リクエストに応答して作成された TPU のユーザー定義 ID。
project
キューに入れられたリソースが割り当てられているプロジェクトの ID。
zone
Cloud TPU を作成するゾーン
accelerator-type
作成する Cloud TPU のタイプ
runtime-version
Cloud TPU ソフトウェアのバージョン。
valid-until-timw
それ以降はリクエストがキャンセルされる時間。期間形式の詳細については、Google Cloud CLI トピックの日時をご覧ください。
valid-until-duration
リクエストが有効である期間。期間形式の詳細については、Google Cloud CLI トピックの日時をご覧ください。

キューに入れられたリソース リクエストを削除する

キューに入れられたリソース リクエストを削除するには、最初に TPU VM を削除する必要があります。TPU VM を削除すると、リクエストは SUSPENDED 状態に移行します。

次のコマンドは、「us-central2-b」ゾーンの「my-project」プロジェクトにある「my-queued-resource」という名前のキュー内のリソース リクエストを削除します。

gcloud

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

curl

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

HTTP

DELETE https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources/your-queued-resource-id

コマンドフラグの説明

queued-resource-request-id
キューに入れられたリソース リクエストのユーザー割り当て ID。
project
キューに入れられたリソースが割り当てられている Google Cloud プロジェクト。
zone
Cloud TPU を作成するゾーン

キューに入れられたリソース リクエストの状態と診断情報を取得する

キューに入れられたリソース リクエストの状態と診断情報を取得します。

gcloud

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

HTTP

GET https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/ us-central2-b/queuedResources/your-queued-resource-id

コマンドフラグの説明

queued-resource-request-id
キューに入れられたリソース リクエストのユーザー割り当て ID。
project
キューに入れられたリソースが割り当てられているプロジェクトの ID。
zone
Cloud TPU を作成するゾーン

リクエストが失敗した場合、レスポンスにはエラー情報が含まれます。gcloud alpha compute tpus queued-resources describe からの出力は次のようになります。

name: projects/your-project-id/locations/us-central2-b/queuedResources/your-queued-resource-id
state:
  state: ACCEPTED
tpu:
  nodeSpec:
  - node:
      acceleratorType: v4-8
      bootDisk: {}
      networkConfig:
        enableExternalIps: true
      queuedResource: projects/your-project-number/locations/us-central2-b/queuedResources/your-queued-resource-id
      runtimeVersion: tpu-vm-tf-2.10.0
      schedulingConfig: {}
      serviceAccount: {}
      shieldedInstanceConfig: {}
      useTpuVm: true
    nodeId: your-node-id
    parent: projects/your-project-number/locations/us-central2-b

プロジェクト内のキューに入れられたリソース リクエストを一覧表示する

次のコマンドは、プロジェクト「your-project-id」のキューに入れられたリソース リクエストを一覧表示します。

gcloud

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

HTTP

GET https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources

コマンドフラグの説明

project
キューに入れられたリソースが割り当てられている Google Cloud プロジェクト。
zone
Cloud TPU を作成するゾーン

curl を使用してキューに入れられたリソース リクエストを管理する

HTTP を使用してキューに格納されたリソース API コマンドを発行するには、Authorization ヘッダーが必要です。このヘッダーを取得するには、gcloud auth print-access-token を実行します。

HTTP リクエスト本文を保持するファイル(「req.json」など)を作成します。

単一の TPU をリクエストするには、HTTP リクエストの本文で次のテキストを使用します。

{
    tpu: {
        node_spec: {
            parent: 'projects/your-project-number/locations/us-central2-b',
            node_id: 'your-node-id',
            node: {
                accelerator_type: 'v3-8',
                runtime_version: 'tpu-vm-tf-2.11.0'
            }
        }
    }
}

起動スクリプトを使用して単一の TPU をリクエストするには、HTTP リクエスト本文で次のテキストを使用します。

{
    tpu: {
        node_spec: {
            parent: 'projects/your-project-number/locations/us-central2-b',
            node_id: 'your-node-id',
            node: {
                accelerator_type: 'v2-8',
                runtime_version: 'tpu-vm-tf-2.11.0',
                metadata: {
                    "startup-script": "#! /bin/bash\npwd > /tmp/out.txt\nwhoami >> /tmp/out.txt"
                }
            }
        }
    }
}

次のコマンドは、curl で HTTP リクエストを作成する方法を示しています。

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" -d @req.json \
  $ENDPOINT/$PARENT/queuedResources\?queued_resource_id\=${QUEUED_RESOURCE_ID}

コマンドに対するレスポンスは次のようになります。

{
    "name": "projects/your-project-number/locations/us-central1-a/operations/operation-abc..",
    "metadata": {
        "@type": "type.googleapis.com/google.cloud.common.OperationMetadata",
        "createTime": "2022-02-02T22:06:27.402528581Z",
        "target": "projects/1234/locations/us-central1-a/queuedResources/my-queued-resource",
        "verb": "create",
        "cancelRequested": false,
        "apiVersion": "v2alpha1"
    },
    "done": false
}

curl を使用してリクエストの進行状況を確認できます。

export ENDPOINT="https://tpu.googleapis.com/v2alpha1"
export OPERATION_NAME="projects/your-project-id/locations/us-central2-b/operations/operation-abc.."
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" $ENDPOINT/${OPERATION_NAME}

curl を使用すると、プロジェクト内のすべてのキュー内のリソース リクエストのステータスを確認できます。

export ENDPOINT="https://tpu.googleapis.com/v2alpha1"
export PARENT="projects/your-project-id/locations/us-central2-b"
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" $ENDPOINT/$PARENT/queuedResources