翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
コストの追跡と保存
ヒント
量子コンピューティングの基礎について説明します 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')
コストトラッカーを使用して最大コストを設定する
コストトラッカーを使用して、プログラムの最大コストを設定できます。特定のプログラムに費やす金額には、最大しきい値がある場合があります。このようにして、コストトラッカーを使用して、実行コードにコスト管理ロジックを構築できます。次の例では、 で同じ回路を使用します。Rigetti QPU と はコストを 1 に制限しますUSD。コード内の回路の反復を 1 回実行するコストは 0.48 ですUSD。合計コストが 1 を超えるまで反復を繰り返すようにロジックを設定しているためUSD、コードスニペットは次の反復が 1 を超えるまで 3 回実行されますUSD。通常、プログラムは希望する最大コストに達するまで反復し続けます。この場合、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、シミュレーターを使用してコーディングエラーや設定の問題を特定できます。
特定のデバイスへのユーザーアクセスを制限する
-
権限のないユーザーが特定のデバイスで量子タスクを送信できないように制限を設定できます。アクセスを制限する推奨方法は、 です AWS IAM。これを行う方法についての詳細は、アクセスの制限を参照してください。
-
Amazon Braket デバイスへのユーザーアクセスを許可または制限する方法として、管理者アカウントを使用しないことをお勧めします。
請求アラームの設定
-
請求アラームを設定して、請求が事前設定された限度に達したときに通知を受けることもできます。アラームを設定する推奨方法は、 経由です AWS Budgets。カスタム予算を設定し、コストまたは使用量が予算額を超える可能性がある場合にアラートを受け取ることができます。情報は で入手できますAWS Budgets
。
テスト TN1 ショット数が少ない量子タスク
-
シミュレーターのコストは より低くなりますがQHPs、量子タスクをショット数が多い場合、特定のシミュレーターは高価になる可能性があります。をテストすることをお勧めします。TN1 のタスク数が少ない shot count。Shot カウントは のコストには影響しません SV1 およびローカルシミュレータータスク。
すべてのリージョンで量子タスクを確認する
-
コンソールには、現在の の量子タスクのみが表示されます AWS リージョン。送信された請求可能な量子タスクを検索する場合は、必ずすべてのリージョンを確認してください。
-
サポートされるデバイスドキュメントページで、デバイスおよび関連するリージョンの一覧を表示できます。