平成14年度未踏ソフトウェア創造事業(未踏ユース)

採択案件評価

1.採択者氏名(先頭は開発代表者) 渡邊 宙志 25歳 (東京大学大学院 工学系研究科 博士課程)、
鈴木 将 24歳 (東京大学大学院 工学系研究科 修士課程)
山崎 淳之介 22歳 (東京大学大学院 工学系研究科 修士課程)
2.プロジェクト実施管理組織 三菱マテリアル株式会社
3.委託金支払額  3,000,000
4.テーマ名  量子計算回路の設計と計算シミュレーターの開発
5.関連Webサイトへのリンク  http://homepage1.nifty.com/kaityo/
6.テーマ概要

 本プロジェクトでは,GUIにより簡単かつ直感的な操作で,量子計算回路の設計と実行のシミュレーションができるソフトウェアを開発する.量子計算 (Quantum Computing) 用に作られたCADなので,以下このソフトウェアをQCADと称す.

 一般的に,開発に専門知識が必要とされるソフトウェアは購入すると高価であることが多い (物理分野における解析ソフトでは数十万円〜数百万円程度).従って購入によって研究費を圧迫するか,研究者自身がプログラムの開発に多くの時間を割くかになる.このようなことにならないように,数多くのライブラリが開発されているが,GUIで手軽に試すことができるソフトウェアは少ない.

 QCADは量子計算回路を設計できるだけでなく,ステップ実行やデバッグなどのシミュレーション環境でもあるため,難しい概念を含む量子計算を理解するのに有効である.このような教育目的だけでなく,専門家が自分のプログラムのチェックやデバッグなどに使用するのにも有効であろう.

 また,設計した回路を,画像形式 (ビットマップ),PostScript形式,独自形式,Texの数式形式など,多彩な形式で出力できる.PostScript形式はそのまま論文などに取り込めるため,量子計算を専門とする研究者にとっても有用である.

 実際の量子計算のシミュレータは,使用する量子ビットをN個として,2のN乗の浮動小数点数を格納できるメモリを必要とする.例えば,32ビットの計算をシミュレートするには64ギガバイト以上のメモリが必要なので,PC上では大きな回路は計算できない.そこで,設計した回路のデータを読み込み,スーパーコンピュータなどで計算できるにようにするライブラリの開発も行なう.

7.採択理由

 こういうものは限定的にしか使われないと思われるが,できて公開されればそれなりに意義がある.早めに英語版を作り,いまのうちの世界標準(?)にしてしまう気概をもってほしい.プレゼンではそれに関して力強い言葉が聞けた.
 本格的にやろうとするとシロウトに手の届かない計算パワーが必要だが,小規模な量子コンピュータのシミュレーションが教育・啓蒙にも使えるようになれば,圧倒的に広まる可能性もある.そうなれば未踏本ちゃんへ進んでほしい.


 
8.成果概要

 成果の中心は,Windows上で動作するGUIアプリケーション,QCADである.このソフトウェアにより,研究者は量子計算回路 (あるいは単に,量子回路) の設計,シミュレーション実行,そして実行結果の解析までをPC上で行なうことができる.渡邊・図1は回路を組んでいる途中,渡邊・図2は組み上がった回路.渡邊・図3は実行結果の表示の一例 (各量子ビット (縦軸) の状態ごとに絶対値を高さで,位相を色相で表している).


渡邊・図1


渡邊・図2



渡邊・図3

 しかし,量子回路の規模が大きくなると,計算には莫大なメモリが必要となり,現行のPCでの処理は難しい.このため,大規模な量子回路の計算は,ワークステーションや超並列計算機を活用する.QCADと,ワークステーションあるいは超並列計算機は,中間コードによって連繋を取る.

 QCADは,GUIを用いて作成した量子回路から中間コードを生成する.一方,ワークステーションや超並列計算機は,この中間コードをインタプリタ実行することも,コンパイルした実行することも可能である ―― ランタイムの比重が大きいので,実はそれほど実行時間は変わらない.こうして得られた計算結果は,再びQCADのGUIを用いて解析することができる.インタプリタとコンパイラはANSI C++で書いてあり,makeすれば基本的にはどこでも動作する.ただし,時間の制約で回路設計ソフト (GUI部分) は,Windowsにのみ対応した.

 システムは,次のモジュールで構成される.

