本文へジャンプ

System Software

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

研究分野

ハイパフォーマンス・コンピューティング

2012年にローレンス・リバモア国立研究所にてピーク性能20ペタフロップスを達成予定のBlue Gene/Q(Sequoia)を始めとする、スーパーコンピューター上のアプリケーション及びシステムソフトウェアの最適化の研究、特に、量子色力学(QCD)、高速フーリエ変換(FFT)、流体解析(CFD)プログラムの最適化技術、及び、米国DARPA HPCSプロジェクトのためのプログラム自動最適化技術の研究を米国 T.J.ワトソン研究所と共同で行っています

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

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


スクリプト言語処理系

俊敏性の要求されるWebアプリケーションの開発には、Perl、PHP、Python、Ruby、Groovyなど、コンパイルや型宣言などの面倒の少ないスクリプト言語と呼ばれるプログラミング言語が適していることが多く、実際によく使われています。私たちは、これらの言語処理系や、関連するライブラリやミドルウェアも含め、高性能なシステム・ソフトウェアの研究を行っています。これまでは、特にPHP言語に集中して処理系の研究開発を行ってきており、弊社のJava仮想マシンの資産を活用しつつ新たに処理系を作成したり、既存のJava仮想マシン上に構築した処理系の最適化技術を追求しています。研究成果の一部は主要な国際会議に採択されており、また、開発した技術はIBM Software Groupに移転され、弊社のWebSphere sMashという製品に採用され広く使われています。

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

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

データ・アクセス・テクノロジー

電子証券取引、電子商取引、オンラインバンキングなど、大規模なトランザクション処理を必要とするアプリケーションは多く、そのようなアプリケーションを実現するためのプラットフォームとして、スケーラブルなクラスターシステムの需要が高まっています。このプロジェクトでは、SQLクエリーやシステム構成を動的に解析することで、データアクセスをアプリケーションにあわせて自動的に最適化し、スケーラブルで効率の良いシステムを実現します。

システム性能解析ツール

アプリケーションの規模増大や、マルチコアなど新しいアーキテクチャーの出現により、メモリの効率的な使用がシステム性能に与える影響が大きくなっています。このプロジェクトでは、OSのメモリ管理やJava仮想マシン(JVM)内部のデータ構造の知識などを利用しプロセス全体のメモリー使用量を解析するツールの開発と、解析結果を利用したJVMの改良やプログラムの自動変換など、メモリー使用量削減技術の研究を行っています。

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

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

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

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

プログラミング言語X10

X10は、IBM Researchが開発している新しい並列分散プログラミング言語で、並列・分散アプリケーションの生産性を向上させることを目標としています。X10はPGAS (Partitioned Global Address Space)実行モデルを採用しており、複数の「プレース」にまたがったデータ構造を扱えるほか、軽量な並列タスク生成や分散処理、同期のための機能を言語レベルで備えています。X10はオープンソースプロジェクトとして開発されています。

東京基礎研究所Twitter

IBM Research Twitter Feed

Get the latest updates from IBM Research via Twitter. Join in the conversation today!