2007 Fiscal Year Annual Research Report
Project/Area Number |
07J02782
|
Research Institution | Kyoto University |
Principal Investigator |
平石 拓 Kyoto University, 情報学研究科, 学振特別研員(PD)
|
Keywords | 並列処理 / プログラミング言語 / クラスタ / グリッド / マルチコア / 負荷分散 / プログラム変換 / バックトラック |
Research Abstract |
共有メモリ環境および分散メモリ環境の双方で利用可能な並列計算用フレームワークTascellを開発した. Tascellは動的負荷分散に基づく並列計算をサポートする.従来の動的負荷分散の実現手法は,並列実行可能な論理スレッドを多く生成しておき,それらをoldest-firstでアイドルなワーカに割り当てていくというものが一般的であった.我々の手法はこれとは異なり,論理スレッドを利用しない.Tascellのワーカは普段はスレッド生成を行うことなく計算を進めていき,他のワーカからタスク要求を受けると初めて自らの計算の一部をタスクとして生成し,要求元に送る.このときワーカは,タスク生成を行うために一時的にバックトラックを行うことでタスク生成が可能な状態を復元する.この手法により,論理スレッドの生成・維持コストは完全に無くすことができる.また,従来のマルチスレッディングでは,論理スレッド生成時に,そのスレッドの計算に必要な作業領域を予め割り当てておく必要があったが,Tascellのワーカはタスク分割が起こらない限り一つの作業領域を使い続けることができるため,参照局所性が向上する.さらに,バックトラック探索アルゴリズムでは,作業領域のコピーを遅延することでさらなる性能向上が実現でき,そのプログラムも提案手法に基づいて設計したTascell言語を用いて簡潔に書くことができるようになる.実際,16女王問題の全解探索を,2つのデュアルコアプロセッサを持つ計算機でCilkの1.86倍早い時間で解くことができた.Tascell言語のプログラムは,共有メモリ環境・分散メモリ環境のいずれにおいても単一のプログラムで動作する.共有メモリ環境においてはほとんどのアプリケーションについて,分散メモリ環境においてもLU分解のような大量のデータ通信を伴うアプリケーション以外では高い性能・スケーラビリティを示す.
|
Research Products
(4 results)