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