Please enable JavaScript in your browser.

スパコン環境での決定グラフ型量子回路シミュレータの高速化 - fltech - 富士通研究所の技術ブログ

fltech - 富士通研究所の技術ブログ

富士通研究所の研究員がさまざまなテーマで語る技術ブログ

スパコン環境での決定グラフ型量子回路シミュレータの高速化

はじめに

 こんにちは、量子研究所の量子アプリCPJの猪谷です。2025年3月28日にFujitsu Uvance Kawasaki Towerで開催されたFujitsu Quantum Day (FQD) 2025 Japanでポスター発表を行いました。今回は、この発表内容をFujitsu Tech Blogの方でも紹介させていただきます。なお、発表した技術自体は、2024年11月17日-22日に米国アトランタで開催されたSC24で発表されたものです [1]。技術の詳細はIEEE QSW24での発表 [2]もご覧下さい。

 今回のFQDでは「Multi-node Decision Diagram-based Quantum Circuit Simulator with Ring Communication and Auto SWAP Insertion」というタイトルで発表しました。決定グラフ型量子回路シミュレータの研究は、約3年前から東京大学と共同で行ってきました。この決定グラフ型量子回路シミュレータは、決定グラフというデータ構造を使って量子状態や量子ゲートを表現して、ノイズの影響のない理想的な量子コンピュータを古典計算機上で模擬して計算します。詳細は、以前このFujitsu Tech Blog記事 [3]でも公開されていますので参照ください。今回の記事では、決定グラフ型量子回路シミュレータのマルチノード化と、ノード間通信の削減方式技術について報告します。

マルチ計算ノードによる決定グラフ型量子回路シミュレータ

 スパコン環境では、たくさんの計算ノードが通信し合いながら協調して計算を進めます。決定グラフ型量子回路シミュレータの場合、状態ベクトルを均等に分割して複数のノードに配分することにしました。図1に示すように、例えば、8つの要素からなる状態ベクトルを、4つのノードで計算する場合、1ノードに2つの要素を割り当てて、決定グラフに変換してデータを扱います。また、1ノードを2プロセスでマルチプロセス計算する場合は、使用するノードは2つとして、1ノードに4つの要素を割り当てます。したがって、マルチノード化することで計算を並列処理して高速化が期待できる一方、ノード毎に保有するデータが異なり、ノード間通信が必要になることから、通信オーバーヘッドに気を付ける必要があります。

図1 状態ベクトルの分割保存

リング状通信と自動スワップゲート挿入

 マルチノードによる決定グラフ型量子回路シミュレータの高速化を実現するために、ノード間通信を削減して通信オーバーヘッドを減らすることを目指します。下記の2つ技術を適用することでシミュレーションの高速化を図りました。

  • リング状通信
  • 自動スワップゲート挿入

リング状通信

 はじめに、ある量子状態に対して量子ゲートを作用させた後に新たに得られる量子状態を求める行列ベクトル積のマルチノード計算について説明します。例えば、4つのノードにおける乗算は式(1)で表すことができます。各ノードのサブベクトルは v1, v2, v3, v4で、量子ゲートのサブ行列は w11, …, w44です。このとき、 v'2, v'3, v'4を計算するには、全て v1が必要です。よって、この v1を各ノードに伝達する必要があります。図2の中の赤色の矢印はノード間通信を表しており、左側の図は一般的なノード間通信方式を示しています。ノード iが持つサブベクトル v_{i}は、他のすべてのノードとノード間通信を行います。一方、右側の図はリング型通信方式を示しています。左側の図と比べて、赤色の矢印の数が減っていることが分かるかと思います。ノードをリング状に接続しており、ノード iが持つサブベクトル v_{i}は、隣接するノード v_{i+1}とのみノード間通信を行います。最終的な計算結果はどちらも同じで、ノード間通信方式のみが異なります。ノード間通信が減ることで、通信オーバーヘッドが減り、並列計算を高速化できます。

図2 リング状通信

自動スワップゲート挿入

 図3は、3量子ビットの回路の第1量子ビットと第3量子ビットにそれぞれHゲートを作用させたときの計算式です。4つのノードで計算する場合、Hゲートを第1量子ビットに作用させた場合は、各ノードが持つ要素のみで計算できます。例えば、Node1では a bのみ、Node2は c dのみで計算できます。一方、Hゲートを第3量子ビットに作用させた場合は、他のノードが持つ要素も必要になります。例えば、Node1では a bに加えて、Node3が持つ e fも必要です。同様に、他のノードでも、自身以外の他のノードが持つ要素が必要です。つまり、Hゲートを第3量子ビットに作用させた場合は、ノード間通信が必要になります。一般的に表すと、 2^{M}個のノードを使って N量子ビットの回路を計算する場合、最初の N-M量子ビットに作用する量子ゲートは、各ノード内が持つ要素のみで計算できるが、最後のM量子ビットに作用するゲートは、他のノードが持つ要素が必要になるため、ノード間通信が必要です。よって、ゲートは最初の N-M量子ビットに作用させることが望まれます。

 この要望を満たすために、スワップゲートを挿入することでノード間通信を削減しました。図4の左側の回路では、最後の量子ビットに4つのゲートが作用しているため、ゲート分のノード間通信が発生します。この回路に対して、4つのゲートの前後にスワップゲートを挿入します。これによって、計算して得られる結果は同じですが、ノード間通信は2つのswapゲートに対してのみ必要になります。swapゲートが増えることで必要な計算は増えますが、ノード間通信が減少するため、全体的な実行時間を短縮することができます。

