シームレス並列分散コンピューティング環境と開発
シームレス並列分散コンピューティング技術領域のリーダーをしておりますつくば研の石川です。昨年度の研究成果についてご説明します。最初に、この技術領域全体の目標についてご説明した後、どのように各研究室がこの技術領域に関わっているかをご説明をして、その後、各研究室のスライドをベースに報告いたします。
並列分散コンピューティングについては、プレナリーセッションでもいろいろと解説をいただきましたが、当領域は、分散システム環境においてプログラマー、あるいはユーザが分散システム環境を意識することなく、シングルイメージでその計算機環境を使え、それによってハイパフォーマンスパワーをネットワークから引き出すことができるという新しい計算環境を実現すべく、いくつかのテーマに分かれて研究を行っています。
シームレスとは何かというと(図1)、シームレスというからには何かシームがあった上で、それを取り除くという意味であります。シームというのは、複数のコンピュータをつなげることによって生じてしまうシーム、これはこれ自体が並列計算機を意味しているわけではなく、元々独立して動いているような計算機群をLAN上に集めて並列環境を作ろうとしたときに生じるシームというものを取り除くことによって得られる環境を実現しようということで、シームという言葉を使っています。ここに三つシームの例を取上げました。
 図1
一つ目はネットワークに関するシームです。今LAN環境で使われているネットワーク環境はたいがいTCP/IPプロトコルです。TCP/IPプロトコルというのは、基本的に信頼性のないネットワークかつ通信速度が非常に遅い時代に作られたプロトコルです。信頼性を保障するためにオペレーティングシステムカーネルでプロトコルハンドルしても、十分性能が出せるくらいの通信ハードウェアしか提供できなかった時代に作られたプロトコルと言えます。そのようなものを使っていると、並列計算で必要となる、低遅延、高バンド幅な性能を提供することができません。そういう意味でここにシームがあるということです。
二つ目はオペレーティングシステム(OS)に関するシームです。LANに繋がれた計算機で使われているオペレーティングシステムは、言うなればネットワークオペレーティングシステムが実現されています。OSとして通信機能を提供し、TCP/IPを使って様々なアプリケーションが動いているわけです。このような環境では、LANに繋がっているそれぞれのマシンの上でローカルなオペレーティングシステムが動いて、ジョブをスケジューリングしています。あるアプリケーションを複数の計算機上で実行させようとしたときに、全体をコーディネーションするようなOSの枠組みが現在のネットワークOSには存在していません。そのために性能の低下が生じます。そういう意味で現在はOSにおいてもシームがあると言えます。このようなアプリケーションを効率良く実行するためには、複数の計算機を束ねて、効率良く並列アプリケーションを実行するような新しいOSが必要とされています。
三つ目はプログラミングにおけるシームです。これが一番重要です。現状のプログラミング言語、あるいはコンパイラおよびランタイム環境において、ある並列アプリケーションを書いた時に、それを効率良く実行するためには、その実行環境であるマシンがどういう性質を持っているのかに依存した形で注意深くプログラムを書き、それからチューニングをしていかないと、性能が出ません。ある逐次処理で書かれたプログラムを並列環境に持っていこうとすると、かなりのギャップがあります。そういったところで逐次から並列に対する障壁(シーム)も含めた意味でのシームレスなプログラミング環境というのが必要となっています。
今、お話したのが当技術領域全体の目標です。これに対して我々は、昨年の基本計画の段階で三つの領域、主にローカルネットワークを考えてのシームレスな並列分散環境、それから、システムエリアネットワーク、これは複数の異なる計算サーバをつないだ形でそこにおけるシームを取り除くことを主に考えようという話、それからLAN、WANをつなげるところのシームを取り除こうという三つに分かれてこの技術領域を推進するということを決めました(図2)。LAN領域においては、つくば研究センタの3つの研究室とGMDの研究室が関係しています。システムネットワーク上の話に関しては、NECの研究室が携わっています。3番目の領域に関しては、富士通の分散研が担当しています。
 図2
