IBM Quantum Compute Service ワークロードの最大実行時間
公平性を確保するために、各ジョブが実行できる時間にはサービスで強制される最大値が設定されています。ジョブがこの制限時間を超えた場合、強制的にキャンセルされ、RuntimeJobMaxTimeoutError例外が発生します。コストを管理するために、ジョブに最大実行時間を設定することもできます。
コスト上限に達すると、セッションまたはバッチは即座に終了されます。そのセッションまたはバッチで現在実行中のジョブは完了まで実行されますが、保留中のジョブはキャンセルされます。
最大実行時間の設定
ジョブの最大実行時間は、以下の値のうち小さい方が適用されます:
-
max_execution_timeに設定された値 -
サービスの最大タイムアウト値(3時間)
max_execution_time の値は、ウォールクロック時間ではなく、QPU 使用量(量子使用量のみ)に基づいています。
以下の例に示すように、ジョブオプションで最大実行時間(秒単位)を設定してください。オプションの設定方法については、Estimatorオプション、Samplerオプション、またはExecutorオプションガイドを参照してください。
from qiskit_ibm_runtime import QiskitRuntimeService
# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator
# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import Estimator
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
estimator = Estimator(mode=backend)
estimator.options.max_execution_time = 2500
以下のようにジョブのメトリクスを取得することで、完了したジョブが消費した使用量を確認することもできます:
# Find QPU usage of a specific job
print(f"QPU usage of job {job.job_id()} was {job.metrics()['usage']['quantum_seconds']} seconds")
サービスが強制する最大実行時間
サービスは、デバイスの公平な使用を確保するために、最大実行時間を3時間に制限しています。ジョブに max_execution_time が指定されている場合は、2つの値のうち小さい方が使用されます。
例えば、max_execution_time=5000(約83分)を指定した場合、サービス側では3時間まで実行が許可されていても、ジョブは約83分後にキャンセルされます。
バッチの最大実行時間
バッチが開始されると、最大生存時間(maximum TTL)の値が割り当てられます。このTTLに達すると、バッチは終了され、すでに実行中のジョブは引き続き実行されますが、バッチ内に残っているキュー済みのジョブは失敗状態になります。
バッチには、ジョブ間のインタラクティブ生存時間(interactive TTL)もあり、この値は設定できません。バッチを明示的にクローズしない場合、インタラクティブTTLが切れた後に非アクティブ化されますが、最大TTLに達するまでいつでも再アクティブ化できます。
これらの値の操作方法については、バッチでジョブを実行するを参照してください。
セッションの最大実行時間
セッションが開始されると、セッションの実行可能時間を決定する最大TTL値が割り当てられます。このTTLに達すると、セッションは終了され、すでに実行中のジョブは引き続き実行されますが、セッション内に残っているキュー済みのジョブは失敗状態になります。
設定できないインタラクティブTTL値もあります。その期間内にセッションのジョブがキューに入れられなかった場合、セッションは一時的に非アクティブ化されます。
これらの値の操作方法については、セッションでジョブを実行するを参照してください。
その他の制限事項
オープンプランでは、28日間のローリングウィンドウ内でQPUを最大10分使用できます。インスタンスの使用状況はインスタンスページで確認できます。
次のステップ
- ワークロードの使用状況
- これらのヒントを確認してください:ジョブの実行時間を最小化する