図3 ゲートを作用させる量子ビットが異なる回路の計算式

図4 swapゲートの挿入

実験結果

 はじめに、Shorのアルゴリズムを対象に、ノード数を1~256個として実行時間を求めて、その結果を表1に示しました。また、決定グラフ (DD)型だけではなく、参考として状態ベクトル (SV)型の結果も記しました。511を素因数分解した場合において、1ノードで1391秒要していましたが、256ノードで計算することで137秒に短縮しており、約10倍高速化できました。また、SV型では、1ノードと256ノードの実行時間を比較すると、約88倍高速化していました。よって、マルチノードによる高速化の効果はSV型のほうが大きかったです。ただし、実行時間自体はDD型の方が短く、1~256個のノードにおいて、数十倍~1000倍程度高速に計算できました。ShorアルゴリズムではDD型の使用が推奨されます。

表1 DD型とSV型の実行時間
Simulator Number nQubits nGates # Nodes & run-time (sec)
1 2 4 8 16 32 64 128 256
DD 51138400,1231,391403366251212187172145137
DD 25334204,22324061420892636525530356331326
DD 12330118,005686354483938353546
DD 572651,123393021171414151624
SV 572651,12348,03924,71412,7067,2423,7052,0971,315845548


 次に、1ノード当たりのプロセス数を1、2、4として実行時間を比較した結果を表2に示しました。例えばプロセス数が2048で4process/nodeの場合は、512ノードが使用されて、各ノード内では4プロセスで計算します。その結果、プロセス数が同じ場合は、1ノード当たりのプロセス数が少ない方が実行時間が短くなりやすいことが分かりました。また、同じ計算ノード数でプロセス数を増減させても、実行時間は大きく変わらないことが分かりました。しかし、この傾向は256プロセスまでで、512プロセス以上では、1ノード数当たりのプロセス数を増やした方が実行時間が短くなっていました。原因として通信オーバーヘッドが考えられます。1ノード内で複数のプロセスを立ち上げる場合、CPUの計算リソースやメモリ帯域はプロセス間通信にも利用されます。その結果、隣合う計算ノードと通信するだけですむ1プロセスの時よりも実行時間が長くなってしまうと考えられます。なお、上で述べたように、512プロセス以上では、1ノード数当たりのプロセス数を増やした方が実行時間が短くなっていました。この原因は、ラック間通信のオーバーヘッドと考えられます。使用したシステムは1つのラックに最大384計算ノードが収められています。よって、256ノードまではラック内通信で計算を完了させることができます。しかし512ノード以上ではラック間通信が必要となるため、実行時間が大幅に増加してしまうと考えられます。ラック間通信を避けつつ、基本的には1ノードあたり1プロセスでシミュレーションすることが望ましいことが分かりました。


表2 マルチプロセスによるDD型の実行時間
Process 12481632641282565121,0242,048
1 process/node 1,391403366251212187172145137167161441
2 process/node 1,387405371253213193166145146164232
4 process/node 1,392410372251213189165147142159

おわりに

 本記事では、2025年3月28日に開催されたFQDでポスター発表した内容を、このFujitsu Tech Blogの方で紹介させていただきました。実際のポスター発表では、1時間という短い時間でしたが、共同研究しているお客様や研究者、学生の方など多様な人々との議論を通じて意見交換でき、SV型と比べてDD型が圧倒的に高速であること興味を持っていただきました。どのようなアルゴリズムでも同じ効果が得られるのか、どのような応用が期待できるかなど、DD型シミュレータ研究への期待を実感できました。今後も引き続き、富士通の量子研究に少しでも貢献できるよう努めていきたいと考えています。

参考文献

[1] Kimura, Y., Koyama, J., Li, S., Sato, H., & Fujita, M. QDD: Multi-node Implementation of Decision Diagram-based Quantum Circuit Simulator with Ring Communication and Auto SWAP Insertion. SC24 Poster
[2] Kimura, Y., Li, S., Sato, H., & Fujita, M. (2024, July). Accelerating Decision Diagram-based Multi-node Quantum Simulation with Ring Communication and Automatic SWAP Insertion. In 2024 IEEE International Conference on Quantum Software (QSW) (pp. 107-115). IEEE.
[3] 決定グラフ型量子シミュレータのご紹介 - fltech - 富士通研究所の技術ブログ