Budget Amount *help |
¥1,900,000 (Direct Cost: ¥1,900,000)
Fiscal Year 2008: ¥900,000 (Direct Cost: ¥900,000)
Fiscal Year 2007: ¥1,000,000 (Direct Cost: ¥1,000,000)
|
Research Abstract |
前年度に引き続き,動的負荷分散による並列計算のためのフレームワークTascellの開発を行った.Cilk,X10,Fortress,Intel TBBなどにおける動的負荷分散は,多数の論理スレッドを生成してそれらを適切にコアに割り当てることで実現される.これに対しTascellのフーカは,他のワーカからタスク要求を受けない限り逐次計算を行う.要求を受けると,ワーカは一時的にバックトラックを行うことでタスク生成が可能な時点の状態を復元した後,タスク生成を行う.この手法により,論理スレッドの生成・維持コストは完全に無くすことができるほか,スレッドごとに作業領域を用意する必要がないため,参照局所性が向上する.さらに,バックトラック探索アルゴリズムにおいては,作業領域のコピーの遅延によりさらなる性能向上が実現でき,プログラムもC言語を拡張して設計したTascell言語を用いて容易に記述することができる.Tascell処理系は異機種混合な分散環境にも対応しているが,計算ノード間の通信の実装の工夫が不十分であり,特に行列の乗算やLU分解のような通信量が大きいアプリケーションにおいては,スピードアップを得ることができなかった.本年度は,特にこの問題に取り組み,ワーカが外部ノードからのタスクをプリフェッチしておく手法や,親ワーカが持つデータの受信を必要時まで遅らせる手法を実装した.特に後者の手法では,行列乗算において,性能が改善されることを確認した.ただし,これらの手法を利用するプログラマ向けの言語機能は設計できていないなどの問題が残っており,今後の課題として取り組む予定である.本手法はT2Kスパコン上でも評価を行い,16コアという多コア環境においても十分なスケーラビリティを得られることを確認した.これまでの成果については,主要な国際会議で発表したほか,Webページでの公開も開始した.
|