まずは、
export MALLOC_TRIM_THRESHOLD_=-1
export MALLOC_MMAP_MAX_=0
を設定しない状態で。
画像についての説明だが、
・heap1 というのは、通常の heap を用いた実装。
・heap2 は、ポテンシャルの更新と、heap の操作を分離した仕様。
・bucket は、Dial の実装になっている。
・前回と同じクエリファイルを用いている。
・実験環境は
CPU : Intel(R) Xeon(R) CPU E5345 @ 2.33GHz
OS : CentOS 5.1 64bit
compiler : gcc 4.1.2
8 byte ~ 8192 byte まで、アラインメントを変えて実験しているが、大雑把に見るとほとんど変化が見られない。
・heap1 に関して
アライメントはあまり関係ないようで、デフォルト(8 byte)が一番良い結果になった。むしろ関係あるのかともいえるかもしれない。
・heap2 に関して
heap1 に比べこちらの方が若干ではあるが、高速化されている。1024 と 8192 以外はおおむね改善されていると思ってよいだろう。
・bucket に関して
こちらは連続的なアクセスが多いので、アライメントの効果が得られやすいと思っていたが、64byte、128byte、256byte 以外では効果が小さいながら良くなっていた。
export MALLOC_TRIM_THRESHOLD_=-1
export MALLOC_MMAP_MAX_=0
を設定しない状態で。
画像についての説明だが、
・heap1 というのは、通常の heap を用いた実装。
・heap2 は、ポテンシャルの更新と、heap の操作を分離した仕様。
・bucket は、Dial の実装になっている。
・前回と同じクエリファイルを用いている。
・実験環境は
CPU : Intel(R) Xeon(R) CPU E5345 @ 2.33GHz
OS : CentOS 5.1 64bit
compiler : gcc 4.1.2
8 byte ~ 8192 byte まで、アラインメントを変えて実験しているが、大雑把に見るとほとんど変化が見られない。
・heap1 に関して
アライメントはあまり関係ないようで、デフォルト(8 byte)が一番良い結果になった。むしろ関係あるのかともいえるかもしれない。
・heap2 に関して
heap1 に比べこちらの方が若干ではあるが、高速化されている。1024 と 8192 以外はおおむね改善されていると思ってよいだろう。
・bucket に関して
こちらは連続的なアクセスが多いので、アライメントの効果が得られやすいと思っていたが、64byte、128byte、256byte 以外では効果が小さいながら良くなっていた。