LoginSignup
2
2

Qiskitを利用した量子プログラムの実行バックエンドについてまとめる(ローカル、Qiskit Runtime、Quantum Platform)

Last updated at Posted at 2024-05-03

Qiskitを使って量子回路を構築し、その量子回路の実行結果を取得するためには、量子回路を実行するバックエンドを指定する必要があります。
このバックエンドには、Pythonのライブラリqiskit-aerをインポートすれば使えるもの、IBM CloudのQiskit Runtimeサービスを利用するもの、IBM Quantum Platformサービスを利用するものがあります。
バックエンドにも色々と種類があり使用するときに困りそうだったので、簡単ではありますが調べたことをまとめたいと思います。
(2024/05時点、qiskit-aerは0.14.1)

実行環境の準備

qiskit-aer

以下のコマンドを実施して、ライブラリをインストールすれば使用できるようになります。

python -m pip install qiskit-aer

ライブラリの詳細な利用方法については今回は省きますが、公式ドキュメントのチュートリアルなどが参考になるかと思います。

Qiskit Runtime

Qiskit RuntimeとIBM Quantum Platformを利用するにはIBMidが必要です。(IBMidの取得方法については @kifumi さんの下記の記事で詳しく説明してくださっています)

IBMidを作成したら、IBM Cloudにログインします。
ログインしたら画面上部のリソース検索バーにqiskitと入力してQiskit Runtimeを探します。

画像赤枠の部分をクリックしてQiskit Runtimeのカタログを表示したら、料金プランを選択し、利用規約にチェックを入れて作成します。(今回は無料の範囲で使用したいのでLiteプランで作成します。)

リソース作成後、リソースリストでQiskit Runtimeのステータスが アクティブ になっていればサービスが利用できるようになっています。あとはQiskitRuntimeService()に作成したサービスの情報を指定すれば利用できます。
具体的には、Qiskit Runtimeリソース画面のCRNとIBM CloudのAPI Key(作成していなければAPI Key発行画面にアクセスして作成する必要があります)を以下のコードのqiskit_ibm_runtimeに指定します。

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService(channel="ibm_cloud", token="<IBM Cloud API key>", instance="<IBM Cloud CRN>")

IBM Quantum Platform

IBMidを作成したら、IBM Quantum Platformにログインすることでサービスを使用可能になります。
具体的な使用方法は、画面に表示されているAPI Tokenを、以下のコードのqiskit_ibm_runtimeに指定します。

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService(channel="ibm_quantum", token="<IQP_API_TOKEN>")

実際にコードを書いて実行してみたい方

この記事ではバックエンドの詳しい実行方法については記載しませんが、以下の記事を参考に、バックエンドの部分だけ変更して実施すると試すことができるかなと思います。

https://docs.quantum.ibm.com/run/primitives-get-started

実行環境の差異

各ツールについて、量子プログラムが実行される場所と、その実行されるバックエンドについて表にすると以下のようになります。

ツール 実行場所 実行環境(太字は実機)
qiskit-aer ローカルPC上 AerSimulator
StatevectorSimulator
UnitarySimulator
Qiskit Runtime リモート ibmq_qasm_simulator
simulator_stabilizer
simulator_mps
simulator_extended_stabilizer
simulator_statevector
IBM Quantum Platform リモート ibmq_qasm_simulator
simulator_stabilizer
simulator_mps
simulator_extended_stabilizer
simulator_statevector
ibm_brisbane
ibm_sherbrooke
ibm_kyoto
ibm_osaka

qiskit-aerはローカルで実行できる分、Qiskit RuntimeIBM Quantum Platformと異なりすぐに導入できるうえ、リモートでの処理を待つことがないので気軽に試すことができます。ただし量子回路に設定する量子ビットの個数を増やすと処理が目に見えて重くなってしまうので、少ない量子ビットの回路に限定されてしまうという問題はあります。

Qiskit Runtimeのライトプランは、実行環境がシミュレーターに限定されているものの、最大3時間まで無料で利用できます。(Standardプランにして利用した分の料金を払えばIBM Quantum Platformと同じように実機を使用することもできます。)

IBM Quantum Platformは現状使用可能なすべてのシミュレーターと実機を無料で利用できるものの、1ヶ月で最大10分しか利用できません

Qiskit RuntimeとIBM Quantum Platformの利用可能時間について

Qiskit RuntimeIBM Quantum Platformは同じシミュレーターが利用できるので、それぞれの利用可能時間は共有されているのか疑問に思い、実行して調べてみましたが、それぞれ別の環境となっているようでした。そのため、シミュレーターを利用したい場合はQiskit Runtime、実機を利用したい場合はIBM Quantum Platformを利用するようにすると良いかなと思います。

まとめ

量子回路のバックエンドについて、使う判断基準を簡単にまとめると以下のようになるかなと思います。

  • qiskit-aer
    • 量子回路の実行を試してみたい場合
    • 基本はこれで十分
  • Qiskit Runtime
    • qiskit-aerより多くの量子ビットを使用するシミュレーションを実行したい場合
  • IBM Quantum Platform
    • 無料で量子回路の実機実行をしたい場合

もっと詳しい情報や、記述内容の間違い、実行環境の構築が上手くできないなどございましたら、コメント等で指摘いただけるとありがたいです。

2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2