内容要旨 | | 現在,並列計算機は科学技術計算の分野をはじめ,さまざまな分野で利用されている.しかしその形態は,特定のアプリケーションに依存したものや,数〜数十のプロセッサを結合した小規模なものに限定されており,多様な用途に使われる大規模な並列計算機はまだ実用化の段階には至っていない.そこで本研究では,多様な用途に対応した並列計算機の構築可能にするためのノード間接続方式について研究を行なった.その結果,1)アドレス変換を利用した,複数ユーザをサポートしより一般的な並列計算機の構成を可能にするネットワーク仮想化機構,2)さまざまなアプリケーションに対して最適な通信方式を自動的に選択するキャッシュプロトコルであるダイナミックプロトコル方式,3)ハードウェアによるノード間通信ユニットの実装および評価の3つの成果を得た. 従来,並列計算機のノード間接続方式としては,相互結合網アーキテクチャを差す場合がほとんどであったが,本研究ではノードと相互結合網を結ぶ「ノード間通信ユニット」の重要性を明らかにし,より高速・高性能なノード間通信を実現するためのノード間通信ユニットのアーキテクチャについて検討を行なった.これまでの並列計算機でのノード間通信ユニットとしては,DMAやFIFOなどの単純なメッセージパッシング用インタフェースか汎用プロセッサである場合が多かったが,それでは将来的に並列計算機に必要とされるマルチユーザ機能や高速な通信処理に対応できない.そこで本研究では,高速かつ高機能を実現するためのノード間接続ユニットとして専用ハードウェアを採用し,それをNetwork Interface Unitと名付けた.そしてNetwork Interaface Unitが持つべき機能としてa)高速な通信,b)分散共有メモリ,c)複数ユーザのサポート,d)高速なメモリ処理,e)低レベルネットワーク処理をあげ,これらの機能を効率良く実現するアーキテクチャについて検討を行なった. ネットワーク仮想化機構は,Network Interface Unitの機能のうちc)複数ユーザのサポートに対応するものである.ネットワーク仮想化機構は,アドレス変換を利用してネットワークノード番号変換を行ない,各ユーザに対してそれぞれの論理ノード空間を提供するものである.この手法は,ソフトウェアによる同様の変換に対して,高速な変換が可能であり,ハードウェアトラップによるユーザ間のプロテクションも実現できる.また,ハードウェアで実装することによってキャッシュなどのノード間通信の高速化機構とも共存することが可能である.この機構を応用すると,1)相互結合網上の物理的な複数のノードに対して論理的に1つのノードを割り当てることによって,ノードと相互結合網間のスループットをソフトウェア的に変更する方法(ノード番号エイリアス),2)ユーザに対して物理的なトポロジとは違う論理的なトポロジ空間を提供するトポロジ変換機能などを提供することができる.シミュレータを用いた評価では,ノードと相互結合網間のスループットがボトルネックになっているアプリケーションにおいてノード番号エイリアスを用いると,適切なスループットを選択することができ,アプリケーションの実行速度を向上できることが確認された. 並列計算機では,通信を高速に行なうことが特に重要な課題である.特に,ハードウェアで実現するために比較的軽い処理であるとはいえ,ネットワーク仮想化機構などの高機能通信方式を組み込んだ場合,それが通信の速度低下につながることもあるため,これまで以上に通信の高速化が重要になってくる.ノード間キャッシュは,この通信のレイテンシを隠蔽する手段として有効な手段である.しかし大規模な並列計算機におけるキャッシュには,コンシステンシ管理という問題が存在し,これまで実用的なシステムで用いられたことはほとんどなかった.本研究では,まず従来のキャッシュシステムの評価を通じて,大規模な並列計算機にノード間キャッシュを適用した場合の問題点を明らかにした.分散メモリ型並列計算機でのキャッシュコンシステンシ管理方式には,主にディレクトリ方式が用いられるが,このディレクトリをどのように構成するかにさまざまなバリエーションがある.本研究では,シミュレーションを行ない,相互結合網の階層構造を利用したディレクトリ保持方式の利点として,1)ディレクトリが少数のビットですむ,2)相互結合網の機能を利用して高速なコンシステンシ管理を行なうことができる,3)Acknowledgeのコンバイニングを行ない,相互結合網の負荷を低減することができるという点を明らかにした.また同じシミュレーションにおいて,同時にコンシステンシ管理の際にはアプリケーションに適したコンシステンシ管理プロトコルが重要となることも示した. 従来のノード間キャッシュでは,コンシステンシ管理プロトコルとして,単純な無効化型プロトコルを用いるか,ソフトウェアで最適なプロトコルを埋め込むという方法が主に用いられてきた.しかし単純な無効化型プロトコルでは,それに適していないアプリケーションに適用すると,かえって効率が落ちることもある.またソフトウェアによってプロトコルを指定する方法では,ユーザに指定させる場合はプログラマに余計な負担をかけ,コンパイラで自動的に判断する場合は最適なものを見つけにくいという問題があった.ダイナミックプロトコルは,アプリケーションに応じて,ハードウェアで自動的に,動的な最適コンシステンシ管理プロトコルを選択する方式である.ダイナミックプロトコルは,Self-InvalidationとAuto-Invalidationの2つの方式から構成される.ダイナミックプロトコルでは,基本的には更新型をベースとしたコンシステンシ管理を行ないながら,コピーノード(Self-Invalidation)およびホームノード(Auto-Invalidation)で,メモリのアクセスパタンの解析を行なう.解析の結果,無効化型に適しているデータを見つけ出した場合には,そのデータのコンシステンシ管理プロトコルを無効化型に切替える.この方式を用いることによって,ユーザプログラムはキャッシュプロトコルを意識する必要がなく,データに応じた最適なプロトコル選択を行なうことができる.本研究ではこのダイナミックプロトコルの有効性を確認するため,実用的なアプリケーションを実行することができる並列計算機シミュレータを構成し,評価を行なった.その結果,無効化型に適したアプリケーションでは無効化型に対して,更新型に適したアプリケーションでは更新型に対して,それぞれ遜色ない性能を示した.また無効化型に適したアプリケーションでは更新型よりも,更新型に適したアプリケーションでは無効化型よりも,はるかに高速にコンシステンシ管理を行なうことができることも明らかになった. 最後に,本研究で提案するNetwork Interface Unitの実用的有効性を確認するため,Network Interface Unitの核となるメモリアクセスブロックをハードウュアに実装した.この実装は文部省重点領域研究「超並列原理に基づく情報処理基本体系」で開発中のJUMP-1およびJUMP-.5に用いられるMMC(Main Memory Controller)という,実際の並列計算機システムに組み込まれる形で行なわれた.MMCはCMOSゲートアレイで実現され,ハードウェア記述言語VHDLで記述されている.VHDLシミュレーションによるMMC単体の性能評価では,メモリブロックの読みだしレイテインシが最小25クロック,メモリ読み出しのスループットは最大160Mbytes/secであることがわかった.このことから,専用ハードウェアで構成されるノード間接続ユニットの実現性,およびそれが充分実用的な性能を発揮できることがわかる.また,システムに組み込まれた場合の性能として,JUMP-1のMBPの性能評価を行なった.その結果,MBPと同様の機能をもつ市販のシステムよりも,ゲート数的,速度的にも優れていることを確認した. |