Research Abstract |
従来の事例ベース並列プログラミングの研究で,事例を修正して新規並列プログラムを作成する際,スレッド,同期に関する部分に比べて,タスク分割部分の再利用度が低いことが問題であった.本研究では,この問題を解決するために,タスク分割について並列アルゴリズムクラス毎に詳細な分類を行い,それを基にタスク分割の部品化を検討した. タスク分割の分類は,事例用に作成された並列プログラム22個を,4つの並列アルゴリズム毎に分析して行った.従莱の分類ではブロック,サイクリック,コピーの3種類に分けられていた(分類レベル1).この他に,分割方法に関するより詳細な情報(単純/重複,固定/可変,分割数など)を示す分類レベル2,:及び分類レベル2に応じて必要なデータを示す分類レベル3を新たに設けた.これらの分類の導入によって,事例検索の精度が上がり,より類似した事例を検索できるようになった. また,事例ベース内の類似した並列プログラムから修正する場合,その並列プログラムの構造を熟知していなければならないため,大きな手間がかかっていた.そこで,並列プログラムの骨格以外の不要部分を削除し,削除部分には何の記述をすべきかのコメントを付加したプログラムスケルトンを自動抽出するプログラムを作成した.プログラムスケルトンでは,必要不可欠な骨格部分だけを残しているので,プログラムの大まかな構造,流れをつかみやすく,また,余計なソースコードが省かれているので,後は,その骨格に各問題に固有の単位計算部分を追加するだけとなっている.これによって,事例修正における手間が大幅に削減できた.
|