Why do we need "Auto-Parallerized Compiler"?
現在の並列計算機でプログラムをするには、おもにその計算機特有の
命令をもちいて並列化プログラムを書かなければなりません。
しかし、効率良い並列プログラムを書くのは実は大変に困難なもので、
その計算機の特性などさまざまな要素に精通しなければなりません。
そこで、従来の通常のプログラムを書けば、それを自動的に並列実行可能}な
コードに変換してくれる自動並列化コンパイラが必要となってきます。
What's the Scheduling of multi-grain para-processing?
コンパイラによるスケジューリングとは、各プロセス(タスク)をどの
プロセッサに割り当て、
どのような順序で計算処理を行ない、
プロセッサ間通信を行なうかというものです。
スケジューリングには、
- コンパイル時にあらかじめスケジューリングする、静的スケジューリング(実行時のオーバーヘッドが小さい)
- 実行時に行なう動的スケジューリング
があります。
本プロジェクトでは、主に静的スケジューリングに的を
絞っています。
しかし、コンパイル時にスケジューリングするためには、予め各タスクの実行時間や、通信時間などがはっきりしていなければなりません。
このために、実行時間や通信時間をきちんと保証できる
並列計算機というものが必要になるのです。
では、この静的スケジューリングができるようになると
何が嬉しいのでしょうか?
これが可能となると、効率良い順序でタスクを実行できるだけでなく、
今まで並列計算処理において
冗長であった同期操作のほとんどが不要となり、
無同期実行というものが可能になり、処理速度を向上させることができるのです。
ちなみにどんなにハード性能が高いマシンであっても、この
スケジューリングがうまくできないと、処理は速くなりません。
Proj.ASCAの紹介ページに戻る