分散メモリ型マルチプロセッサにおいては,通信オーバーヘッドの問題から,各プロセッサが頻繁に参照するデータをそのローカルメモリに局所的に配置するデータ配置最適化が極めて重要である. しかしながら,科学技術計算アプリケーションでは,ループ中で複雑な配列参照が行われるため,コンパイル時にその参照パターンを明確に把握するのは難しく,十分にデータ配置最適化を行うことが困難である.
本発表では,実行時に取得した配列の参照情報を利用した最適化手法を用いることにより,ループ中の配列変数に対する適切な配置最適化を施すことを目指す.
科学技術計算用プログラムでは,ループ中の配列参照に周期的な参照が見受けられる. そこで,配列要素に関する参照周期,および位相の情報を利用して,配列データを分割し,分散メモリへの配置を検討する. 配列参照の周期性の算出は,プログラム実行時に配列参照に関するログを採り,そのログを解析することにより,配列の参照周期を算出した.
上記の手法により,周期性参照を伴う配列変数に対するデータ参照局所化を目的とした分割配置最適化を図る.