研究概要 |
本研究課題では、プログラムの並列性がOpenMPを用いて記述されたプログラムの効率よい並列実行を実現するために必要なOpenMPコンパイラにおけるスケジューリング機構に関する研究を行うものである。 本年度は現在普及しつつあるPCクラスタをターゲットに、プログラム全体を粗粒度タスクに分割し、マクロタスクの並列性が実行開始条件として表現されている際に、そのマクロタスク集合間のテータ授受の関係をMPIライブラリ関数により記述し、並列実行の際に必要となる処理と通信のスケジューリング方式に関して実装を完了し、実際の並列計算機上で評価を行った。プログラム中のマクロタスクは条件分岐文等により全てが実行されるとは限らずマクロタスクのスケジューリングをコンパイル時に静的に行うのが困難であるため、ダイナミックスケジューリングを用いる。本方式ではそのダイナミックスケジューリングのためのスケジューリングコードをプログラム中に挿入している。本方式の評価では、本方式を本研究補助金にて購入したSMP型の並列計算機クラスタなどに実装し、スケジューリングと通信のオーバーヘッドを評価した。その結果、本方式で並列処理効果が得られると共にその際のスケジューリングのオーバーヘッドと通信の粒度の関係が明らかになった。さらに本年度は,データ転送オーバーヘッドを隠蔽するためのデータプリロードおよびソフトウェア分散メモリシステム(S-DSM)を用いた実装をも進め,実際の並列計算機上で評価を行い,その有効性を検証した. また,上記の研究成果を学会にて発表を行った.
|