3
1

More than 3 years have passed since last update.

量子回路シミュレータの簡単な性能比較

Last updated at Posted at 2021-09-18

目的

量子計算シミュレータの簡単な比較の続きです。

  • Blueqat
  • Cirq
  • Qiskit
  • SymPy

それぞれについて、同じ量子回路を与えたときの性能比較をしてみます。

いずれも単純に pip でインストールしただけでバックエンド変更など変わったことはしていない状態です。

シミュレーション内容

シミュレーションする量子回路は

で作成した加算器・減算器・モジュロ加算器です。これらの記事では Blueqat をターゲットとした実装を行いましたが、それをほぼそのまま Cirq/Qiskit/SymPy ターゲットに変更して実行時間を測定しました。

実行時間の測定には Python の time.perf_counter を用いました。

ソースコードは GitHub に置いています。

結果

シミュレータ 加算器(4bit) 減算器(4bit) モジュロ加算器(3bit)
Blueqat 1.846 sec 1.719 sec 34.623 sec
Cirq 49.281 sec 49.234 sec 388.213 sec
Qiskit 0.204 sec 0.130 sec 0.943 sec
SymPy 199.545 sec 199.848 sec 430.502 sec

SymPy は他のシミュレータとは実行条件がやや異なるので、参考値と考えてください。

Blueqat/Cirq/Qiskit は測定を行う毎にランダムに異なる状態ベクトルを確率分布に従ってシミュレーション結果として得ますが、SymPy の場合は測定可能な結果の全ての組み合わせを観測確率付きで得ます。
SymPy 以外のシミュレータの実行結果と見た目を揃えるために、SymPy の場合には得られた状態ベクトルをランダムに選択して表示しています。
逆に、Blueqat/Cirq/Qiskit の方を SymPy に合わせて測定可能な結果の全ての組み合わせを観測確率付きで出す形にするべきだったかもしれません。

3
1
0

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
3
1