事業項目 Work Packages

HOME / プロジェクトについて / 02.量子・HPC連携プログラミング環境の研究開発

JHPC-quantum

02.

量子・HPC連携プログラミング環境の研究開発

量子コンピュータとスーパーコンピュータを連携させるアプリケーションのプログラミングをサポートします

概要overview

量子コンピュータとスーパーコンピュータの上でアプリケーションを実行するためのプログラミングモデルや言語についての開発・研究を行います。それぞれのコンピュータのジョブスケジューラと連携するワークフローエンジンを開発します。また、量子コンピュータのためのソフトウェア開発キットのスーパーコンピュータへの移植を行い、大規模量子回路最適化などをスーパーコンピュータ上で利用可能にします。

事業内容detail

量子コンピュータとスーパーコンピュータの上でアプリケーションを実行するためのプログラミングモデルや言語についての開発・研究を行います。また、量子コンピュータのためのソフトウェア開発キットをスーパーコンピュータへ移植します。

プログラミングモデルとしては、事業項目①でも述べたように、量子コンピュータとスーパーコンピュータを効果的かつ効率的に利用するために、以下に示す二階層のプログラミングモデルを提案しました:
(1)それぞれのコンピュータに適切な順番で仕事を実行させるためのワークフロープログラミング
(2)スーパーコンピュータから量子コンピュータに仕事を依頼するための遠隔手続き呼び出し

スーパーコンピュータと量子コンピュータの両方が複数のタスクを行い、それぞれの仕事が複雑に相互依存していて両者のタスクのが切り離しが難しいといった場合には、(2)を利用してスーパーコンピュータと量子コンピュータを同時に利用することに近い環境を提供できるようにします。詳しくは項目①もご参照ください。
一方スーパーコンピュータと量子コンピュータの両方を利用する場合にそれぞれのタスクが比較的独立している場合、例えば量子コンピュータで計算をし、その結果を使ってスーパーコンピュータを長時間利用するといった場合には(1)が適用されます。スーパーコンピュータや量子コンピュータでは、「ジョブ」と呼ばれる形でユーザのプログラムを実行します。スーパーコンピュータや量子コンピュータには、それぞれジョブスケジューラと呼ばれるソフトウェアがあり、多数のユーザからのさまざまなジョブに対して、ユーザ間の公平性を保ちつつコンピュータ全体の利用率を上げるように制御しています。量子コンピュータとスーパーコンピュータの両方を前述のように比較的独立して利用する場合、それぞれのコンピュータにジョブを投入し、ジョブスケジューラがこれらのジョブを実行するのを待つということが、両方のコンピュータ全体の利用率を上げることに役立ちます。このように量子コンピュータのジョブの結果を利用して、スーパーコンピュータの計算を行うといった場合には、それぞれのジョブスケジューラを監視しつつ、ジョブの実行順序を制御するようなワークフローエンジンが必要になります。そこで項目②では、量子コンピュータとスーパーコンピュータを横断的に利用できるワークフローエンジンを開発します。
「量子コンピュータとスーパーコンピュータを連携させる」というと、これらのコンピュータを1つのアプリケーションから同時に利用できるようにすればいいのではないかと思うかもしれません。そのようにしてうまくいくときもありますが、図に示したように、量子コンピュータの計算にスーパーコンピュータの結果を利用するといった場合にはスーパーコンピュータの仕事が終わるのを待つ時間が生じてしまい、量子コンピュータが何もしない無駄な時間をつくることになってしまいます。

量子コンピュータの利用には量子ソフトウェア開発キット(量子SDK)が利用されています。Qiskit、Qibo、cuQuantum 等に代表される量子SDKは、量子コンピュータ上での量子回路の実行をサポートするのみならず、量子回路のトランスパイル、量子回路の最適化、量子回路の実行結果に対するエラー訂正やエラー緩和、などのさまざまな機能を持っています。これらの機能をスーパーコンピュータに移植することで、これまでの量子コンピュータのユーザが、量子HPC連携プラットフォームを容易に利用可能になります。このために、事業項目①で開発するソフトウェアと量子SDKの連携を可能とするような拡張を行います。
さらに、これらの量子SDKの機能は量子コンピュータのqubit数が大きくなるにつれ、より多くの計算資源を必要とすることが予想されます。スーパーコンピュータを利用することで、大規模な量子回路最適化、量子回路のトランスパイル、エラー訂正やエラー緩和を可能にします。

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

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

プロジェクトリーダー

辻 美和子
量子HPC連携プラットフォーム部門 量子HPCソフトウェア環境開発ユニット 
児玉 祐悦
量子HPC連携プラットフォーム部門
佐藤 三久
量子HPC連携プラットフォーム部門
Pornmaneerattanatri Soratouch
量子HPC連携プラットフォーム部門 量子HPCソフトウェア環境開発ユニット