メインコンテンツへスキップ

開発ワークフロー

Qiskitパターンという用語は、ドメイン固有の問題を分解し、必要な機能をステージごとに整理するための開発ワークフローを指します。これにより、IBM Quantum®の研究者(およびその他の方々)が開発した新しい機能をシームレスに組み合わせることが可能となり、量子コンピューティングのタスクが強力な異種(CPU/GPU/QPU)コンピューティングインフラストラクチャによって実行される未来が実現します。ブロックまたはブロックのグループがパターンの各ステップを実行し、Qiskit SDKが重要な基盤レイヤーとして機能し、IBM Quantumや量子オープンソースコミュニティが開発したその他のツールやサービスによって支えられています。Qiskitパターンにより、ドメインエキスパートは問題を指定し、Qiskitパターンを実現するためのツール(ブロック)を組み合わせることができます。そのパターンは、ローカルで実行したり、クラウドサービスを通じて実行したり、Qiskit Serverlessとともにデプロイしたりすることができます。

Qiskitパターンの4つのステップは以下のとおりです:

  • マップ:問題を量子回路と演算子にマッピングする
  • 最適化:ターゲットハードウェア向けに最適化する
  • 実行:ターゲットハードウェア上で実行する
  • 後処理:結果を後処理する

各ステップの詳細については、以下のセクションで説明します。

問題を量子回路と演算子にマッピングする

このステップでは、ユーザーが古典的な問題から始めて、それを量子コンピュータにマッピングする方法を考えます。たとえば、化学や量子シミュレーションなどのアプリケーションでは、このステップでは一般的に、解こうとしているハミルトニアンを表す量子回路を構築します。このステップでは、特定の問題に対して、問題の構造が早い段階での最適化に適している場合、IBM®ハードウェアのヘビーヘックス(またはグロス)格子上のキュービットへの問題のマッピングを最初から指定することが望ましい場合もあります。また、この時点で、後の実行ステップに向けた準備として、特定のアルゴリズムの結果がどのようになるかを考慮しておくことも重要です。たとえば、望ましい結果がHadamardテストを使用した相関関数の推定に関わる場合はSamplerを使用する準備をするかもしれませんし、オブザーバブルを指定する場合はEstimatorを使用することで多くのエラー軽減オプションを利用できます。

このステップの出力は通常、次のステップでハードウェア向けに最適化できる回路または量子演算子のコレクションです。

ターゲットハードウェア向けに最適化する

このステップでは、マップステップで生成された抽象回路(または演算子)を受け取り、それらに対して一連の最適化を実行します。これには、回路のルートとレイアウトを物理キュービットハードウェアにマッピングすること、ハードウェアの基底ゲートへの変換、および操作数の削減が含まれ、これらはすべて後の実行ステップでの成功の可能性を最適化するために設計されています。この時点で、次のステップで実際のハードウェア上で実行する前に、シミュレータを使用して回路をテストすることも推奨されます。

このステップでは、抽象回路をInstruction Set Architecture(ISA)回路にトランスパイルする必要があります。ISA回路とは、ターゲットハードウェアが理解できるゲート(基底ゲート)のみで構成され、接続性制約(カップリングマップ)に従う必要があるマルチキュービットゲートを含む回路です。ISA回路のみが、IBM Qiskit Runtimeを使用してIBMハードウェア上で実行できます。

ターゲットハードウェア上で実行する

このステップでは、ハードウェア上で回路を実行し、量子計算の出力を生成します。前のステップで生成されたISA回路は、Qiskit RuntimeのSamplerまたはEstimatorプリミティブを使用して実行できます。これらはコンピュータ上でローカルに初期化するか、クラスターやその他の異種コンピューティング環境から実行できます。これらはBatch内で実行することができ、古典的な計算効率のために並列トランスパイルが可能です。またはSessionで実行することで、キューの遅延なしに反復タスクを効率的に実装できます。このステップでは、Qiskit Runtimeが提供する特定のエラー抑制および軽減技術を設定するオプションもあります。

SamplerプリミティブとEstimatorプリミティブのどちらを使用するかによって、このステップの結果は異なります。Samplerを使用する場合、出力はビット文字列の形式でのショットごとの測定値になります。Estimatorを使用する場合、出力は物理量またはコスト関数に対応するオブザーバブルの期待値になります。

結果を後処理する

この最終ステップでは、前のステップからの出力を組み合わせて、望ましい結果を得ます。これには、結果の可視化、読み出しエラー軽減技術、準確率分布の周辺化による少数のキュービット集合上の結果の確認、または全スピン、パリティ、粒子保存などの問題に固有の性質に基づく後選択(非物理的なオブザーバブルを除去することによる)など、さまざまな古典的データ処理ステップが含まれます。

この分野が個別の回路構築からユーティリティスケールのワークフローへと移行するにつれて、Qiskitパターンがユーザーにパターンの異なるステップを柔軟かつ容易に組み合わせることを可能にする点が、量子コンピューティングを幅広いアプリケーションや技術に開放し、量子計算科学者が簡単に利用できるようにしています。