研究概要 |
本研究では,関数型プログラムの並列グラフ簡約における動的タスク割り当て手法として,幅優先/深さ優先タスクスケジューリング法を提案した.本手法は,基本的に幅優先モードを用いることによってプロセッサの有効利用を可能とし,さらに深さ優先モードとの切り替えを動的に行うことによって大域的なメモリアクセス頻度を抑制し,プロセッサの負荷バランスを調整することを狙う.また,簡約グラフ上の最小の可簡約項をタスクとして検出し,プロセッサへ割り当てることによって,タスク配置のオーバーヘッドを従来のLIFO/FIFO法を用いた場合に比べ低く抑えることができると考えられる. 提案したタスクスケジューリング手法を評価するために,設備備品費で購入した専用のワークステーション上で関数型言語FLの階層化並列グラフ処理系を構築し,シミュレーション実験による性能評価を行った.はじめに,階層化された各メモリ要素へのアクセス回数を計測した結果,データ参照の局所性を考慮した幅優先/深さ優先タスクスケジューリング法によて,大域的なメモリアクセスを大幅に減少することが示された.さらに,単一プロセッサシステムに対するプログラム実行のスピードアップ率を計測した結果,プロセッサ並列度に近づいていることが示され,プロセッサ資源が有効に利用されていることが分かった.データ参照の局所性の有効利用は,各プロセッサがローカルメモリを持つ共有メモリ型マルチプロセッサシステムにおいて,大域的なメモリトラフィック量を飛躍的に減少させることが明らかになった.
|