研究概要 |
並列プログラム作成の生産性を上げるためには,並列プログラムを高い抽象度でアーキテクチャ独立に記述することが重要である.すなわち,並列プログラムの設計時には,利用可能なプロセッサ数・配列データの分散メモリへの分割・通信・同期命令などの物理的リソースに関する指示を行なわずに,並列プログラムを高い抽象度で,論理的側面にのみ注目して記述すると効果的である.そして,オブジェクト・プログラムの実行効率を上げる段階で,そのような物理的リソースの設定を考える.この方針に沿って,本研究ではワーク・タイムモデルをサポートした拡張C言語であるデータ並列言語Work-TimeCの処理系の基礎的アルゴリズムの開発,処理系の開発,および性能解析ツールを作成した.処理系は2つの方法で作成した.ひとつは,実行効率に大きく影響する配列データの分割指示をユーザが行い,オブジェクト・プログラムとしては同じプログラムを各プロセッサで実行するSPMD(Single Program Multiple Data)形態の処理系で,もうひとつは,分割指示をユーザが行わず,異なるプログラムを各プロセッサで実行するMPMD(Multiple Program Multiple Data)形態の処理系である.両者ともプロセッサ間通信は,多くのプラットフォームで実行できる通信ライブラリMPI(Messag Passing Interface)を用いている.したがって,オブジェクト・プログラムは分散メモリ型の並列計算機やCOW(Collection of Workstations)で実行可能である.現在の並列計算機アーキテクチャはMIMD(Multiple Instructions Multiple Data)型であるので,MPMD型プログラムの方が実行効率のよく走る可能性があり,実際に本研究で対象とした問題に関しては,商用のSPMD型処理系より効率よく実行でき,MPMD型処理系への期待を示せた.また,前者の処理系に再帰プログラムを実行する機能を追加した.
|