並列アプリケーションの開発
並列アプリケーション技術領域のリーダーをしております、つくば研の秋山です。並列アプリケーションの領域は6つの研究室から成りたっており、また開発を分担するために2件の大学再委託を実施しています。本日は、領域の全体目標と、6つの研究室での研究開発の状況について、ご紹介いたします。
■
並列アプリケーション技術領域の目標 並列アプリケーション技術領域、この領域の目標は非常にシンプルで、とにかく良い並列アプリケーションを実際に作れということに尽きます。並列処理技術の実証をするために、実用的な並列アプリケーションをどんどん作ろうということです。一方、6つの研究室の中には並列アプリケーション開発の今後の基盤となる技術の研究もあります。ただしそれらは、単なる基礎研究ではなく、あくまでも実証開発に結びついたものです。 アプリケーション開発というのは、マシンがあって、OSがあったら、あとはもうユーザに任せておけば自動的にどんどん発展するのではないか、といった考えもあるかもしれません。それは本来は望ましい姿なのですが、実際の世の中を見ると、並列計算機だけはあるけれど、我々が使いたいと思うソフトがラインアップとして揃っていないという厳しい現状があります。 我々の領域内の6研究室では、「これは使えるじゃないか」と言われるような並列アプリケーションを、プロジェクト内に出していきたいと思っています。極端な話として、2001年度にプロジェクトが終わった時に、「並列アプリケーションなんて研究じゃないよ、そんなの誰だってもう作っているじゃないか」という時代が来ていれば、役目を達成できたのではないかと思います。
研究テーマの絞りこみ ところが、アプリケーションなら何でもやってみようよというわけにはいきません。限られた研究資源と時間をどのように投入していくのか、領域のメンバーで議論を深めてきました。 産業分野に密着したアプリケーションばかりを開発できれば産業振興の上では理想的でしょうが、情報処理自体の並列性が明確であり、テスト用の大規模データがオープンに手に入るといったことが、開発には必要になりますので、これらの点で条件の整っている科学技術分野の応用にもかなりの重点を置きました。その科学技術応用においても、既にやりつくされたようなテーマではなく、今後の市場の発展が特に期待される、化学とか、生命科学などの分野のテーマに集中的に取り組んでいます。一方、産業分野への直接的な応用としては、これを我々は「大規模システム」というまとめ方をしていますが、電力系統解析や、大規模なデータマイニングを目指しています。 これらとは別の、並列応用の基盤技術の開発についても、当然ながら狙いの絞り込みが必要でした。「さまざまなモデルでの計算手法を融合する」という切り口で、テーマの設定を行っています。 また、このアプリケーション技術領域は、少し別の使命も持っていると考えています。我々は、実社会とか研究社会に接しているところに立たされています。計算機屋だけで集まって仲良くやるというのではなく、他の分野への波及ということについて真剣に考えて、そのような実証例を示すための協力の枠組を作るということも狙っています。
■
並列アプリケーションの技術動向マップ 並列アプリケーションには、既に何年も前から商品のプログラムがたくさん出ている分野もあります。例えば、自動車の衝突解析のプログラムや、流体力学計算のプログラムなどは、既に欧米で並列プログラムの開発と利用が進んでいます。もちろん、それはマーケットの需要に裏打ちされた話ですので、我々もそこをやるべしという意見もあると思いますが、既にそのような基本的な方法論が確立されている分野だけでなく、むしろ今後市場として伸びる分野、それは例えば情報が多層的でゴチャゴチャしている化学や生物学などの、ドラッグデザインやタンパク質の構造予測といった分野を狙っていこうというのが、我々の領域が進めている研究開発の特徴です。 図1では、技術領域を全体として眺めた時の、開発のモチベーションの2つの軸を模式的に示しています。まず横軸が「モデル複合化技術」、異なるレベルの手法を融合していこうと考えている軸です。そして縦軸が「高並列化技術」で、莫大な計算量へと進んでいくための技術です。もちろん、並列応用に関する技術動向を二次元だけで表現しきれるはずはなく、様々な技術が総合して未来の並列アプリケーション技術へ向かうとは思いますが、我々の領域では特にこの二つの軸を意識して、6つの研究室のテーマを展開しています。
図1.技術動向と2つの開発軸
各研究テーマの位置付け まず、横軸に沿って書かれているのが、モデル複合化に関する研究です。 現在、MPIやPVMライブラリが世界標準として用いられて、メッセージパッシングで簡単に移植性の高いプログラムが書けるようになっていますが、まだまだその先にやることがあるはずだというのが、この横軸に配置された研究項目です。先ほども延べたように、我々は、異なるモデルを複合化するということに特に力点を置いています。 後ほど具体例を示しますが、例えば粒子シミュレーションの専門家が書いた並列プログラムがあって、一方で流体の専門家が書いた並列プログラムがあったとします。その二つの機能を併せ持つ連成解析用のプログラムをゼロから書くというのは非常に難しいわけです。その難しい開発を待っていると実際の応用がどんどん先になってしまうので、なんとかして、異なる立場で書かれたものを合わせ込んで使っていけないか、それによって付加価値を高めていけないかという技術が求められます。このような異なるモデル間を統合するミドルウェア技術と、ざっくりした統計的な計算と物理的な非常に細かい数値計算を融合して全体をコントロールしていく技術とに関して、それぞれ日立と三菱の研究室で研究を進めています。 次に、このマップの真ん中あたりが、産業的な実応用開発になります。産業的な応用としては、電力系統の運用についての並列アプリケーション、そしてデータマイニングに関連した並列アプリケーションがテーマになっており、電力系統をMRI、データマイニング関係を東芝と三洋研究室が進めています。 縦の開発軸に近いあたりが、科学分野の大規模問題向けの応用開発です。生命科学や化学関係に集中して開発を行っており、タンパク質の立体構造解析や構造予測といった挑戦的なテーマを、主につくば研において進めています。 今申し上げましたようなテーマの広がりを、日立、三菱、MRI、東芝、三洋、つくばの6つの研究室で分担して、このマップ上を右上の将来システムの方向に向かってどんどん進めていこうとしています。2つの開発軸はお互いに相補的になっていて、最終的にはこれらの技術が合わさっていくことが期待されます。 それでは各分散研にご用意いただいた資料を使って、私の理解できている範囲で、これらの6つの要素を順にご説明します。各研究室から、それぞれの詳しいご発表もありますので、予告編としてお聞きください。
■
並列アプリケーション領域の各研究室の活動 並列応用日立研究室 まず、日立研究室ではヘテロジーニャスコンピューティング共通インタフェースソフトウェアというテーマで、ミドルウェア技術を使って、今までに作られた並列ソフトウェア同士を上手につないで、付加価値を高めるための研究を行っています。例えば、粒子を対象としたシミュレーションと、場をメッシュにした計算を合わせ込めると、粒子での計算が適するような領域と連続体で計算した方が良い領域とを、二つの独立のアプリケーションが分担して、連絡を取りながら一つの連続した解析として進めていくことなどが可能になります。 次の半導体シミュレーションの例は、これは連続と連続とを合わせています。広い領域はポアソンソルバーで解いて、段差のある細かい領域だけをシュレジンガー方程式まで落として解くソルバーを使い、二つのソルバーの間で通信をしながら同時に計算を進めていきます。平成9年度に並列計算機SR2201の上で、これらを実現するようなプロトタイプの開発が終了しているそうです。 今後は、つくば研が開発中のタンパク質向けの分子動力学法の並列プログラムと、その周囲を取り巻く膨大な水分子を連続体でシミュレーションしてくれるルーチンを日立研究室が用意して、その二つを境界部分でうまくつないでやるといった連成解析も検討しています。このような例では、水の連続体計算の方法を勉強して、つくば研の方のプログラムに加えれば良いではないかと思われるかも知れませんが、そのようなプログラム構造の変更を行うと、また半年、1年と開発時間がかかる上に、当初のプログラムの構造が壊れて、それぞれのプログラムを発展させづらくなってしまいます。それぞれの分野のプロフェッショナルの知恵が、ミドルウェアによって間接的につながるということが非常に重要で、それが全体の付加価値を高めるのだと考えています。 実際の仕組みですが、それぞれのシミュレータのプログラムの中では、特定の配列データを送るよとか、受け取るよ、とか書くだけでよいのです。実際にはその下の層にカラクリがあって、エージェントプロセスが、例えばある粒子の位置から対応する場のメッシュを相関表で求めて、PVMの層を使って、必要な相手の全てに通信を届けます。受け取った側では、補間などの処理もしてくれて、シミュレーションのプログラムとしては何事もなかったように変換されたデータを受け取ることができます。この通信の仕組みについては、全体の通信量を下げるための色々な工夫を開発されたと伺っています。
並列応用三菱研究室 次の並列応用三菱研究室も、異なるモデルの複合化技術ですが、物理的な詳細なシミュレーションと、そうではなくて統計情報や既存の知識などを使ったざっくりした予測方法と、この二つの世界をつないで使えるようにしようという研究です。 具体的な研究テーマはいくつかあります。その一つはタンパク質の構造予測で、これはつくば研とも協調しながら進められています。ここでは物理的な手法は真面目な原子間のエネルギー計算などで、統計的な方の手法はたとえば隠れマルコフモデルなどが考えられています。隠れマルコフモデルの場合、ネットワーク構造をまず選ぶときに、非常に候補の組み合わせ数が多くなります。その良い候補を選び出すのに、並列処理を使った良い手法を開発されています。「確率的最急降下法」というのが三菱分散研のオリジナルな方法です。ここではマルコフモデルの選択の話で紹介しましたが、実はこの確率的最急降下法は、物理シミュレーションの方、たとえばタンパク質のフォールディング問題を真面目に計算で解く時などにも、全く同じように応用できるそうです。 この確率的最急降下法を、聞きかじりですが簡単にご説明してみます。いま述べたような処理はどれも、数百次元、数千次元といったきわめて高い次元の空間の中で、パラメータをちょこちょこと調整していくわけです。今、パラメータの組が空間内のある一点にあったとして、各パラメータを上げた方が良いのか、下げた方が良いのかというのを常に迷っているわけです。そこで、この多次元空間の中で、自分のすぐ隣だけは全部試して一番良い所に取りあえず移るというのが最急降下法ですが、そんなことをやっていたら膨大な時間がかかります。 三次元の場合は2の3乗で8通りしかないから良いのですが、数千次元ともなれば大変な手間です。それをいかにまばらに、しかし偏りなく試すかという提案が、この研究の本質の部分になります。ガロア体の理論を使っていて、直交計画法に近いことをされています。そのオリジナルな手法を単に考案したということではなく、これを並列計算機SR2201の上にPVMを使って実装した上で、高い並列効率があるという評価までを取られています。つくば研の方では、独自のタンパク質構造のポテンシャルの開発という研究をしているのですが、今後はその方面でも、このような並列手法を使わせていただけないかと考えています。 ここまでがモデル複合化に関するテーマであり、次からは具体的なアプリケーション開発のテーマとなります。
並列応用MRI研究室 並列応用MRI研究室では、電力分野における並列処理の研究をしています。電力の規制緩和というニュースが聞こえてきますが、消費者だったはずの工場などが逆に発電して電気を流し込んでくるようになると、電力系統の計算機解析は従来よりもずっと難しくなり、計算の大規模化が進んでいくのだそうです。 電力関係では、様々な種類の計算処理が必要とされていますが、その中でも電力潮流計算がもっとも基盤となるものだそうです。複雑で大規模な潮流計算をなんとか高速に実現したいというのが、現在まず取り組まれているテーマです。大きな非線形連立方程式を並列に解くことになりますが、並列化する際には直接法で解くよりも反復解法のほうが都合が良い。ただその反復解法にも色々な課題があって、それを一つずつ改良する必要があります。また一方で、あまりにも大きな系統の場合には、電力系統を部分ごとに分割していくといった方法での並列化もできるのではないかということで、これら二つのレベルの並列化手法について研究を進められる予定です。 平成9年度は、逐次アルゴリズムの改良が行われました。反復解法のBi-CGStab法では、プリコンディショニングと呼ばれる処理に時間がかかる。それを電力潮流計算に特有の性質を使うことによって、毎回行っていたプリコンディショニングを共通化するといった提案で、これによって電力潮流計算において、プリコンディショニングの時間を数割短縮できたとのことです。平成10年度から主に共有メモリの計算機をターゲットとして実際のシステムを作り、その後、より大規模な分散メモリの計算機を考えていくという計画です。最終的には系統の分割などのアイデアも取り入れ、潮流計算だけではなく状態推定とか信頼度解析のような機能も付加していく。将来型の電力系統の最適化システム、オンラインでの制御ということも視野に入れて、狙っていくのだとお伺いしています。
並列応用東芝研究室 4つ目の研究室、並列応用東芝研究室では、並列分散データマイニングというテーマで、大規模化しているデータマイニングの並列高速処理を研究しています。今年度までの成果としては、データマイニングの性質を良く考えて、データのファイル形式を工夫することにより、容量がコンパクトで、かつアクセス速度が速いような、データマイニング専用のファイル格納形式を開発されたのだとお伺いしています。 今後は、これをただ並列化するだけでなく、データマイニングとしての様々な処理機能を高めることを、このプロジェクトの中で詰めていかれるそうです。最終的には、並列システムの実装形態として、PCクラスタ等も考えられているとのことです。
並列応用三洋研究室 並列応用三洋研究室では、データマイニング関係のテーマの中でも、特にマルチメディアデータベースの並列分散処理の研究を進められています。データベースの中身がどんどんマルチメディア化されていくと、テキストでのマッチングだけでなく、画像を与えて検索したいとか、キーワードを入力してこんな画像が欲しいといった、さまざまな形式での検索要求が出てくると思われますが、それらの要求に答えるために並列応用技術がどんどん使えるというわけです。 具体的に進められている研究について、ここでは二つに分けてご説明します。第一は、画像と画像の高速なマッチングです。似た画像を探してくるには、画像間の対応点を探すという膨大な並列性のある処理が行われます。さらに特徴でマッチング処理をするという、これは画像データというよりはグラフ理論に近いような問題かと思いますが、この処理過程の並列化を進められています。第二は、画像の内容理解をある程度しておく事により、キーワードを入力して、それと合致するような画像をとってくるという研究です。 第一の画像と画像のマッチング処理については、まず、処理の中でおよそ9割を占める重い部分を抽出して、並列化が行われました。三洋研究室のワークステーションクラスタを使って実際の性能等が計測されました。12台ぐらいの規模のシステムで、効率良く並列処理ができています。この研究では、非常に真面目な細かいレベルの並列性を取り扱っています。基本的には、候補となる点と点とのマッチングを処理の独立単位としていて、これはプロセサに割り当てるときにはある程度の塊にまとめているそうですが、このような細かいレベルでの並列化を行っています。実際のシステムにおいては、画像は何千枚もあるはずですので、画像のレベルでの並列性もあるのではないかと思います。この2つの並列レベルを合わせれば、かなり大規模な並列システムにも向くのではないかと、私は思います。 第二の、画像内容理解に関連した研究については、電総研との共同研究も進めているとのことです。「階層プリミティブ」と呼ばれる方法を使って、画像の内容の検索を行っているそうです。
並列応用つくば研究室 最後に、つくば研で進めている研究についてご紹介します。つくば研では、計算化学や計算生物学の分野で、具体的な並列アプリケーションの開発を進めています。それぞれは、ある程度は独立していますが、最終的には組み合わされて、タンパク質の構造予測などのシステムとして使えることをイメージしています。 まず、分子動力学法の並列化については、AMBERプログラムの並列化で、世界で最高レベルの速度向上を達成しました。いままでの記録は20倍程度だったのですが、我々は逐次処理の38倍までの速度向上を引き出しました。これはAMBERの機能をそのまま並列化しただけですが、さらにAMBERでは問題になっていたカットオフ近似を避けるための技術も別途開発しています。これは天文学での星雲の計算のアイデアを利用するBarnes-Hutツリーコードという方法です。その効率の良い並列化アルゴリズムを考案して、逐次版の約200倍を越す速度向上を、並列計算機SR2201の上で達成しました。今後はこのツリー方式をAMBERなどと組み合わせて、高速で誤差の少ない分子動力学法プログラムを開発していく計画です。 遺伝子やタンパク質の配列解析の分野では、マルチプルアライメントと呼ばれている計算を高速に実行するシステムを作りました。SR2201の上で、それまでの逐次版の450倍の性能が出ました。これは枝刈りのテクニックで5倍、並列化で90倍の高速化ができたためです。従来は一日かかっていたような計算が数分でできるというところまできています。次に述べるPAPIAシステムにも、この成果は組み込まれています。 最後に、並列タンパク質解析システムである、PAPIAシステムの開発について紹介いたします。シームレスコンピューティングの研究グループが開発したPCクラスタシステムの設計をほぼそのまま踏襲して、Pentiumプロセサを64台使ったクラスタを研究室で組み立てました。このクラスタの上で、タンパク質の情報解析を高速に並列実行するPAPIAシステムを作成しました。 立体構造の似ているタンパク質を探すとか、配列の似ているものを探すといった様々なデータベース検索が、64台で並列実行されます。また、マルチプルアライメントなどの並列計算処理も行います。WWW経由で外部からもアクセスできるようにして、6つのメニューを提供しています。そのURLは、http://www.rwcp.or.jp/papia/
です。検索結果はインターネット経由で手元に送られてきます。もしJAVAの機能があれば、タンパク質の似た構造を検索した結果を、手元で分子をグルグル回して眺めるというようなこともできます。 PAPIAが外国からアクセスされていることは、プレナリーセッションで村岡先生にもご紹介をいただきましたが、実際にどんな国からアクセスされているのかグラフを作ってみました。(図2)
 図2. PAPIAシステムへの各国からのアクセス
これらの値は並列計算サービスの回数ではなくて、マニュアルとか文章へのアクセスも全て合計したアクセス数です。今年になって合計4万6千回です。もちろん日本国内からの利用が圧倒的に多いのですが、日本のほかに、アメリカ、イギリス、ドイツ、カナダ、フランス、スウェーデン、オーストラリア、オランダなど、バイオ系の研究が強い国から多くのアクセスを受けているようです。研究室の活動を広報することと、実際の研究者からのフィードバックをもらうことを目的として、PAPIAシステムのサービスは今後とも増強していきたいと考えています。 以上で並列アプリケーション技術領域の説明を終ります。
|