IBMのQiskit 2.6、C APIで量子回路の変換と保存を組み込む

薄い紫のリボンが三つの白い枠を通り、右側の半透明の容器へ収まる抽象図。回路の段階的な変換と保存を表す。

量子コンピューターで計算するときも、実機へ渡す回路を作り、装置に合う形へ変換する仕事は通常のコンピューターが担います。研究施設の計算システムにこの前処理を組み込むには、量子向けのソフトウェアを、すでに動いているプログラムから呼び出せることが大切です。

2026年10月16日に公開されたQiskit 2.6では、C言語から利用する窓口であるC APIが拡充されました。IBMが10月22日に紹介した今回の変更では、回路を変換する手順を組み立てる機能と、回路をファイルへ保存・復元する機能が加わっています。高性能計算、HPCの処理の中へ量子回路の前処理を置きやすくする更新です。[1、2]

簡単にまとめると?

  • Qiskit 2.6のC APIでは、回路の検査や変換を行う処理を、自分で選んで順番につなげられます。
  • 回路を保存するQPY形式にも対応しました。ただし、古いソフトで新しい形式を開けるとは限らず、Pythonに依存する内容にも制約があります。
  • 単独で使うC APIは実行時にPythonの処理系を起動しませんが、2.6ではPythonのインストール自体はまだ必要です。APIも実験段階です。

装置へ渡す前の回路を、どこで整えるか

量子回路は、量子ビットにどの操作をどの順番で施すかを表すものです。考えた通りの回路を、そのままどの装置でも実行できるわけではありません。装置が扱える基本操作や、量子ビット同士の接続に合わせて、回路を書き換える必要があります。この変換をトランスパイルと呼びます。

Qiskitは、こうした回路の作成や変換に使うオープンソースの開発基盤です。Pythonから扱う方法に加えて、内部のRust実装をCから呼び出すAPIの整備が進んでいます。Cを呼べるC++などのプログラムからも利用できるため、既存の計算処理へ接続する選択肢になります。[1、3]

たとえば、材料の状態を調べる計算で、通常のコンピューターが候補となる回路を何度も作り直す場面を考えてみます。これは利用方法を説明する仮想例です。回路の準備を既存のHPCプログラムから直接呼べれば、量子向けの処理だけを別のアプリケーションとして切り離さず、一連の計算手順として組み立てやすくなります。

回路の変換手順を、自分で組み立てる

従来のC APIでも、用意された変換手順を使うことはできました。2.6で加わったカスタム・パスマネージャーは、その中の処理をより細かく選ぶための仕組みです。パスとは、回路の状態を調べたり、回路を書き換えたりする一つの処理を指します。パスマネージャーが、それらを指定した順に実行します。[1、4]

たとえば、回路の情報を調べる段階と、特定の基本操作へ変換する段階を分け、必要な処理を順に並べる、といった使い方です。用意された設定を選ぶだけで足りない研究や、独自の変換手順を比較したい開発では、この組み立て方が役立ちます。

処理の途中では、回路をプログラムが扱いやすい内部の形にします。これが中間表現、IRです。C APIのパスマネージャーは、前の処理が出すIRの種類と、次の処理が受け取る種類が合うかを調べます。受け渡しの不一致を見つける仕組みであり、変換後の回路が特定の実機で高い精度を出せることまで保証するものではありません。[4]

なお、C側のトランスパイラーが想定するのは、C APIで作られた回路です。Python側の機能を混ぜた回路をそのまま渡すと、十分な結果を得られない可能性があります。Pythonと組み合わせる場合はPython側の変換入口を使う、という境界も公式文書に示されています。[3]

QPYで保存しても、読み手の版はそろえる

回路を毎回作り直す代わりに、準備した回路を保存して次の処理へ渡したいこともあります。QPYはQiskitの回路を記録するバイナリー形式です。2.6ではC APIからも保存と読み込みを行えるようになり、対応する内容ならPython側との受け渡しにも使えます。[1、5]

ただし、ファイルを渡すだけで、どの環境でも同じように開けるわけではありません。Qiskit 2.6の既定のQPY形式はバージョン18です。古いQiskitが新しい形式を読めるとは限らないため、受け取る側の対応版を先に確かめる必要があります。保存時に形式の版を選ぶ場合も、そのAPIが書き出せる範囲で選びます。[5、6]

もう一つの境界は、保存する内容がPythonの処理系を必要とするかどうかです。C APIのQPY機能は、そのような内容を扱おうとするとエラーを返します。Python上で作れた回路や付随情報を、すべてそのままC側へ移せると考えるのは早計です。実際に使う回路の種類と付随情報で、保存・復元できる範囲を確かめることになります。[5]

保存した回路を後から再利用するなら、QPYファイルに加えて、使ったQiskitの版や変換先の装置条件も記録しておくと、何を前提に準備した回路かを追いやすくなります。回路の保存と、実験環境や実機の測定結果まで含めた再現性は、分けて考える必要があります。

Pythonを起動しないことと、不要になることの違い

今回の変更を読むうえで紛らわしいのが、「Pythonなしで動く」という表現です。単独で使うC APIは、実行時にPythonインタープリターを起動しません。一方、2.6の内部にはPythonの型への依存が残り、プログラムをリンクするときに必要なシンボルをそろえるため、Pythonをインストールしておく必要があります。[1、3]

つまり、実行中の処理をC側で進める道は広がりましたが、配備する環境からPythonを完全に取り除ける段階にはまだ達していません。IBMの紹介では依存を減らす今後の方針にも触れていますが、将来の予定を2.6で完了した機能とは扱えません。

C API自体も実験段階です。組み込む側はQiskitの版を固定し、更新時には自分の変換手順と保存データを読み戻せるかを検証する必要があります。今回の意義は、量子回路の準備を既存の計算システムへ組み込むための部品が増えたことにあります。量子計算そのものの速度や精度が、この更新だけで向上したという発表ではありません。

Qiskitを開発するIBMの事業や、量子計算への取り組みの位置づけは、CyclewaveのIBMの企業解説で紹介しています。

参考資料

  1. IBM Quantum — Qiskit 2.6 release summary(2026年10月22日)。
  2. Qiskit — Release 2.6.0(2026年10月16日、commit 65094a0)。
  3. Qiskit 2.6.0 — C APIの構成と利用形態(リリース版ソース)。
  4. Qiskit 2.6.0 — C API PassManager(リリース版ソース)。
  5. Qiskit 2.6.0 — C API QPY(保存・読み込みと制約)。
  6. Qiskit 2.6.0 — QPY形式の版定義。資料確認:2026年10月27日。未固定の最新版文書ではなく、2.6.0の内容を参照しています。