提案している要求駆動型負荷分散フレームワークTascellの,実用性向上のための開発を進めた.本年度の研究では,N体問題で用いられるBarnes-Hutアルゴリズムを対象として,Tascellのワークスティーリング機能とMPIライブラリの集団通信を組み合わせた実装の改良を行った.従来行っていた木情報のブロードキャストに加え,各ノードの計算結果もMPIの縮約通信で行うようにすることにより,従来のプログラムよりもクラスタ環境における計算性能が大幅に改善されることが確認できた. また,計算の分割数の増大に伴うオーバーヘッドの増加を抑えるため,ユーザが与えた確率式に基づいてワークスティールを阻止する「確率的ガード」の言語機能を開発した.本機能は,通常用いられる「閾値」によるワークスティールの抑制(自らの残りの仕事がある閾値より小さいと判断すればワークスティールを受け付けない)とは異なり,潜在的な並列性を失わずに確率的に仕事の分割単位を大きくすることができる.実際,Barnes-Hutアルゴリズムやいくつかのマイクロベンチマークにおける評価によって,特に分割のコストが大きいアプリケーションにおいて「閾値」による手法より良好な性能が得られることが確認できた.なお,この機能は広域分散環境等,スティールのコストが大きくなるような実行環境においても有効にはたらくことが期待できる. 創薬分野で用いられる部分グラフ探索問題のアプリケーションについては,枝刈りを行いつつ並列に正しく探索を実施できるアルゴリズムおよびその実装方針を検討し,ノード内並列・ノード間並列の双方でTascellを用いて効率良い実装が可能であることを確認した.
|