概要
シミュレーション・デバイス上で量子プログラムを実行し、現実的なデバイス・ノイズ・モデルの下での性能を調べることで、量子プログラムをテストすることができます。 これにより、量子プロセッシング・ユニット(QPU)に送る前にデバッグすることができる。
量子シミュレーターは、プログラムを微調整して量子ハードウェアに送る前に、プログラムの開発やテストに役立てることができる。 ローカル・シミュレーターは、優れたパフォーマンスと効率でこれを行うことができる。
量子回路を古典的にシミュレートするコストは量子ビットの数によって指数関数的に増大するため、一般に50量子ビット以上の回路はシミュレータで実行できない。 このような回路では、次のことができる:
- 古典的にシミュレートできる回路の小型版をテストする。
- 精度は落ちるが、古典的にシミュレートできるように回路を修正する。
スタビライザー回路(クリフォード回路とも呼ばれる)は、この後者の目的を達成するための有用な手段である。 これらは、古典的な手法で効率的にシミュレーション可能な、限定された種類の量子回路である。 専用のシミュレータを使えば、数千キュービットからなるスタビライザ回路を容易にシミュレートできる。 詳細については、「Qiskit Aerプリミティブを用いたスタビライザ回路の効率的なシミュレーション」 を参照してください。
一般的な量子回路では、量子プログラムのテストとデバッグのために以下のツールが利用できる:
- 小規模な量子回路を正確にシミュレーションするには、Qiskitに付属しているリファレンスプリミティブを使用できます。 「 Qiskit SDK プリミティブを用いた正確なシミュレーション」 を参照してください。
- より大規模な回路を扱える高性能なシミュレーションや、ノイズモデルをシミュレーションに組み込むには、 Qiskitエコシステムの一部であるプロジェクト、 Qiskit Aerを使用してください。 Qiskit Aerプリミティブによる正確でノイズの少ないシミュレーションを参照してください。
- カスタムノイズモデルを構築するには、Qiskit Aerの
noiseモジュールを使用してください。 「建築物の騒音モデル」 を参照してください。
ハードウェアに関する考慮事項
量子シミュレーションに必要なメモリ容量にはいくつかの要因が影響するため、シミュレーションに必要なハードウェア要件は厳密には決まっていませんが、いくつかのガイドラインはあります。
- Qiskitを実行するための唯一の要件は、正常に動作する Python 環境です。 詳細については、 「対応OS」 のセクションを参照してください。
- 量子回路のシミュレーションに必要な性能は量子ビットの数に応じて指数関数的に増大するため、利用可能なハードウェアではシミュレーション可能な量子ビットの数が制限される。 例えば、 4GB RAMを搭載したシステムでは、約27個の量子ビットをシミュレートできる。
- 利用可能なメモリが多くても少なくても、(結果が返されると仮定して)結果の精度が上がったり下がったりすることはありませんが、メモリが多ければ結果が早く返されたり、より多くの量子ビットをシミュレートできるかもしれません。
- ハードウェアの性能を最大限に引き出すためには、可能な限りローカルスタビライザー(クリフォード)回路のシミュレーションを行ってください。 例としては、「
qiskit-ibm-runtimeローカルテストモードを用いたクリフォードシミュレーション」 や「 Qiskit Aerプリミティブを用いたスタビライザー回路の効率的なシミュレーション」 を参照してください。 - 以下の手順に従って、 複数のGPU、ノード、またはその両方を使用して実行することで、計算能力を向上させることができます。
次のステップ
推奨事項
- Qiskit Aerのプリミティブを用いた、正確なシミュレーションとノイズを含むシミュレーションについて学びましょう。
- 回路の可視化に関するドキュメントを確認してください。
- 回路のタイミング可視化に関するドキュメントを確認してください。
- NEAT を使ってジョブをデバッグします。
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。