2000 Fiscal Year Annual Research Report
自己反映言語による並列・分散アプリケーション記述の改善
Project/Area Number |
11780196
|
Research Institution | The University of Tokyo |
Principal Investigator |
増原 英彦 東京大学, 大学院・総合文化研究科, 講師 (40280937)
|
Keywords | 自己反映計算 / 部分計算 / 実行時特化 / Javaバイトコード / Just-In-Timeコンパイラ / 最適化 / 束縛時解析 |
Research Abstract |
自己反映言語を効率的に実行するための技術である部分計算について研究を進めた。具体的には、部分計算の一種である実行時特化について生成されるコードをより効率的なものとする、バイトコード特化(BCS)の枠組を提案し、Java仮想機械を使ったプロトタイプを構築した。 この技法では、機械語上で特化を行うかわりに、一度仮想機械語上で特化を行い、それを最適化された機械語命令列へ変換することでより効率的なプログラムを生成する。また、コンパイルされた仮想機械命令列を直接解析して特化器を作成することで、ソース言語に依存しない技術となっている。 今年度は特に、作成したプロトタイプを用いて、実行時に特化されたプログラムの性能評価を行い、特化に要する基本的なコストおよびアプリケーション全体の性能の向上の程度を測定することができた。測定対象のアプリケーションとしては、数式を対話的に入力し、それをもとにマンデルブロ集合を描画するものを用いた。 Sun Microsystems社製のJava SDK 1.2をSun Enterprise 4000上で実行した場合の実験では、 ●特化対象となるメソッドは、提案したシステムによって約3〜4倍高速化された。 ●実行時に特化されたメソッドと予めソース言語レベルで特化されたメソッドは、ほぼ同じ性能を示す。 ●特化に要するオーバーヘッドは約2.7〜3.1ミリ秒であった。さらに特化されたメソッドをJITコンパイルするための1.3〜150ミリ秒のオーバーヘッドがかかる。 ●特960〜72,000回(使用するJITコンパイラに依存する)の繰り返し実行によって上記オーバーヘッドと特化による速度向上が均衡する。 といったことが分かり、提案した手法の有効性と問題点が明らかになった。
|
Research Products
(4 results)
-
[Publications] H.Yamauchi,H.Masuhara,D.Hoshina 他: "Wrapping Class Libraries for Migration-Transparent Resource Access by Using Compile-Time Reflection"Workshop on Reflective Middleware (RM2000). 19-20 (2000)
-
[Publications] Hidehiko Masuhara and Akinori Yonezawa: "An Object-Oriented Concurrent Reflective Language ABCL/R3 : Its Metalevel Design and Efficient Implementation Techniques"Object-Oriented Parallel and Distributed Programming. 151-165 (2000)
-
[Publications] H.Masuhara,Y.Sugita,and A.Yonezawa: "Dynamic Compilation of a Reflective Language Using Run-Time Specialization"International Symposium on Principles of Software Evolution (to appear from IEEE CS Press). 125-134 (2000)
-
[Publications] Hidehiko Masuhara and Akinori Yonezawa: "Run-time Bytecode Specialization : A Portable Approach to Generating Optimized Specialized Code"Second Symposium on Programs as Data Objects (PADO II)(published as a LNCS series from Springer-Verlag). (発表予定). (2001)