(1) QCAD (回路設計,データ解析ソフトウェア)
 ・Windows上で動作するGUIソフトウェア.
 ・回路の設計,保存,印刷,出力形式を選んだエキスポートが可能.
 ・シミュレーションの実行および実行結果の解析が可能.
 ・他の計算機環境での実行のために,回路に対応する中間コードを出力する.

(2) QCRUN (中間コードのインタプリタ)
 ・ステップ実行など,デバッグなどが可能.
 ・メモリを多く積んだワークステーションでの動作を想定している.

(3) QCC (中間コードコンパイラ)
 ・中間コードをC言語に変換してコンパイルし,独立した実行可能形式を出力する.
 ・自動並列化機能をもち,並列計算機用の実行ファイルを出力可能.
 ・並列化に標準規格のMPIを用いているため,ほとんどのUNIXや並列計算機で実行可能.

 ドキュメントは海外でのユーザを見込み,英語,日本語双方を作成した.操作マニュアルはWindowsヘルプ形式 (*.hlp) で用意し,さらにHTMLで記述したオンラインマニュアルも用意した.

 ソフトウェアはオープンであり,プロジェクト終了後に公開する.現在,日本語で書かれているコメントも,英語版ではすべて英語化する予定.

 
9.PM評価とコメント

 プロジェクトの中心人物である渡邊君は実に精力的である.それは彼のWebページ
 
  http://homepage1.nifty.com/kaityo/

を見ればわかる.

 また,このプロジェクトが大学での本業とほとんど関係していないというところに,驚かされた.彼らは本業 (学業) の合間に本当の意味での短期決戦プロジェクトとしてこれをつくったのだ.物理学とGUIプログラミングが両方できる人材が皆無に近いので,こういったソフトウェアは黙っていたら出て来ないらしい.実際,量子回路設計・シミュレーションツールとして,ここで得られた成果よりも劣るものが堂々と数十万で売られている.昔からそうなのであるが,アプリケーションプログラムのブレークスルーは,異分野と情報が結合したところからよく生まれる.渡邊君の弁によれば,このプログラムには技術的に新しいところはあまりなく,計画通りに期間内にできたということだが,それがふつうにはできない.

 本気で量子回路シミュレーションをしようとすると,並列計算の面白い問題が一杯立ちはだかっているとPMは見た.並列計算として,この問題は課題がクリアで,下手をすると滅法遅くなるかわり,うまくやると簡単に3桁のオーダーで速くなるポテンシャルを秘めている.その魅惑の入口にちゃんと到達したことを本人たちは自覚すべきである.そのあたりにまだ改善の余地というか,研究のタネが転がっている.

 これも渡邊君の弁だが,3人が本業の片手間でソフトの共同開発をするためには,どう管理すればいいかを経験的に学んだことが結果的に最も大きな収穫だったそうだ.まあまあ,ご謙遜は抑えて抑えて,というのがPMの弁.でも,そうだったとすれば,未踏ユース冥利につきるというものである.

 さて,このソフトを使って,量子計算の原理を学び,PC 1台でも,小さな回路であればいろいろな実験を行なうことができる.多くの人がこのシミュレーションシステムの恩恵を受けて量子計算の原理を学ぶことを期待したい.それほどのインパクトがこのソフトにはある.

渡邊 宙志★★ スーパークリエータ: 成果のインパクトが大きい.なんでも屋的で器用.本人が思っているよりも,計算機屋の世界で勝負できる.



   
(補足)