ここに記載されているのが全体のおおまかなマイルストンです。個別の研究室のマイルストンはもっと細かいものでありまして、昨年度と今年度に関しては、基本的に要素技術の開発を行っていくことを考えています。来年度は、それらの要素技術をインテグレーションした形で、かつ評価していくということを考えています。ここにインテグレーションと書いてありますが、これは、これら全てをインテグレーションすることを必ずしも指しているわけではなくて、それぞれの分野で要素技術を作った上で、それぞれがインテグレーションしていくということを考えています。中間評価は、1999年度で行われるはずで、その後ソフトウェアの改良、あるいはプログラミング言語等においては規格化、標準化に向けてのアクティビティを最終年度に行うように考えています。
この後、我々、つくば研のアクティビティと、NEC、GMDのアクティビティの紹介を簡単にしていきます。
 図3
つくば研は、前に言いましたように、ローカルネットワーク上におけるシームレスな並列分散環境を構築していこうとしています(図3)。そのために必要なシステムソフトウェアを作ると同時に、新しいネットワークを考えていく。新しいネットワークにより、新しいソフトウェアを効率良く実行、実現できるものになると考えています。我々は、プラットフォームとして、プログラミング言語は主にC++を考えています。オペレーティングシステムに関しては、UNIXとWindows-NTを考えています。WindowsNTに関してはスライドにはありませんが、今年度から住友金属の分散研が我々のソフトウェアをWindows-NT上に動かして、環境を構築するというようなことをしています。それからアーキテクチャに関しては、インテルのペンティアムとDECのアルファを考えた上での異機種環境を考えています。計算機の構成としては、これらのシングルプロセッサ版、あるいはSMPを、これらがネットワークにつながった環境において、シームレス並列分散環境を実現していこうと思っています。
ネットワークは重要であり、今、我々はPCクラスタ上でMyrinetという製品を使っています。昨年度より、我々のグループでは、ギガビットイーサーネットのネットワークインタフェースのファームウェアを書き直して、新しいネットワークができるまでの間、これを使ってLAN環境でシームレス並列分散環境を実現、サポートするような機能を提供していこうと考えています。つくば研のアーキテクチャの研究室から新しいネットワークが開発されたら、当然、これを使おうと考えています。ここで我々が開発するのは、アーキテクチャのグループが新しいネットワークハードウェア、それから我々、オペレーションシステムの研究開発のグループはグローバルOSを実現し、グローバルアドレススペース、マルチエグゼキューションモデルを提供していくことを考えています。コンパイラによってユーザに対してはグローバルアドレススペースが見えてシングルコントロールフローが見えていると、いわば逐次処理のイメージでプログラミングができる環境を実現しようとしています。この部分は、並列分散システムパフォーマンスつくば研究室および並列分散システムソフトウェアつくば研究室が分担しています。
 図4
個別の研究室について紹介しますと(図4)、まず、先に島田所長からもPCクラスタの話がありましたが、これはシームレス並列分散環境の一里塚としてとらえています。これは今後の研究プラットフォームとして位置づけています。ここで構築したシステムというのは、ハイパフォーマンスな通信機能を備え、かつマルチユーザ環境を実現しているというものです。詳しい話はこの後のセッションで説明します。それからMPC
++と呼んでいるプログラミング言語が提供しているMulti-Thread Template
Libraryは、業界標準を狙っているHPC++というグループが制定しているライブラリの仕様の一部に採用されています。現在もHPC++グループとは密接な交流をしています。
それからソフトウェアの配布については、昨年より許諾書ベースでソフトウェアを配布しております。現在40サイト以上で使われています。今朝も、メールを見ましたら、カナダの人と思いますが、Digital
UNIXで動かないかというような問合せが来ていました。
注目すべきは、米国ASCIプロジェクトに参加しているロスアラモス国立研究所の中にある一つのグループが我々のソフトウェアを使っていることです。実際、今、彼らは、HPC++がこの上で動くようなものを作ろうとしています。テクノロジートランスファーですが、これは昨年度の終わりから進めています。組合のメンバー企業の方と実時間電力系統シミュレーション実現のためのソフトウエア基盤として使って頂いています。
パフォーマンス研究室の紹介です(図5)。このグループはコンパイラをやっていまして、先ほどちょっと紹介した逐次プログラムから並列プログラムに移行する時に、シームレスに移行できるようにサポートするコンパイラ、あるいはツールを開発していこうというのが主目的です。そのために並列オブジェクト指向のライブラリとか、open
MPと呼ばれているコンパイラ指示文の仕様に基づいた処理系を開発しています。open
MPは基本的にはSMP上での環境を考えていますが、このグループはこの仕様を使って、SMPだけではなくて、分散メモリ型、あるいは異機種環境上でも動くようなコンパイラを開発しようとしています。それからチューニングツール、エンバイラメントということも考えています。
 図6
