スレッド局所性を利用したJavaロックの高速化
スポンサーリンク
概要
- 論文の詳細を見る
Javaでは言語の性質上,オブジェクトに対するロック操作が頻繁に行われる.これを高速化することは,システム全体の性能向上に非常に重要である.オブジェクトがそれぞれどのスレッドにロックされているかに着目した調査を行ったところ,特定のスレッドにのみ頻繁にロックされているという「スレッド局所性」が見られることが分かった.この性質に着目し本論文では,各オブジェクトごとに特定のスレッドに「ロック予約」を与え,ロック処理を高速化する手法について述べる.予約を持っているスレッドは,従来よりも軽い処理でそのオブジェクトのロックを行える.具体的には,従来ロック処理に不可欠と考えられていたcompare_and_swapなどの不可分命令ではなく単純なメモリアクセス命令でロックを獲得/解放できる.予約者以外のスレッドがロックを行った時点でロック予約が解除され,以後そのオブジェクトは従来の方式でロックが行われる.この予約ロック機構を,IBM Java VM とJITコンパイラに実装し,いくつかのベンチマークを走らせたところ,従来のロック手法に比べて最大で53%の性能向上が確認された.
- 一般社団法人情報処理学会の論文
- 2003-11-15
著者
-
小野寺 民也
日本アイ・ビー・エム
-
古関 聰
日本アイ・ビー・エム(株)東京基礎研究所
-
河内谷 清久仁
日本アイ・ビー・エム株式会社東京基礎研究所
-
河内谷 清久仁
日本アイ・ビー・エム(株)東京基礎研究所
関連論文
- OLTPのための自動グループコミット手法の提案(ストレージ 並列分散データベース,データ工学論文)
- デジタル・エコノミーの新潮流とそのIT基盤(デジタル・エコノミー)
- ストリーム・コンピューティング時代を開く基盤ソフトウェアIBM InfoSphere Streams (特集 BAO--未来を開く高度なインテリジェンス)
- 並列トランザクショナルアプリケーションのためのプログラミングフレームワーク
- スクリプト言語コンパイラのための評価による最適化
- 動的スクリプト言語処理系が動作するJava仮想マシンのメモリ分析
- IBMプロフェッショナル論文 Java VM用メモリー解析ツールMarusa
- 再現コンパイル手法を用いたJava JITコンパイラの問題判別
- PowerPCを用いたハードウェアシステム用のGDBサーバ
- TOP-1オペレーティング・システム : (5)デバッグ環境
- TOP-1オペレーティング・システム : (3)メモリ管理
- TOP-1オペレーティング・システム : (2)プロセス・スケジューリング
- TOP-1オペレーティングシステム : (1)基本方針
- 非対称なスピンロックの提案とそのJavaへの応用
- スレッド局所性を利用したJavaロックの高速化
- 携帯情報ブラウジングのための入力デバイス「NaviPoint」(次世代ヒューマンインタフェース・インタラクション)
- マルチモード入力デバイス「NaviPoint」によるコンテクスト依存操作インタフェースの検討
- MKngプロジェクトにおけるマルチメディア技術 : 動的QOS制御のための資源交渉手法の提案
- マルチメディア処理の動的QoS制御のためのフレームワーク
- ハイパーメディア・ブラウジングに適した新しい入力デバイス
- 超小型機器の「指一本操作」のための入力機構
- MKngプロジェクトにおける動的QOS制御サポート
- モービル情報キャッシュのためのフレームワーク
- インターネット上においてオーディオ及びビデオを配送するプロトコル
- Qスレッド : 連続メディアの動的QOS制御に適したプロセス実行モデル
- VOD向けのネットワークAPIの提案
- 実時間でデータ転送を行なうための方式
- インターネット上の動画転送を意識した動的QoSの制御
- ATMを使ったVODシステムの試作
- 分散マルチメディア環境のためのセキュリティ機構
- 2-2 コンピュータ技術( 情報ハイウェイの展開と利用)
- JNI プログラム中のバグ発見
- Java Just-In-Timeコンパイラにおける最適化とその評価
- 第1回プログラミングおよび応用のシステムに関するワークショップ(SPA '98)の報告
- オブジェクト指向言語におけるメッセージ送信の高速化技法
- 静的解析によるメソッド探索の高速化
- メソッドの仮翻訳によるオブジェクト指向言語の最適化
- OOPSLA'94参加報告
- 5. 保守的ごみ集め (<特集> ごみ集めの基礎と最近の動向)
- C ベースのオブジェクト指向言語における再コンパイル時間の短縮
- オブジェクト指向データベースにおけるC++プログラム情報の表現と蓄積
- Tools Pacific '90に参加して
- オブジェクト指向言語COB : インプリメンテーション
- オブジェクト指向言語CDB : 設計方針と言語仕様
- 90-4 C++の多重継承
- Keio-MMPにおけるマイクロカーネルアーキテクチャ
- Real-Time Mach 3.0におけるI/Oサーバの構成と評価
- マルチコア時代のプログラミング言語「X10」
- NOSSDAV '95報告
- 2.3 並列計算機TOP-1のOS (日本におけるオペレーティングシステム研究の動向)
- 可変プロセッサ速度に対応した実時間処理の考察
- 連続メディアのQOS制御のための「QOSチケット」モデル
- モービルコンピュータを使った分散マルチメディア環境の実現
- Real-Time Mach用のオーディオドライバ
- 連続メディア処理のためのリアルタイムスレッドモデルの拡張
- 動画のフレーム間相関を利用した動的なQOS制御の実験
- Real-Time Mach上でのQOS制御サーバの実験
- 92-35 スケジューラ・アクティベーション: ユーザレベルで平列性を管理するための効果的なカーネルサポート
- ロック制御型同期複製ミドルウェアの提案(分散データベース,データ工学論文)
- マルチコア時代のプログラミング言語「X10」
- 日本IBM創立70周年記念企画 東京基礎研究所の歩みとIBMの先進テクノロジー(TRL25周年) (特集 イノベーションを生み出すDNA--日本IBM創立70周年記念特集)
- Hadoopを活用した大規模データ解析の動向と今後の展望(クラウドとアナリティクス)
- 依存グラフを用いてアーキテクチャ独立な最適化と対象計算機の資源制約を調整する手法
- 非常に偏った条件分岐が存在するプログラムのデータフロー最適化
- PPL 2011開催報告
- 企業研究者と学会
- 高可用キー・バリュー ストアにおけるデータ鮮度に基づいた一貫性の提案とその実装
- 仮想化環境における文字列オブジェクトの重複回避
- 並列・分散プログラミング言語X10によるHPCアプリケーションの記述