Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JNuma Library

1,005 views

Published on

JNuma Library

Published in: Technology
  • Be the first to comment

JNuma Library

  1. 1. Silk Weaver: A Scalable Data Processing Platform JNuma library  Java/ScalaでNUMA aware アクセスを実現するためのライブラリ  2012年11月に作成・公開済み  https://github.com/xerial/jnuma  JavaからJNI経由でNUMA APIを呼び出す  機能  特定のNUMA node (メモリ)でバッファを確保  GCの管理対象外領域なので、Numa.freeを実行した瞬間に解放される (JVMがメモリを食い尽くすのを防ぐ)  Threadを特定のCPU(s)に固定する  Javaにはない機能 1
  2. 2. Silk Weaver: A Scalable Data Processing Platform Distance and CPU affinity of NUMA nodes 2
  3. 3. Silk Weaver: A Scalable Data Processing Platform NUMA-Aware Data Output  実験  1GBのメモリを各CPUが確保  各CPUはメモリの先頭から順にランダムなデータを 書き込む  各Threadに固定CPUを1つ割り当てて実行  Numa.setAffinity(cpu#)  jnuma libraryを使用  比較  NUMA localにデータを書き出す場合 (numa)  NUMAを気にせずJVMのheapに書き出す場合 (heap)  マシン  ax03 (48CPUs, 256GB memory)  結果  numa-localな書き込みは性能が安定するが、 heapに書き込む場合は、遅くなる  heapへの書き出しではCPU使用率が極端に低くなる  => memory I/O bound 3
  4. 4. Silk Weaver: A Scalable Data Processing Platform JVM –XX:+UseNUMA  JVMの-XX:+UseNUMA オプションを使うとheapの場合に多少速くなるが、それでも numa-localの方が速い 4

×