著者
河内谷清久仁 古関 聰 小野寺 民也
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.44, no.15, pp.13-23, 2003-11-15
被引用文献数
1

Javaでは言語の性質上,オブジェクトに対するロック操作が頻繁に行われる.これを高速化することは,システム全体の性能向上に非常に重要である.オブジェクトがそれぞれどのスレッドにロックされているかに着目した調査を行ったところ,特定のスレッドにのみ頻繁にロックされているという「スレッド局所性」が見られることが分かった.この性質に着目し本論文では,各オブジェクトごとに特定のスレッドに「ロック予約」を与え,ロック処理を高速化する手法について述べる.予約を持っているスレッドは,従来よりも軽い処理でそのオブジェクトのロックを行える.具体的には,従来ロック処理に不可欠と考えられていたcompare_and_swapなどの不可分命令ではなく,単純なメモリアクセス命令でロックを獲得/解放できる.予約者以外のスレッドがロックを行った時点でロック予約が解除され,以後そのオブジェクトは従来の方式でロックが行われる.この予約ロック機構を,IBM Java VMとJITコンパイラに実装し,いくつかのベンチマークを走らせたところ,従来のロック手法に比べて最大で53%の性能向上が確認された.In Java execution, lock operations are performed very frequently to realize exclusive oper-ations among multiple threads. Therefore, accelerating the lock performance has been very important to execute Java-based applications faster. We investigated the lock behavior of Java programs, focusing on the relation of each object and threads acquiring the object's lock. It turned out that for many objects, the lock is acquired by only one thread specific to the object, even in multi-threaded Java programs. By utilizing the thread locality, this paper shows a novel ultra-fast locking technique for Java. The algorithm allows locks to be reserved for threads. When a thread attempts to acquire a lock, it can do without any atomic operation if the lock is reserved for the thread. Otherwise, it cancels the reservation and falls back to a conventional locking algorithm. We have implemented the lock reservation mechanism in IBM's production virtual machine and JIT compiler. The results show that it achieved performance improvements up to 53%.
著者
古関 聰 佐藤 直人
出版者
公益社団法人日本オペレーションズ・リサーチ学会
雑誌
オペレーションズ・リサーチ : 経営の科学 = [O]perations research as a management science [r]esearch (ISSN:00303674)
巻号頁・発行日
vol.56, no.6, pp.325-330, 2011-06-01

高速ネットワーク環境の普及にともない,現在,社会の様々な場面においてデータの大規模な収集・蓄積が進んでおり,これを解析することで有用な情報を抽出したいという機運が高まっている.このための計算基盤として,並列分散計算の仕組みであるHadoopが有望視されており,実際にHadoopを活用した事例もいくつか報告されている.しかし,Hadoopの提供するMapReduceフレームワークは比較的低レベルな仕組みであり,データ解析利用にはプログラムの特別な設計が必要であることから,Hadoopをデータ解析に活用するためのプログラミング・モデルやツールが求められている.本稿では,このようなHadoop上でのデータ解析をとりまく状況を概観し,Hadoopとデータ解析アプリケーションとの間のギャップがどのように埋められようとしているかについて解説を試みる.