ワークロード最適化システム - ハイパフォーマンス・コマーシャル・システムズ


ハイパフォーマンス・コマーシャル・システムズ


概要

マルチコアやスケールアウトなど、新しいコンピューター・アーキテクチャーが登場しています。従って、コンパイラーやプログラミング言語処理系などのシステムソフトウェアも、それらのアーキテクチャーに合わせて新しいものが要求されています。また、それと同時に、既存のアーキテクチャーに対しても、漸進的な改善による性能パラメターの変化や、使われ方(ワークロード)の変化によって、今までの処理系では十分な性能を出せなくなりつつあります。ITシステムが複雑になり、一般開発者からはシステムの詳細な動きが見えにくくなっている現在、ハードウェアの最大限の性能を引き出すためには、先進的なシステム・ソフトウェア技術が欠かせません。IBMの全てのJava製品に採用されているJITコンパイラーに代表される先進技術を持ち、また多くの国際会議でそのリーダーシップを認められている東京基礎研究所では、このような新しいアーキテクチャー、新しいワークロードに対して、たゆまないイノベーションを実践しています。


研究分野


先進的なJava仮想機械とJITコンパイラー

東京基礎研究所では、Javaが発表された1995年から、Javaバイトコードを実行する仮想機械と機械語コードに変換するJITコンパイラーの開発を行っています。現在、オブジェクトの割付場所情報とオブジェクトへのアクセス情報を低オーバーヘッドで取得する手法に力を入れています。これらの技術は、IBM System p上のJavaの処理系に対して大きな性能向上を達成し、さらにその成果を主要な国際会議で発表しています。

トランザクショナル・メモリー

多数のスレッドが並列動作するマルチコアプロセッサーにおいて、スレッド間並列性を十分に活用するための新たな同期方式であるトランザクショナルメモリーについて研究を行っています。トランザクショナルメモリーは、従来の同期方式である排他制御では逐次実行しなければならなかったクリティカルセクションを、複数のスレッドで並列実行させることを可能にします。しかしながら、まだ未成熟の技術であり、様々な問題点が存在します。例えば、トランザクショナルメモリーは、クリティカルセクションを実行する際、メモリーアクセスのログを記録しなければならず、そのオーバヘッドが問題となります。また、現実のアプリケーションプログラムで効果的であるかどうかが未知数です。私たちは、それらの問題点を解決する手法について研究を行っています。


動的スクリプト言語用JITコンパイラー

動的スクリプト言語(DSL)は、動的型付けやライブラリやフレームワークの豊富さによる開発効率の高さで人気があり、大規模なアプリケーション構築に使われはじめています。東京基礎研究所における15年以上に渡るJava JITコンパイラーでの最適化の研究成果を生かして、ワトソン研究所と共同で、DSL用のJITコンパイラーの研究開発を行っています。型宣言の省略による実行時オーバヘッドを最小化する最適化や、ハードウェア機構を利用する最適化、の研究に取り組んでいます。


トレースベースJava JITコンパイラー

我々は、トレースを単位としてコンパイルを行うことで、多くの処理時間を占めるようなホットメソッドを持たない大規模なJavaワークロードの性能を向上させることを目指しています。トレースを用いることで、より柔軟なコンパイルスコープ設定やより良いコンパイラ最適化を行えることが期待されています。現在、トレースベース Java JITコンパイラを開発しており、特にトレース選択アルゴリズム・コンパイル最適化・実行制御機構の改良に取り組んでいます。