backend.runはQiskit Qiskit Runtime primitiveとどう違うのか?¶
既存のQiskit backendインターフェース( backend.run()
)は、元々回路リストを受け取り、各ジョブのshot数を返すように設計されています。ユーザーのニーズが変化するにつれて、そのニーズに対応するために、より柔軟な新しいツールが必要であると認識し、Qiskit Runtimeが誕生しました。
Qiskitを単独で使用する¶
Qiskitはもともと、回路を直接実行するために設計されました。Qiskitのユーザーは回路を送信し、量子システム上で実行されるジョブから結果を受け取ります。多くの場合、これらのジョブは、回路パラメーターを最適化するための反復(変分)アプローチを含む、より大きなアルゴリズムの一部となっています。このような場合、各ジョブをキューイングすると、処理時間が長くなります。
Qiskit Runtimeの活用¶
Qiskit Runtime offers advantages in workload performance. Variational algorithms can run on classical compute resources that are colocated with the QPUs through the Estimator primitive. This allows users to run iterative algorithm circuits back to back. In addition, sessions can drive a sequence of jobs without having to re-queue each job, avoiding latencies of queue wait times after the session is actively running. As a result, Qiskit Runtime is much more efficient than its predecessors.
機能 |
backend.run |
Qiskit Runtime Primitives |
---|---|---|
回路と変分作業負荷のための抽象化としてのPrimitiveインタフェース |
No |
Yes |
一連のジョブの性能を向上させるためのsession |
No |
Yes |
自動的なエラー抑制と緩和を可能にする抽象化されたインタフェース |
No |
Yes |
変分アルゴリズムの性能向上 |
No |
Yes |
Qiskitコミュニティによって開発されたコードの実用例 |
Yes |
Yes |
OpenPulse |
Yes |
No |
Pulse Gates |
Yes |
Yes |
Dynamic circuits |
Yes |
No |