事業項目 Work Packages

HOME / プロジェクトについて / 06.量子計算シミュレータの高速化・高機能化

JHPC-quantum

06.

量子計算シミュレータの高速化・高機能化

量子情報処理のHPCによるシミュレーションでアルゴリズム・アプリケーションの開発を加速

概要overview

現状、量子コンピュータは信頼性が低く誤動作が無視できないなど種々の問題があり、量子アルゴリズムやアプリケーションの開発・研究を進める上での制約となっています。このためこれまでの(古典)コンピュータによる量子コンピュータのシミュレーションの活用がすすめられており、一層の高度化が期待されています。本事業項目⑥では、HPCを活用した量子コンピュータのシミュレーション技術の開発を進めます。量子ビットが50程度に限られるが汎用性は高い状態ベクトル法によるシミュレーターと、用途は限られるがより多くの量子ビットを扱うことができるテンソルネットワーク法によるシミュレーターの開発および活用をすすめます。

事業内容detail

量子コンピュータはこれまでの(古典)コンピュータでは扱うことが難しい問題を扱うことができると期待されており、実現に向けた技術が成熟し始めた近年、精力的な研究・開発が進められています。2024 年現在、既に100 を超える量子ビットに対して自在なゲート処理が可能な量子コンピュータが実用化されていますが、1,000回に数回程度以上の誤動作が発生し、また量子ビットの状態を維持できるのが数千から数万回程度のゲート処理の間に限られるなど、制約が大きい状態です。また量子コンピュータ自体、全世界で数十台程度あるだけなので、ユーザーが活用できる処理時間は限られており、長い待ち時間も常態化しています。このため量子アルゴリズムや量子アプリケーションを研究・開発活動も制限されてしまっています。こうした現状のもと、従来の(古典)コンピュータを使った量子コンピュータのシミュレーションが量子コンピュータの研究・開発・教育に活用されています。量子コンピュータの計算資源不足を補い、誤動作がなく高い信頼性を持ち、さらに必要とあれば量子処理の途中の量子状態を知ることも容易なシミュレーションは、急展開する量子情報処理技術の円滑な発展を支えるキーテクノロジーです。量子コンピュータのシミュレーションでは、(古典)コンピュータの中に多数の量子ビットの量子力学的状態を(古典的な)数として表現し、その表現に対して量子コンピュータでの処理に相当する種々の変換・演算を行います。N 個の量子ビットは2N 個の複素数の組として表現されます。このような表現を使って量子コンピュータの動作を逐次シミュレートする方法は「状態ベクトル法」呼ばれ、量子コンピュータシミュレーションの基本的な方法です

状態ベクトル法はどのような量子処理でも正確にシミュレートできる方法ですが、量子ビットを増やして行くと、指数関数的に爆発的に増加する記憶容量が必要となる欠点があります。十進表記で16桁強の有効数字を持つ倍精度複素数を使った場合、複素数1つあたり16(B)バイトの記憶容量が必要になります。この場合、10量子ビットからなる量子コンピュータは16KiBでシミュレートできますが、20量子ビットでは 16MiB、30では16GiBが必要となります。
これだけの情報を量子操作ごとに読み書きする必要があるわけですが、この30量子ビットあたりまではパーソナルコンピュータやデスクトップワークステーションでも十分に扱えます。量子コンピュータのシミュレーションでは状態の情報の読み書きに要する時間に比べて、読み書きした情報の変換・演算のための演算処理は小さいです。つまり読み書きのための情報転送能力がシミュレーターの性能を決めることになります。このためさらに多くの量子ビットをシミュレーションでは、より多くの記憶容量が必要となるとともに、その情報転送能力がシミュレーターの性能を決めることになります。そこでスーパーコンピュータとも呼ばれるHPC(High-Performance Computer、高性能コンピュータ)の出番となります。現在のHPCは多くのコンピュータを情報転送能力の高い通信経路で繋ぐことによりシステム全体の情報転送能力を極限まで高めています。例えば「富岳」はTofuDネットワークによりつながった158,976ノードからなり、各ノードは隣接する他のノードと毎秒最大 40.8GiBを転送することができます。各ノードの記憶容量は 32GiBで、処理装置の単位であるCPUコアが52個(通常ユーザーが使えるのはそのうちの48個です)あり、ノード内では毎秒最大 1TiBの読み書きができます。各ノードで 16GiBを量子ビットの状態を表現するために使うとすると、「富岳」の1,024ノードを使うことにより 40量子ビットがシミュレートできることになります。1,024ノードは「富岳」のジョブとしては小さい方ですので、ストレスなく随時実行できます。

