特別セッション
次世代情報処理基盤技術開発事業
並列分散システムについて
| 技術研究組合 新情報処理開発機構 常務理事・研究所長
島田 潤一 |
私は並列分散システムに関する話をするわけですが、先ほど通産省の藤本氏より説明がありましたように、この場では特にその中身が明確になりつつある部分についてだけお話致します。そして、その分野というのはまだ名前が確定しておりませんので、私は、この場では「シームレスシステム計画」と名前を付けさせていただきます(図1)。
1. 背景
1.1 社会的背景
はじめに、シームレスシステムという技術を発展させようと思うに至った背景についてお話致します。
まず、社会的背景に触れておきたいと思います(図2)。
よく認識されていることですが、今日、コンピュータはビジネス、エンジニアリングの現場から家庭にまで普及し、我々の社会を支える主要な技術になっています。ユーザがコンピュータに期待する能力の増大に伴い、アプリケーションソフトウエアは肥大化し、より高速で価格性能比に優れたコンピュータの必要性が高まっています。さらに、インターネット、イントラネットが普及した現在、パーソナルコンピュータだけでなく、WWW、マルチメディアメッセージハンドリング、データベースやデータマイニングのためのサーバシステムの需要も増大してきています。このようなサーバシステムでは、利用形態や頻度の変化に応じて、小規模から大規模と、必要とするシステムサイズが変化に富む傾向にあります。
このように最近のコンピュータ利用では、特定の用途に応じた高速なコンピュータが必要とされているだけでなく、利用状況の変化に応じることのできる高速コンピュータシステムが必要とされているわけです。
1.2 技術的背景
今度は、技術的な面から背景を見てみたいと思います(図3)。
増え続ける計算パワーのニーズに応えて、コンピュータを高性能化する研究開発が盛んに行われています。高速化技術においては、現在の集積度における既存のMPUアーキテクチャの最適化の研究と共に、動作周波数を上げることが主流となっています。
最近では、500MHz動作周波数で稼働する高速マイクロプロセッサも市場に出てきています。しかし、近い将来には、動作周波数において物理的限界に突き当たることが予想されています。さらなる高速化には並列処理技術が必須となり、現在、並列処理技術の研究開発が注目されているわけです。今やパーソナルコンピュータにおいても並列処理技術が一部入ってきています。実際、2プロセサタイプのデスクサイドPCや4プロセサタイプのPCサーバが市場に出始めているところです。
ところで、並列処理の高速化のためには、極論すれば、最適な並列処理単位を見つけだし、それらの処理を受け持つプロセッサに必要なデータを、いかに遅延することなく供給していけるかという問題に尽きるといえます(図4)。
データは、ボード内メモリ、他のボード上のメモリ、あるいは、ネットワークを介して別のコンピュータのメモリ上に存在します。それらの間には、つなぎめ、シームが存在し、データ転送時にそのつなぎめにおいて転送容量が減少し、かつ通信遅延が増加するといった事態が起こるわけです。これが性能向上の阻害要因となっているのです。
シームを取り除く一つの方法は、チップ内においてマルチプロセサとメモリを搭載したプロセサアーキテクチャを構築することです。これにより、チップ内に収まっているプロセサとメモリの間にはつなぎ目がなくなります。しかし、チップの外にあるメモリやプロセサとの間には、相変わらずシームが存在することになります。
ハードウエア的にシームが存在する並列システムにおいて、その影響を極力軽減して高性能処理を可能とするためには、システム全体で効率良く実行できる環境を提供するためのオペレーティングシステム、個々のアプリケーションの実行を最適化するためのプログラミング言語およびコンパイラによる並列処理記述の支援ならびに最適化コンパイラの支援が必要となります。
従来の並列コンピュータでは、シームの軽減を行うために特別なインターコネクションネットワーク技術やメッセージパッシングや共有メモリと言った通信アーキテクチャを採用してきました。昨今の高性能ワークステーションやPCおよび高速ネットワークの台頭によって、分散システムではありますが、並列処理を行わせるクラスタ技術の研究開発が盛んになってきています。特に1Gbps級のネットワークを利用することにより、性能面では一世代前の超並列コンピュータに匹敵するワークステーションクラスタも構築可能となっているのです。
このようなワークステーションクラスタの動向は、従来の並列コンピュータ開発の流れを変えています。すなわち、既存のMPUを使った独自並列コンピュータ開発から、commodityのコンピュータと高速ネットワークを利用した並列コンピュータ開発への移行ということです。ワークステーションクラスタの利点は、最新のcommodityハードウエアおよびソフトウエアを利用することによる開発コストおよび期間の削減によって価格性能比を改善できること、そして、成熟した逐次コンピュータ上でソフトウエアが利用できることです。これにより、並列プログラミング環境のためのソフトウエア開発に重点を置くことが可能となります。
さらに、光インタコネクション技術を分散システム環境に適応することにより、分散システム環境においても、超並列コンピュータに匹敵する並列処理を実現できる可能性が出てきます(図5)。
これは、言い換えると、様々なコンピュータが光インタコネクションによってつながり、コンピュータ間につなぎ目、シームがなくなるということで、「シームレス並列分散システム」の形態であると言えるでしょう。これによって、分散環境上で計算処理に対するスケーラビリティが実現されます。需要に応じてコンピュータを付け足していくことにより、計算需要を満たすことになります。すなわち、設備投資の効率化、システム構築の容易性が達成されるわけです。
シームレス並列分散システムの形態は、ソフトウエア側からみると巨大なマルチプロセッサシステムとして見えます。マルチプロセッサシステム上のシステムソフトウエアは、まずは主に大規模数値計算等の科学技術計算向け、あるいは、サーバコンピュータのためのシステムソフトウエアが主眼でした(図6)。
前者については、利便性よりも性能重視型のシステムソフトウエアを構築してきています。後者は、多くの場合、共有メモリ型コンピュータにおいて大量ジョブをさばくためのシステムソフトウエアが主眼でした。そこでは、一つ一つのジョブは1台のプロセッサ上で稼働するものであり、科学技術計算に見られるようなジョブ自体が並列化されて処理されるようなものではありませんでした。
ビジネスアプリケーションを含む一般のアプリケーションがマルチプロセッサシステム上で効率よく稼働するためには、一つのアプリケーションが並列処理され、かつ、利便性を追求したシステムソフトウエア構築が必要になります。しかし、この分野は世界的に未成熟の状況にあるのが実情です。
2. 目標
以上のような背景を踏まえ、ここでシームレスシステム計画と仮に名付けた我々の技術開発計画の目標についてお話したいと思います(図7)。
我々の目標は、端的に言えばシームレスコンピューティングアーキテクチャの実現及び発展を図ることです。
コンピュータの内部バスと同等な性能で結合され、分散配置されたコンピュータ群が構成可能な光高速通信技術による次世代ネットワーク、それをSuper
Networkと呼んでいますが、それを開発し、そのSuper
Network上に様々なコンピュータが接続され、それらの計算資源であるプロセッサ、メモリ、ディスク等がシームレスに利用でき、ユーザからは仮想スーパコンピュータとして見えるようなシステムの開発を行います。
3. 技術課題
では、この目標の実現のために開発すべき技術項目を具体的に挙げてみたいと思います。
3.1 光通信技術
まず、ハードウエア的な面でポイントとなる光通信技術としては、10
Gbits/sec、あるいはそれ以上の伝送能力をもつ光通信技術をリーズナブルなコストで実現するための研究開発が必要になってきます(図8)。
3.2 システムアーキテクチャ
3.2.1 通信アーキテクチャ
目標を達成するために必要なもうひとつの技術は、システムアーキテクチャであり、そのうちの第1が通信アーキテクチャです(図9)。
まず重要なのはネットワークであり、LAN環境を想定すると、1,000台程度までのコンピュータを接続することを可能にする効率的な通信アーキテクチャを研究開発することが必要です。
コンピュータは共有メモリ型のマルチプロセサを有するものが主流になりますが、これらが接続されたLAN環境において並列プログラムを実行するには、分散共有メモリ等のグローバルアドレッシング機能を必要とします。従来からSCI等の分散共有メモリを支援するハードウエア規格がありますが、コストが高く、一般には使われていません。価格性能比およびコンパイラや実行時環境等の支援を考え、軽量なハードウエアによるグローバルアドレッシング機能の研究開発を行う必要があります。
さらに、将来チップ内の集積度が向上することを考えると、チップ内においてマルチプロセサが実現可能となります。この時、通信アーキテクチャとして、どのような形態が可能になるのかを研究する必要があります。
3.2.2 システムソフトウエア
その次には、システムソフトウエアが重要になってきます(図10)。
シームレス並列分散システム上のソフトウエア環境を提供するためには、プログラミング言語、コンパイラ、オペレーティングシステム、ライブラリ、アプリケーション、ベンチマークと言った領域での研究開発を必要としています。
並列プログラムを支援するためのプログラミング言語の開発では、現在、そして、今後も主流となるプログラミング言語を基に進めることが重要です。これにより、既存のアプリケーションの移行がスムーズに進められ、研究開発が促進されるわけです。アプリケーションには、数値計算だけでなく、ファイルシステム、データベース等も含まれます。このようなアプリケーションではオブジェクト指向技術が必須であり、並列分散システムのためのオブジェクト指向技術の開発を必要としています。並列分散環境上のオブジェクトの配置、コピー、キャッシュ、並列実行の意味を定義することにより、プログラマに対して並列分散環境における透過性が提供されることになります。
次に、並列プログラミング言語に対するプログラムの自動並列化、最適化を行うコンパイラ開発が、スケーラビリティを提供するための要となります。適応性、再構成可能性を提供するために、実行履歴を用いて環境に自動的に適応するコンパイラを開発する必要があります。ビジネスアプリケーション等の多くのアプリケーションでは、コンパイル時に静的に並列性を見つけ出すことが困難です。そのようなアプリケーションの実行を最適化するためには、実行履歴による最適化手法の確立が必要です。
オペレーティングシステムについては、並列分散システム上の計算資源であるCPU、メモリ、ディスク、I/Oを一元管理し、耐故障性をあげるためのシステムソフトウエアの開発が必要です。また、ユーザに対して仮想スーパコンピュータ環境を提供するためのシステムソフトウエアの開発も必要です。そのようなシステムにより、あるアプリケーションが高速に実行されるために必要な計算資源の割り当て、ユーザあるいはアプリケーション毎に必要とされる計算資源の調停を行う機能が実現されます。
それから、高性能を保証しつつ異なる計算機環境に移植できるライブラリの開発も必要です。我々が想定するシステム上では、異機種コンピュータが接続されています。シームレス環境利用ライブラリが実現されれば、機種毎に提供されているライブラリを利用することなく、プログラマから見てシームレスにあらゆるコンピュータが使えるようになるわけです。オブジェクト指向技術を利用することによって、ユーザから実装の詳細を隠蔽しつつ、高性能を提供できるでしょう。
また、システム構築の際に、性能向上の障害になる技術要素を発見、改善しなくてはなりません。そのためにハードウエア、ソフトウエア環境を含めたシステムの評価環境を構築する必要があります。ユーザには、その評価結果を自動的にフィードバックする環境を提供します。性能評価を通じて、並列オブジェクト指向プログラムの評価ベンチマークを策定します。
4. 進め方
では、このような技術を開発していくにあたり、どのような研究運営方法をとるべきかということを考えてみたいと思います(図11)。
本テーマでは、光技術、コンピュータアーキテクチャ、システムソフトウエア、アプリケーションの各分野で相互研究協力を行いますが、ハードウエアからソフトウエアまでを一つのシステムとして構築することを研究開発の目標とはしません。光、通信アーキテクチャ、ソフトウエアは、技術的にはお互いに階層的な関係を持っており、これらの接点を明確に定めることは必要ですが、なるべく独立に研究開発を進めていかないと非常に大きい遅延が生じるおそれがあり、そうなると現在の速い技術進歩をリードしていくことができない、というのがその理由です。
光技術、コンピュータアーキテクチャ、システムソフトウエア、アプリケーション技術は、技術的接点をもちつつ、かつ単独での研究としても意義あるものとして、それぞれ、次のような位置づけとします(図12)。
(1)
システムソフトウエアやアプリケーションの開発では、新規開発ハードウエア上でしか稼働しないソフトウエアの開発は行いません。むしろ、現在入手可能でかつ将来有望なCluster
of SMP型の製品上でモデルシステムの開発を進めていく予定です。
(2)
コンピュータアーキテクチャの短期的な、ここでは3年と設定しましたが、3年間の短期的課題は、既に商品化されているハードウエアの外部バス、つまりPCIバス等、あるいは内部バスに接続される次世代ネットワークカードおよびネットワークスイッチの研究開発とします。これにより、ソフトウエア研究グループが既存製品上で開発したソフトウエアを容易に移植できます。また、リアリティのあるソフトウエアに基づくアーキテクチャの性能評価は重要であり、コンピュータアーキテクチャ側にとっても望ましい形態であるといえます。開発されたモデルシステムが商品化されているシステム以上の性能を出して優位性が検証されることにより、次世代並列コンピュータシステムがcommodityとなり得るための基盤を築くことが可能となります。
(3)
光技術の短期的課題は、現在の超並列コンピュータ上のネットワーク性能あるいはその上である10Gbits/secの通信容量を持つ伝送モジュールを、コンピュータアーキテクチャグループに提供することです。
(4)
システムソフトウエアおよびアプリケーションの短期的課題は、SMP上および高速ネットワークで接続されたクラスタシステム上における研究とします。並列プログラムを支援するためのプログラミング言語の開発では、科学技術計算等におけるFortran、その他分散環境上のアプリケーションにおけるC++、インターネット、イントラネット上におけるJava等を基礎とし、オブジェクト指向技術を基とした並列分散オブジェクトによるプログラミングモデルを開発していきます。そして、それらの言語のためのコンパイラ、ライブラリの研究開発を行います。SMP上で稼働するオペレーティングシステムを基礎として、並列分散システムのための資源管理機能を実現していきます。これら資源管理機能を用いて、仮想スーパコンピュータを実現するシームレス環境ソフトウエアの研究開発を行います。
(5)
コンピュータアーキテクチャと光インターコネクションの長期的テーマは、将来OneChip集積度が向上した時のシステムアーキテクチャをどうするかと言う点です。この時、チップ間、ボード間、キャビネット間接続において光技術がどのようなメリットを引き出せるのか、それによってコンピュータアーキテクチャがどのように変わるのかについて共同研究を行っていくことになります。
(6)
システムソフトウエアおよびアプリケーションの長期的課題は、コンピュータアーキテクチャが実現する次世代ネットワーク上にシステムソフトウエアを実現し、モデルシステムの有効性を確認することです。
(7)
研究開発した成果として、単にモデルシステムの有効性を実証するのではなく、通信アーキテクチャ、ネットワーク、プログラミング言語、ライブラリ等における規格化を進め、普及の足掛かりを作ります。
以上、これまで議論されてきていますシームレスシステムの開発計画について紹介致しました。
|