翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
コストの追跡と節約
ヒント
量子コンピューティングの基礎について説明します AWS。Amazon Braket Digital Learning Plan
Amazon Braket を使用すると、事前のコミットメントなしに、オンデマンドで量子コンピューティングリソースにアクセスできます。お支払いいただくのは、使用分の料金だけです。料金の詳細については、料金ページ
このセクションの内容:
ほぼリアルタイムのコスト追跡
Braket SDK には、量子ワークロードにほぼリアルタイムのコスト追跡を追加するオプションがあります。各サンプルノートブックには、Braket の量子処理ユニット (QPUs) とオンデマンドシミュレーターの最大コスト見積もりを提供するコスト追跡コードが含まれています。最大コスト見積もりは USD で表示され、クレジットや割引は含まれません。
注記
表示される料金は、Amazon Braket シミュレーターと量子処理ユニット (QPU) タスクの使用状況に基づく見積もりです。表示される推定料金は、実際の料金とは異なる場合があります。推定料金は割引やクレジットを一切考慮せず、Amazon Elastic Compute Cloud (Amazon EC2) などの他の サービスの使用に基づいて追加料金が発生する場合があります。
SV1 のコスト追跡
コスト追跡関数の使用方法を示すために、ベルステート回路を構築し、SV1 シミュレーターで実行します。まず、Braket SDK モジュールをインポートし、ベル状態を定義して、回路に Tracker()
関数を追加します。
#import any required modules from braket.aws import AwsDevice from braket.circuits import Circuit from braket.tracking import Tracker #create our bell circuit circ = Circuit().h(0).cnot(0,1) device = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/sv1") with Tracker() as tracker: task = device.run(circ, shots=1000).result() #Your results print(task.measurement_counts)
Counter({'00': 500, '11': 500})
ノートブックを実行すると、ベルステートシミュレーションに対して次の出力が期待できます。トラッカー関数には、送信されたショットの数、完了した量子タスク、実行期間、請求された実行期間、および最大コストが USD で表示されます。実行時間はシミュレーションごとに異なる場合があります。
import datetime tracker.quantum_tasks_statistics() {'arn:aws:braket:::device/quantum-simulator/amazon/sv1': {'shots': 1000, 'tasks': {'COMPLETED': 1}, 'execution_duration': datetime.timedelta(microseconds=4000), 'billed_execution_duration': datetime.timedelta(seconds=3)}} tracker.simulator_tasks_cost()
Decimal('0.0037500000')
コストトラッカーを使用した最大コストの設定
コストトラッカーを使用して、プログラムの最大コストを設定できます。特定のプログラムに費やす金額には、最大しきい値がある場合があります。このようにして、コストトラッカーを使用して、実行コードにコスト制御ロジックを構築できます。次の例では、RigettiQPU で同じ回路を使用し、コストを 1 USD に制限します。コード内の回路の 1 回の反復を実行するコストは 0.48 USD です。合計コストが 1 USD を超えるまで反復を繰り返すようにロジックを設定しているため、次の反復が 1 USD を超えるまでコードスニペットが 3 回実行されます。通常、プログラムは希望する最大コストに達するまで反復し続けます。この場合、3 回の反復です。
device = AwsDevice("arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-2") with Tracker() as tracker: while tracker.qpu_tasks_cost() < 1: result = device.run(circ, shots=200).result() print(tracker.quantum_tasks_statistics()) print(tracker.qpu_tasks_cost(), "USD")
{'arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-2': {'shots': 600, 'tasks': {'COMPLETED': 3}}} 1.4400000000 USD
注記
コストトラッカーは、失敗したTN1量子タスクの期間を追跡しません。TN1 シミュレーション中にリハーサルは完了したが、収縮ステップが失敗した場合、リハーサル料金はコストトラッカーに表示されません。
コスト削減のベストプラクティス
Amazon Braket を使用する際に次のベストプラクティスを考慮してください。時間を節約し、コストを最小限に抑え、一般的なエラーを回避します。
シミュレーターで検証する
-
QPU で実行する前に、シミュレーターを使用して回路を検証します。これにより、QPU の使用料金が発生することなく回路を微調整できます。
-
シミュレーターで回路を実行した結果は、QPU で回路を実行した結果と同じではない可能性がありますが、シミュレーターを使用してコーディングエラーや構成の問題を特定できます。
特定のデバイスへのユーザーアクセスを制限する
-
権限のないユーザーが特定のデバイスで量子タスクを送信できないように制限を設定できます。アクセスを制限するには、IAM AWS を使用することをお勧めします。これを行う方法についての詳細は、アクセスの制限を参照してください。
-
Amazon Braket デバイスへのユーザーアクセスを許可または制限する方法として、管理者アカウントを使用しないことをお勧めします。
請求アラームの設定
-
請求アラームを設定して、請求が事前設定された限度に達したときに通知を受けることもできます。アラームを設定する推奨方法は です AWS Budgets。カスタム予算を設定し、コストまたは使用量が予算額を超える可能性がある場合にアラートを受け取ることができます。情報は で入手できますAWS Budgets
。
ショット数が少ないTN1量子タスクをテストする
-
シミュレーターのコストは QHPs よりも安くなりますが、量子タスクをショット数が多い場合、特定のシミュレーターはコストがかかる可能性があります。shot タスクを少数TN1でテストすることをお勧めします。 Shotカウントは、 SV1およびローカルシミュレータータスクのコストには影響しません。
量子タスクのすべてのリージョンを確認する
-
コンソールには、現在の の量子タスクのみが表示されます AWS リージョン。送信された請求可能な量子タスクを検索する場合は、必ずすべてのリージョンを確認してください。
-
サポートされるデバイスドキュメントページで、デバイスおよび関連するリージョンの一覧を表示できます。