本年度は、準備型集団通信インタフェースのプロトタイプを実装し、評価した。このプロトタイプは、準備型集団通信インタフェースの特徴である、プログラム中の呼び出し位置毎に集団通信の管理用データ構造を構築することが出来る点を活かし、繰り返し呼び出される集団通信について、呼び出し位置毎に、最適なアルゴリズムや実装手段を選択する、動的選択機構を持っており、これにより、例えば負荷バランスの変化や、通信速度の変化等、実行中の状況の変化に応じて最適な実装を選択することが出来る。 また、このプロトタイプは、MPI 3.0で利用可能となった MPI Tool関数を利用し、集団通信毎の繰り返し数や、集団通信と並行して実行される処理の内容等、プログラムに関する詳細な情報を受理することが出来る。そのため、この情報をもとに、動的選択を行うのに十分な繰り返しがなされるかどうか、や、非ブロッキング集団通信の推進機構として、どの手段が有効か、等の判断を、準備関数内で行うことが出来る。 さらに、このプロトタイプでは、実行中の状況の変化を検知する機構を、片側通信を用いて実装した。片側通信は、プロセス間で同期すること無くデータを転送できる。性能の変動を検知したプロセスは、この片側通信を用いてサーバプロセスに通知する。一方サーバプロセスは、性能変動の通知が一定以上集まった時点で、アルゴリズムの再選択を開始する。この機構により、少ないオーバヘッドで状況の変化を検知し、対応することが出来る。 このプロトタイプの動的選択機構の効果を、九州大学の高性能演算サーバを使って評価し、実行中の負荷バランスの変化に対応できることを確認した。なお、動的選択機構において、いくつかの実装を試行する処理のオーバヘッドが問題となる場合があることがわかった。
|