next up previous
Next: ソフトウェアの成果 Up: 研究上の成果 Previous: 並行論理プログラムのOccur-check解析

制約に基づく解析の最適化への応用

並行論理型言語KL1の処理系の1つであるKLIC処理系は、中間言語としてC言語を 採用することにより移植性を高め、またtagビットを用いて表現されるデータを 用いた記号処理を効率よく行える。その一方で、大規模な数値演算処理に関して は、数値を表わすデータにも例外なく付けられるtagの処理にかかる時間が大き くなるため実行効率が悪い。そこで本研究では、静的なプログラムの解析手法で あるモード解析や抽象解析を導入して変数の状態を調べ、解析により得られた情 報を中間コードに反映させてtag操作を削減し、さらにループ処理の最適化も導 入することにより、数値処理の効率を改善できることを示した。数列の和 n=10000について計算するようなKL1プログラムに 対し、ループ最適化を適用した中間コードを作成したところ、最適化を行わない 場合と比べて7.2倍の速度向上を得た。また、数値処理向けの配列データ型を実 装し、従来のベクタを用いる場合と比べて、100×100 の正方行列同士の乗算に おいて1.3倍の処理効率の改善効果が得られた。これに上述のループ最適化を併 用するとさらに8.5倍の効率向上が得られ、C言語で書き下した配列乗算プログラ ムと比べても 1 : 1.34 の性能比を達成することができた。



next up previous
Next: ソフトウェアの成果 Up: 研究上の成果 Previous: 並行論理プログラムのOccur-check解析



www-admin@icot.or.jp