右の図これまで学部生が実施した卒業課題の成果の一部です.
超並列計算機は多数の計算ノードを相互結合網(ネットワーク)で接続したものです.最新の超並列計算機は数十万の計算ノードが複雑な相互結合網で結合された構造をしています.複雑化する超並列計算機を効率良く設計するため,また,製造された超並列計算機の性能を100%活用するためには,計算ノード間の通信を最適化する必要があります.通信の最適化に欠かせないのが通信シミュレータです.
従来のシミュレータは現実の並列計算機をより 忠実に再現することを第1の目的としているため,非常に精度が 高い反面,シミュレーションの実行には長い時間と個人で買えな いような大規模なコンピュータが必要です.このようなシミュレー タは自分が開発した仕組みを少し試してみたい時などにはとても 不便です.この問題を解決するため,石畑研究室では超並列計算機向け通信シミュレータ Message Flow Simulator (MFS) を開発しました.従来のシミュレーションはデータを粒に例え,これを1粒づつ再現していました.MFS はデータの通信を水のような流体の流れ(Flow)として扱います.これにより,MFS はシミュレーションの精密さを選択的に低下させる一方で,家庭用パソコン程度の性能のコンピュータを使って,従来のシミュレータの数十分の1の実行時間で超並列計算機のシミュレーションを実行できます.
右の図は並列計算機上で信号処理等を行う場合によく発生する通信のシミュレーションを MFS で実行したものです.
全対全通信とは,全てのノードが他の全てのノードに対して,それぞれ異なった内容のメッセージを送信する通信パターンです.行列の転置,FFT など多くのアプリケーションで頻繁に使用されます.全対全通信は,通信ネットワークへの通信負荷が高いので,ネットワークの持つバンド幅を最大限に引き出す通信アルゴリズムの実現が重要となります.
石畑研究室では,2 次元の Mesh および Torus ネットワークにおいて,複数のメッセージを同時送信可能な通信 コントローラをもつシステム向けに,全対全通信を最適に実行す るアルゴリズム A2AT (All-to-all for Torus) を開発しました.既存のアルゴリズムを使用した場合に比べて通信時間を短縮する事が可能です.
従来のアルゴリズムでは,同一方向への通信が連続するため,その方向の通信路がネックとなって全体のバンド幅を有効に利用できない状況が起きていました.A2AT では,ノードに接続された通信路のバンド幅を最大限利用することを考え,図の様に,1 つのノードから行われる通信を同一方向に連続しないよう,通信をスケジューリングします.
超並列計算機を有効に利用する上で高性能な 通信アルゴリズムは欠かせません.石畑研究室では,アルゴリ ズムの振る舞いを種々の方法で可視化し,高性能のアルゴリズム開発を効率化しようとしています.
右の映像は,上に述べたA2ATアルゴリズム(上)と従来のアルゴリズム(下)による全対全通信を17x17構成の2次元メッシュネットワーク上で実行した時のネットワーク上の様子を可視化したものです.各リンクの使用率が青(0%)〜緑(100%)で表示されています.青〜赤方向の色づけは,そのリンクの待ち時間の割合を示しています.つまり,赤色のリンクは,データの中継点のバッファが不足しているため,データを送りたいのだけれどバッファが空くまで待っていたため,リンクの使用率が0%であることを示しています.