東京大学バナー(中) 東大 アラムナイ 寄付のご案内
| ENGLISH | サイトマップ |
東京大学 大学院 情報理工学系研究科
交通アクセス・学内地図
訪問者別ご案内
受験・進学希望の方
留学生の方
(For International Students)
企業・一般の方
修了者の方
高校生の方
高校教員の方
大学生の方
教育と研究
研究科案内
各専攻・教員の紹介
 
コンピュータ科学
  数理情報学
  システム情報学
  電子情報学
  知能機械情報学
  創造情報学
フォーカス(2006〜2016)
ソーシャルICT研究センター
情報理工学国際センター
情報理工学教育研究センター
受賞
ソーシャルICTグローバル・クリエイティブリーダー育成プログラム
グローバル・クリエイティブリーダー 講義
enPiT
データサイエンティスト養成講座(領域知識創成教育研究プログラム)
計算科学アライアンス
創造情報学連携講座
産学連携(R2P/IST等)
情報理工関係イベント
国際交流
(International Cooperation)
他プログラム
科学研究ガイドライン
情報倫理ガイドライン
入学・進学案内 new !
学生支援制度
履修・学籍・諸手続案内
科目等履修生案内
東京大学学務システム(UTAS)
工学・情報理工学図書館
公募情報
ポータルサイト (内部のみ)
ISTクラウド (内部のみ)
研究倫理審査・広報 (内部のみ)
緊急連絡
緊急連絡ページ
関連学部
工学部
理学部
Home > 過去のNews > フォーカス
Focus

フォーカス

 2007/06/15
日本発“運算による並列プログラミングモデル”打ち出す
数理情報学専攻 胡 振江 准教授

構成的理論に基づき並列プログラムを記述
4つの基本ブロックの組み合わせだけで構築

胡 振江 准教授
 幼い子どもたちが目を輝かせて、レゴ遊びや積み木遊びをしている様子を見ていると、『がんばってるな』という懸命さが伝わってくる。大人でも夢中になるこの遊び感覚を、並列プログラムづくりに生かしたのが、数理情報学専攻の胡 准教授。わずか4個の基本ブロックを積み木ゲームのように組み合わせるだけで、高度な並列プログラムを効率的に構築できるようにしたのだ。「並列プログラムは決して敷居が高いものではなく、並列計算機の知識を持たない人でも、簡単につくれるようになります」。科学計算、最適化、銀行事務処理、画像処理など広範なプログラムを記述できる汎用性があり、複数台のPCをつないで、誰でも大規模な並列計算が行える環境づくりに大きく役立つのはまちがいない。

基本ブロックを組み合わせるだけで、構造化文書処理、
画像処理、科学計算など、さまざまな並列プログラムを記述できる
(Quick Time Player で見ることができます)

 動画を見ていただこう。4つの基本ブロック(スケルトン)を自在に組み合わせるだけで、構造化文書処理や科学計算といった並列プログラムができる様子を示している。この積み木手法で最も大きな課題だったのは、「何を基本ブロックとするか、いくつ用意すればいいか」ということだった。多すぎると、どれを選んだらいいかわからなくなり、少ないと複雑な問題に対応するのがむずかしくなる。そこで、何が基本ブロックになるかを数理的なアプローチで解析した結果、プログラムは数理的な構造を持っていることに注目した。「プログラムは入力データを受け取って結果をつくるだけではなく、入力データの代数的構造から別の代数的構造への変換(準同形写像)として捉えることができます」。すなわち、プログラミングそのものを数学的な道具を駆使して議論できる場に押し上げ、準同形写像を生成できるreduce を基本ブロックにすればいいことを突き止めた。実用的な効率を考えて基本ブロックを4つ設計し、この組み合わせで記述できるようにしたのだ。

PCを使った大規模並列計算時代を拓く

 ただ、この4つでプログラムを記述したとしても、効率的な並列プログラムになるとは限らないことだ。並列計算では、大量のデータを扱うことが多いため、基本ブロック間で大量のデータ通信が発生する可能性がある。これは効率に影響するので、解決策として、前後する2つのブロックを1つにまとめて通信を減らし、最適化する処理(融合化)を取り入れた。この手法を使って並列プログラムを書くのは、CやC++で逐次プログラムを書くのとまったく変わらない。「スケルトンはCの関数の形で呼び出せばいいので、スケルトンの機能や記述方法を知っていれば、並列プログラムを書くのは簡単です」と胡 准教授は言う。

胡 振江 准教授
 記述するのがむずかしく、敷居が高いといわれてきた並列プログラミングを身近な存在にしたのは、胡 准教授が研究のライフワークとしている運算規則、運算アルゴリズム研究によるものだ。1991年に中国上海交通大学大学院の計算機科学技術系の修士課程を修了し、翌年、東大大学院工学系研究科(情報工学専攻)に入って以来、プログラミング言語の設計研究を進めた。この過程で『問題を解いて結果を出すのに使うC言語やJAVAなどのプログラミング言語が、どのようにしてできたのか、その開発プロセスが書かれていない』のに気づく。問題が少しでも変わるとそのままでは対応できない可能性があり、将来のプログラム言語開発の大きな隘路になると考えた。開発プロセスを記述する方法を持っていれば、問題が変わっても対応できるようになるというのだ。そのコアとして、数理的な手法を用いてプログラムを導き出す“運算”という概念に注目し、新しいプログラミングパラダイムとして提案した。数の運算(算術の運用・計算)が電卓で行われるように、計算機プログラムも計算的な手法で実用的なシステムができるという発想である。

 「プログラミング問題を数式化しておけば、中学で習う因数分解を解くようなアプローチで解くことができるんです」。このためには、解き方を表現するルールやストラテジーが必要になる。運算手法の確立に決定的なものとなった解き方が、すでに触れた「プログラムを準同形の合成として定義する」というものである。これを具体化したプログラム変換システム「HYLO」のアイデアは、米国MITのpHシステムや、ポルトガルのMinho大学のDrHyloシステムに利用され、国際的な評価を得ている。このHYLOシステムをより使いやすく構築したのが積み木手法である。

スケルトンライブラリーの充実へ

 逐次プログラムの並列化研究に多くの時間を充てた結果、この蓄積が木や行列の並列化にも大きく貢献したが、「積み木手法にしても、まだ十分とは言えない」と胡 准教授は次の研究フェーズに入っている。産業界も並列スケルトンを組み合わせることで、移植性と効率の良さを両立しながら並列プログラムを簡単につくる方向を模索している。それだけに、世界に先駆けて実用的で系統的なプログラミングモデルの確立を急ぐ考えだ。その一環として、積み木手法の本格的な実用化を前に、より複雑なデータを処理できるようスケルトンライブラリーの充実を図り、データスケルトン、タスクスケルトン、通信スケルトンなどを効率的に共存させる体系を視野に入れていく。究極的には、自動的に最適化を行うシステム開発が目標で、PCクラスターを利用した並列計算時代を拓く考えだ。

 「運算研究を始めて15年。ようやくその有効性を認識してもらえるようになった。新しいモノを定着させるエネルギーがどれだけ必要かを痛感している」と言いながらも、解決できそうもない問題を解決できたときの悦び、幸福感は、何ものにも代えがたいという言葉が飛び出したとき、厳しさが消えて柔和な表情に変わった。「社会に発信できる研究を」と学生に説く胡 准教授、自らは“日本発、日本育ちのプログラミング手法をこの手で”を課している。「数年後には、実際に使われている姿を、次代を担う若者に示したい」と言い切った。

胡准教授
武市・胡研究室



大学院 情報理工学系研究科 お問い合せ先 東京大学