Xeon E5-2695v4搭載システム 姫野ベンチマーク評価

1CPU当たり18コアを持つXeon E5-2695v4を2個と、256GB(32GB DDR4-2400 ECC REG x8枚)を搭載するシステムPOWER MASTER Vision S4382にて、姫野ベンチマークによる計測を行ってみました。

【環境】

  • Xeon E5-2695v4 (18Core/2.1GHz/45MB/QPI 9.6GT/120W) x 2個
  • 32GB DDR4-2400 ECC Registered x 8枚
  • Supermicero X10DAi
  • OS:CentOS7.1 x86_64
  • GNUコンパイラ:GCC 4.8.5
  • OpenMPI:1.8.5
  • 姫野ベンチ:himenoBMTxp_l size L
  • 姫野ベンチ並列バージョン:cc_himenobmt_mpi size L

NUMAノードを確認すると、node0には#0から#17コアが、node1には#18から#35コアが割り当てられていました。(Hyper-Threading分まで含めると、node0には#0から#17コアと#36から#53、node1には#18から#35コアと#54から#71まででした。)

スレッド数1、2,4,8,16,32,36,72での結果が以下の青色で示す棒グラフです。(スレッド数1ではhimenoBMTxp_l size Lの結果、スレッド数2,4,8,16,32,36,72ではcc_himenobmt_mpi size Lの結果です。)

ベンチマークを行う際、なるべくジョブを各NUMAノードに均等に配分する様に実行しました。例えば、8 threadsの場合、コマンドを表記すると、

$ taskset -c 0-3,18-21 mpirun -n 8 ./bmt

などです。

また、4, 8, 16 threadsのみとなりますが、片方のNUMAノードにのみでジョブを実行した場合の結果もグラフに、マゼンタで示してあります。実行時のコマンドも表記すると、

$ taskset -c 0-7 mpirun -n 8 ./bmt

などです。

特に面白い結果が4, 8, 16 threadsにおいて、各NUMAノードへ均等にジョブを割り当てた場合と、片側NUMAノードにのみジョブを実行した場合です。

片側NUMAノードへジョブを割り当てた場合には、各NUMAノードへ均等にジョブを割り当てた場合と比べて、分割数4では10%程度、分割数8では20%程度、分割数16では40%程度落ち込んでいます。

1つのNUMAノードへのジョブが集中しない様に、分配する方が良いパフォーマンスを得られることがわかります。