97年度では(図6)、ツールとしてインストルメンテーション・ツール、パフォーマンス・ビューアを開発しています。シミュレーション・アナリシス、NASベンチマークを例題にして、並列プログラムの解析を行っています。本グループが開発したExcitと、筑波大学の朴先生の研究室で開発されたopenINSPIERを使って、これらの実験を行っています。
それからSMPクラスタ。彼らのグループはPCベースのSMPクラスタを開発しています。これはCOMPaSと呼んでいます。この上で、リモートメモリアクセスができる通信レイヤーNICAMを開発しています。この上でスレッドとリモートメモリオペレーションを使ったハイブリッドなプログラミングをテストしています。それから並列オブジェクト指向プログラミングに関しては、OBPというライブラリを策定しています。FEM、アダプティブメッシュFEMのフレームワークのデザイン等を行っています。それから、昨年のRWC
97でデモをしましたが、FEMフローと呼んでいるCFDプログラムも開発しています。
 図7
GMDの研究所では、PROMOTERと呼んでいる並列プログラミング言語(C++を拡張した言語)を研究開発しています(図7)。更にPROMISEと呼んでいる並列プログラミング環境を開発しています。これらは並列プログラミングというものが逐次プログラミングと同じ位やさしく書ける機能を提供しようという目標を達成するために開発しています。昨年度の成果ですが、このPROMISEいう並列プログラミング環境を開発しています。PROMOTERは前期からGMDのグループが開発しているものですが、これをつくば研にある日立のSR2201にポーティングして評価をしています。
 図8
NECの分散研では、先ほどお話したとおり、システムエリアネットワーク上の計算サーバにおいてシームレス並列分散を実現しようということを考えています(図8)。具体的にはベクター並列計算機とスカラ並列計算機があるような高速ネットワークでつながったヘテロジニアスな環境の上で、ユーザがヘテロジニアスな環境を意識しなくてもプログラムができて、性能が出せるという環境を実現しようとしています。そのためにハードウェアとしてハイスピード・ネットワークの研究開発を行っています。それから異機種分散環境で通信をするために通信ライブラリMPIを改良し、さらにHPFを拡張することにより、あるプログラムをそのプログラムの性質に応じて部分的にベクター並列の計算機で走らせ、ある部分はスカラ並列の計算機で走らせることを可能にさせようとしています。
 図9
97年度のNECの分散研の研究成果ですが(図9)、ネットワークに関しては基本的な設計が終了していると聞いています。それからネットワーク・シュミレータをデザインしたとのことです。並列分散通信ライブラリに関しては、MPIに対して、彼らが使用している異機種環境上で(スカラ並列計算機はCenju、ベクター並列計算機はSXを使用)、MPIで書いたプログラムが通信できるライブラリのプロトタイプの実装を済ませています。並列分散プログラミング環境に関してはHPFを拡張した言語のデザインをしてコンパイラの大枠をデザインしており、そのためのコンパイラ、これらを使うためのプログラミングツールの開発をしています。更に、実行時にオブジェクトの行動をリコンパイルして動的に変更していくような環境の実験も行っています。
 図10
富士通の研究室では、並列分散環境をオフィス、あるいはビルディング、更にはワールドワイドエリアにもっていこうということが主目的で、そのために新しいネットワークプロトコルをプロセッシングするためのアーキテクチャを研究開発しています(図10)。これによってLANとWANをつなぐルータに生じているシームを取り除こうと、それから更にこういったアーキテクチャを使って新しいネットワークサービスの研究開発をしています。これに関しては慶応大学の村井先生と共同で研究を行っています。
 図11
97年度は、プロトコルハンドリングするネットワークインタフェースアダプタのプロトコルタイプを開発していました(図11)。これによって、ギガビットスピードでのネットワークプロトコルプロセッシングができるようになります。それから一つのデモンストレーションとして、実時間でビデオストリームを送る実験を行っています。この実時間ビデオ通信ですが、パケットを120マイクロセカンド単位で連続して送ることが可能になっているというようなものです。 以上で、我々の技術領域の概要発表を終ります。
|