キューに格納されたリソース ユーザーガイド
キューに格納されたリソースを使用すると、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 を管理できます。
前提条件:
このガイドを読む前に、次のことを確認してください。
- Google Cloud CLI アルファ版コンポーネントをインストールします。
- Cloud TPU API を有効にする
予約済みの割り当てを使用して、キューに入れられたリソース リクエストをリクエストする
予約済みの割り当てを使用して、キューに入れられたリソースをリクエストするには、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
コマンド パラメータの説明
指定期間後に期限切れとなるキュー内のリソースをリクエストする
キューに入れられたリソース リクエストの有効期間は、--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
コマンド パラメータの説明
指定した時間内にキューに格納されたリソースをリクエストする
--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