研究概要 |
本研究では,与えられた仕様に基づき、使用可能な演算器数(すなわちコスト)に制約を与えた上で、極力高速な非同期式プロセッサが実現できるような静的演算器割当て法を得ることを目的に、昨年度に行った既存アルゴリズムの制約緩和に引き続いて、本年度は最適化法の局所性緩和を行った。 従来の演算器割当て最適化法では、プロセッサの実行ステップごとに演算器の割当てを行う際、そのステップの直前の演算との依存関係にのみ着目して割当ての最適化を図った。しかし、各演算の実行時間が一定の確率分布にしたがって変動するという仮定下にある非同期式プロセッサでは、同じ実行ステップであっても,演算開始時刻の同期が取られるわけではない。このため、次ステップへの影響の大きい演算ほど、早く利用可能となる可能性の高い演算器を割り当てることが有効である。 そこで、本研究では、このような割当てを導出する以下のようなアルゴリズムを開発した。まず、ステップi-1の割当てが完了するごとに、実行時間の確率分布を用いてそのステップまでの各演算の平均完了時刻を算出する。次に、ステップiの各演算について、それ以降のステップへの影響度として、ステップi+1の演算のうち、依存性のある演算の個数を求める。そして、ステップiの演算集合と演算器集合を結ぶ完全2部グラフを作成して、これらの指標をもとに各枝に重みを割り振り、最大重みマッチング問題を解くことによって、ステップiの割当てを決定する。 この割当てアルゴリズムをいくつかのベンチマークに対して適用してみた。従来法では、ランダムな割当てを10000回試行した場合に、それよりよい割当てが10%前後得られていたのに対し、本方法では、それを上回るランダムな割当てはたかだか1-2個しか存在せず、繰り返しの試行をすることなく最適に近い割当てが得られ、効果が大きいことがわかった。
|