@phdthesis{oai:tsukuba.repo.nii.ac.jp:00008652, author = {横田, 大輔 and Yokota, Daisuke}, month = {}, note = {自然科学の分野で用いられるシミュレーションプログラムの実行には莫大な時間がかかる. しかし, このようなプログラムは実行時間に比べてコード長が短く, 特定の部分を莫大な回数繰り返す. この特定の部分は実行時間を決定する要因になるので, この箇所を強力に最適化することは極めて重要である. そこで, このようなプログラムをコンパイルする際, 莫大な回数繰り返される部分に時間がかかっても効果的な最適化を施すコンパイラが必要である. また, このようなプログラムは通信がボトルネックになっていることが多く, 通信を最適化することが重要である. 本研究では実行時の情報を用いることで, 容易にプログラミングでき, 効果的にハードウェアを利用するコンパイラを実装した. 本研究のコンパイラは実行時の情報を得るために, インスペクタ-エグゼキュータ手法を利用する. た, 本研究のコンパイラは実行時の情報を用いて行うことが困難な最適化を行なった. 例えば, 実行時の情報を用いた定数の畳み込みのようなコードの最適化, パラメータが定数的でかつ繰り返し用いることでオーバーヘッドが削減できる通信機構の利用などである. これらの最適化のためには, コード生成時に実行時の情報が必要になる.本研究では実行時の情報をコンパイル時に利用するために, ソースコードからコンパイル中に実行時の情報を集めるための専用コードを生成するようにした. こ れをコンパイル中に実行することで, 実行時の情報をコンパイル時に利用可能になした. 本研究で実際に実装したコンパイラは2 種類あり, 1 台のPC 上で動作するものとPC クラスタで動作するものがある. 1台のPC 上で動作するコンパイラは簡便 で高速なコードを生成するが, 受理できるプログラムにいくつか制限が加わる. PCクラスタで動作するコンパイラはより制限が加わらない分汎用的である. また, 開発したコンパイラがどの程度の性能があるのか確認するために, いくつかベンチマークを用いて実験を行なった. 本方式の1PC 版は人間のプログラマが最適化したMPI のコードに比べてpde1 ベンチマークで86%の速度, PCクラスタ版は人間のプログラマが最適化したMPI のコードに比べてpde1 ベンチマークで73% の速度を得られた., 2002, 付: 参考文献}, school = {筑波大学, University of Tsukuba}, title = {実行時の情報を用いてプロセッサ間の通信を最適化するコンパイラ}, year = {2003} }