本研究は、これまでの基礎研究で開発した細粒度と粗粒度タスクの並列処理方式を階層的に組み合わせた、プログラム全域にわたる階層的並列処理を実現する自動並列かコンパイラに関する研究を行ったもので、研究実績は以下のとおりである。 (1)細粒度並列処理と粗粒度並列処理の階層化方式の考案 階層的並列処理は粗粒度タスクをプロセッサクラスタへ割り当て、プロセッサクラスタ内のプロセッサ群を利用して細粒度並列処理を行なうものである。細粒度並列処理においてはスタティックスケジューリングによりタスクをコンパイル時に静的にプロセッサに割り当てており、コンパイル時に割り当てが行なわれることを利用して、同期コードの挿入およびその最適化を行なっている。一方粗粒度並列処理においてはマルチプロセッサスケジューリングアルゴリズムを応用したダイナミックスケジューリング手法を用いることにより、実行すべきタスクが実行時に決定されるという問題に対処している。このため細粒度並列処理において必要となる同期情報をハードウェア同期機構に挿入することをプログラム実行時に動的に行なう必要がある。本研究ではSBM同期機構を用いる細粒度並列処理のための同期方式を考案した。 (2)階層的並列処理を実現する自動並列化コンパイラの開発 上記方式を実現する自動並列化コンパイラを作製いた。対象プログラミング言語はC及びHigh Performance Fortranである。本コンパイラでは逐次中間コードを生成の後、並列性解析を行ない、並列中間コードを生成する。また細粒度並列処理のための同期コードおよび粗粒度並列処理のためのダイナミックスケジューリングコードもコンパイラが生成する。これより実行時ののオーバーヘッドを軽減することが可能となる。なお、本コンパイラは大規模なソフトウェアとなるため、ワークステーションを利用した複数人数による開発となるが、本補助金で購入した設備により開発した。 (3)実マルチプロセッサシステム上での有効性評価 申請者が既に開発している実マルチプロセッサシステム上で本方式により各種アプリケーションプログラムを並列処理し、本自動並列化コンパイラによる並列処理の有用性を検証した。 (4)研究成果のまとめと学会発表 以上の成果をまとめ学会において発表を行なった。このための出張費を本補助金により支出した。
|