SC18におけるSCベンダーフォーラムでAtosは「Quantum Learning Machine(QLM)」のプレゼンテーションを行った。Atosは、日本では余りなじみがない会社であるが、売り上げ規模は15兆円というフランスの巨大IT企業で、現在ではBullもAtosグループ傘下の会社となっている。
量子ビットをモデル化してシミュレーションを行うQiskitなどのソフトウェアはあるが、AtosのQLMが優れているのは、量子ビット素子のばらつきなどの雑音をモデルに組み込んで、現実に近いシミュレーションを行うことができる点である。
次の表は、古典的コンピュータと量子コンピュータの大きな相違点をまとめたものである。古典コンピュータは、確定的で、いつも同じ動作をするが、量子コンピュータは確率的で、同じように動作させても出てくる答えはばらつく。
また、古典コンピュータではデータを作ったり、上書きしたり、削除したりするが、量子コンピュータでは、量子ビットの数は計算の開始から終了まで変わらず、結果から逆の手順で実行すれば初期状態に戻せるリバーシブルな計算を行う。古典コンピュータではデータの移動やコピーは頻繁に行われる操作であるが、量子コンピュータではデータの複製はできない(ただし、CNOTゲートを使えば出力Qubitの値を、制御入力Qubitで変化させられるので、実質的にデータの複製ができる)。
古典コンピュータでは大量のデータの読み出しが行なわれるが、量子コンピュータでは、読み出しはエラーが多く手間のかかる操作で、読み出すデータ量は最小に抑える必要がある。
このような違いから、古典的アルゴリズムを量子コンピュータに実装しても指数関数的なスピードアップを得ることはできない。したがって、古典的アルゴリズムから量子アルゴリズムへの自動的なコンバートを行うソフトウェアは原理的に作れない。
このため、量子アルゴリズムは1つひとつ開発する必要がある。次のグラフはNISTのQuantum Zooに登録された量子アルゴリズムの数の年次推移であるが、現状、250程度のアルゴリズムが開発されている。
指数関数的なスピードアップが得られるアルゴリズムが存在し、HPC分野で実用性が高いのものとしては、固有値の計算、線形システムの求解、偏微分方程式、組み合わせ最適化、ハミルトニアンの変化の追跡などがある。
量子物理には必ず雑音が存在する。雑音に起因するエラーに対して、古典的コンピュータではエラー訂正が使われるが、量子ビットの効率的なエラー訂正法は知られていない。現在、知られている最良のエラー訂正はSurface Codeであるが、ハードウェアが30,000倍必要になってしまう。
また、量子コンピューティングには量子ビットのもつれ状態を維持することが必要であるが、量子ビット数が増加すると、全量子ビットのもつれ状態を維持することは指数関数的に難しくなる。
それ以外にも、量子ビット間の接続、動作の忠実性(出力の読み出しなどでは数%のエラーが発生する)、量子ビットの製造ばらつき、動作環境などが実用上の制約になる。
次の図はIBMのものであるが、20個の量子ビットとその接続が描かれている。量子回路では、1回の操作では隣接する量子ビットにしか情報を伝達できないので、この回路で左上のQ0から、右下のQ19まで信号を送ろうとすると最低でも4回の操作が必要になる。
量子演算では雑音は避けられないので、アルゴリズムは雑音に対処できることが必要である。そして、現状から近い将来では、使える量子ビット数は50~1000程度である。さらに、前述のように接続にも制約がある。これらのNoisy Intermediate Scale Quantum(NISQ)環境は量子アルゴリズムの開発に大きな影響を与える。
このNISQ環境のアルゴリズムの開発には量子ビットを古典的コンピュータでシミュレートする方法が適している。本当の量子ハードウェアの場合は動作が確率的で、読み出しのエラーが多いなどの制約があるが、シミュレーションであれば、確定的に動作し、どの状態でも自由に読み出しができる。そして、ハードウェアの製造ばらつきなどもモデルに組み込み、雑音のシミュレーションもでき、その環境で、アルゴリズムの最適化を繰り返して、ハードウェア量や雑音耐性を最適化することができる。
次の図は、AtosのQuantum Learning Machineの外観の写真である。量子コンピュータのシミュレーションには大量のメモリを必要とするため、QLMは48TiBのメモリを搭載するSMP(Symmetric Multi-Processor)となっている。このメモリで、フルにもつれた41量子ビットのシステムをシミュレートできる。
次のグラフはAtosのQLMとIBMのQiskitでのQuantum Volume Benchmarkの実行時間をプロットしたものである。23Qubitでは2.8倍、36Qubitでは33.8倍、QLMの方が速いという結果になっている。しかし、詳しい説明がないので、シミュレーションに使ったハードウェアの差なのかソフトウェアの差なのか、何が効いているのかは分からない。
次の図はQuantum Approximate Optimization Algorithmの最適化の度合いを示すグラフで、青がノイズのない状態のシミュレーションで、赤はノイズを加えた場合のシミュレーション結果である。
ノイズを加えると、最適化ができるまでのステップ数が大幅に増えてしまうことが分かる。
次の図の上側に書いてある4本の水平の線はそれぞれQubitを表し、⊕はCNOTゲートで縦線の接続は制御入力を持ってくるQubitを示している。また、各Qubitの線に載っている箱は、1入力1出力のQubitを加工するゲートを示している。
量子回路もアイドル状態になってしまうことがあるが、計算時間を短縮するためにはできるだけアイドル時間を短くすることが望ましい。下側のグラフは、アイドル時間を短縮する最適化を51ステップ実行した場合のアイドル時間の変化を示している。
QLMで扱える程度の規模の量子回路であればシミュレーションの方が速いという場合も多いくらいで、かつ、内部状態の出力にも制限がないシミュレータは、量子アルゴリズムの開発には最適である。このため、AtosのQLMは米国のOak Ridge国立研究所やArgonne国立研究所、ドイツのユーリッヒ研究所、フランスの大手石油企業のTOTALなどで購入されているという。
HPCにおける量子コンピューティングの機会は巨大である。いろいろな量子コンピューティングデバイスが開発されており、何が最適かが変わりつつある。その中で、古典コンピュータによる量子回路のシミュレーションは必須のツールとなってきている。
AtosのQLMは量子コンピューティングアプリケーションを調査するのに適した特色のあるプラットフォームである。
現在の量子コンピュータは最大で50Qubit程度で、大量のメモリを搭載するスパコンを使えば古典コンピュータでなんとかシミュレーションできる規模である。また、1ロッカー規模のAtos QLMでシミュレーションできるのは最大41Qubitである。これよりQubit数が多くなってしまうとより大きなメモリが必要となりシミュレーションは困難であるが、シミュレーションができる範囲では確定的な動作ができ、観測性もよくデバグなどの使い勝手が良いシミュレータを使わない手はない。その点で、大量メモリを搭載するSMPでシミュレーション性能を上げるというAtos QLMのアプローチは興味深い。