HTMを試す
rubykaigi一日目の発表でHTMを使ったパフォーマンス向上の試みが発表されていたので試してみました。
RubyKaigi 2014 | Eliminating Giant VM Lock in Ruby through Hardware Transactional Memory
マシンスペック
iMac使っています。
% system_profiler SPHardwareDataType Hardware: Hardware Overview: Model Name: iMac Model Identifier: iMac14,2 Processor Name: Intel Core i5 Processor Speed: 3.2 GHz Number of Processors: 1 Total Number of Cores: 4 L2 Cache (per Core): 256 KB L3 Cache: 6 MB Memory: 8 GB Boot ROM Version: IM142.0118.B00 % sysctl machdep.cpu.brand_string machdep.cpu.brand_string: Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz
ARK | Intel® Core™ i5-4570 Processor (6M Cache, up to 3.60 GHz)
TSX入っています!
rubyのコンパイル
下記の内容をそのまま行っています。
Rei Odaira - RubyのGVLにHTMを用いるパッチ
% wget http://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p547.tar.gz % tar zxf ruby-1.9.3-p547.tar.gz % wget http://researcher.watson.ibm.com/researcher/files/jp-ODAIRA/ruby_htm_gvl-1.9.3-p547_v3.patch % cd ruby-1.9.3-p547 % patch -p1 < ../ruby_htm_gvl-1.9.3-p547_v3.patch % ./configure --enable-htm-gvl --prefix=$HOME/.rbenv/versions/1.9.3-p547-html-gbl --with-openssl-dir=`brew --prefix openssl` --with-readline-dir=`brew --prefix readline` % make % make install
ベンチマーク
CPU利用率は、赤がsystem、緑がuserです。
HTMあり
% ruby thread_sample.rb 3.141185 user system total real 14.750000 7.620000 22.370000 ( 12.990631)
- CPU利用率
HTMなし
% ruby --disable-htm thread_sample.rb 3.14226 user system total real 1.610000 0.010000 1.620000 ( 1.619220)
- CPU利用率
まとめ
うーーん、HTMをonにしたら、CPUを使い切ってる感じはするけど、パフォーマンス下がったなあ。。。。
サンプルスクリプトがよくないのか、自分の環境がよくないのか。。。。
自分が試した感じではこうでした。
追記
こんなこともやってみました。