理化学研究所計算科学研究センターでは長年に渡って量子コンピュータのシミュレーション技術の研究開発を各国のスーパーコンピュータセンターと協力してすすめ、MPIによるノード間通信を使う並列計算機向きの状態ベクトル法によるシミュレーター「braket」を開発し、公開してきました(最近、Amazon社が開発した同名のシミュレータとは別の物です)。図1にbraketにより「富岳」を使ってシミュレートした場合の性能を示すように、1つの処理のシミュレーションを1秒程度で実現しています。1ノードあたり16GiBを使った赤い線の場合、40量子ビットのシミュレーションには1,024ノードを使い、また通常、ユーザーが使えるノード数の制限の元で32,768ノードを使って45量子ビットまで実現できます。1ノードあたり24GiBを使った緑の線の場合は 49,152ノードを使って 46量子ビットまで扱うことができます。上記の結果は倍精度複素数を使った場合ですが、単精度複素数を使えばもう1つ、半精度では2つ、バイト精度の場合は3つ多い量子ビットを扱えます。また「富岳」全体を使えば50量子ビット前後まで手が届くはずです。この braket を活用した量子変分法による物質設計の例を図2に示します。
状態ベクトル法では記憶容量の制限でシミュレートできる量子ビット数に制限がありましたが、その制限を超える方法として知られているのが「テンソルネットワーク法」と呼ばれる方法です。「テンソルネットワーク法」では、量子コンピュータの処理を、少数の量子ビットに対する処理のブロックに切ってシミュレートした結果をつなぎ合わせて元の処理をシミュレートする方法です。正確につなぎ合わせることができるように切りだすことが常にできるとは限りませんが、個々の問題に対しては効率的な切りだしとつなぎ合わせができる例があり、10,000量子ビット程度までのシミュレーションが可能となる例も知られています。本事業項目⑥では、より多くの量子アルゴリズムのシミュレーションの実現を目指して「テンソルネットワーク法」の研究開発も進めています。

図1:braketにより「富岳」を使ってN量子ビット(横軸)の量子コンピュータの1動作をシミュレートするのに要する時間(縦軸)。各量子ビットに順次アダマールゲートを施した際に1ゲート当たりの処理に要する平均時間を秒で描きました。赤い線は1ノードあたり16GiBを使った場合で、緑は24GiBを使った場合です。緑の場合は赤い場合に比べて、同じ量子ビット数のシミュレーションを少ないノード数で実現しており、処理時間が少し長くなる代わりに、少ない計算資源(実行時間×ノード数)で処理ができます。

図2:量子ハイゼンベルグモデルの基底状態のエネルギーを量子変分法により評価する量子アルゴリズムをbraketを活用して「富岳」によりシミュレートした結果を示します。N個の量子ハイゼンベルクスピンからなる系に対し、変分計算を繰り返して基底状態のエネルギー近くに収束させる様子です。D=1という量子力学的な変分状態を使った場合とD=8との場合を示していますが、D=8の方が破線で示した正しい値に近づいていて、よりよい変分状態であることが分かります。このシミュレーションでは代々「富岳」の41,984ノードを使い、1,640量子ビットを数値的に厳密にシミュレートした結果です。

プロジェクトメンバーproject members

理化学研究所計算科学研究センター

プロジェクトリーダー

伊藤 伸泰
量子HPC連携プラットフォーム部門 量子計算シミュレーション技術開発ユニット
青木 尚登
量子HPC連携プラットフォーム部門 量子計算シミュレーション技術開発ユニット
白川 知功
量子HPC連携プラットフォーム部門 量子計算シミュレーション技術開発ユニット
吉岡 直樹
量子HPC連携プラットフォーム部門 量子計算シミュレーション技術開発ユニット
Rongyang Sun
量子系物質科学研究チーム