Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

JNuma Library

1 021 vues

Publié le

JNuma Library

Publié dans : Technologie
  • Soyez le premier à commenter

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

×