研究概要 |
本年度はこの研究課題に対して、主に以下の研究を実施していった。 1.通信を一括化する(Message Vectorization and Aggregation)ためには、データアクセスパターンがコンパイル時に決定されていなければならない。配列の添字が配列となっている(間接アドレッシング)ような場合、コンパイル時にソースとターゲットプロセッサを決定できない。現在はこのように実行時にデータアクセスパターンが決定されるものに対してInspector/Executor方式に基づく方法が使われている。Inspector/Executor方式では通信すべきデータ決定のための情報のやりとり通信が余計に必要となってしまい、通信データを実行時に決定しなければならない。本研究はまず、不規則問題の通信を高速化するため、コンパイル時にSymbolic Analysis方法を利用し、不規則問題のループに対してできるだけコンパイル時にプロセッサ間の通信データ集合を生成され、通信を一括化した。本研究が開発したアルゴリズムに基づく不規則問題の並列コードは、既存のランタイムを利用して変換したコードより、効率が大幅に上がることを実験でしめされた。 2.不規則コードに対する効率的なループパッティション方法。本研究は新たなループ分割方針、least communication compute ruleを提案した。ループのiterationをプロセッサに分割し実行すると、(1)プロセッサ間の通信ステップは最小と、(2)すべて通信のデータ量は最低を保障する。我々のアプローチとしては、不規則ループに対して、通信集合FanIn(Pk), FanOut(Pk)に基づき、ループ実行時通信最小化のオーナープロセッサを求められる。つぎに、iterationの実行するプロセッサを決定する次第に、添字配列の再分割、再分割時の通信スケジューリング、及びノードプログラムの形式を提案した。最後、実験によってこのループ分割方針が他のルールより性能がよいことを明らかに示した。
|