Category Archives: 技術情報

tasksetで姫野ベンチマークを実行するコアを指定する

Opteron 6380を利用するシステムで、姫野ベンチマークによる計測を行ったところ、
ジョブの割り当て方によって、スコアが大きく変わりましたので、その結果を紹介します。
【環境】

Opteron 6380 (16 Core/2.5GHz/16MB/115W) x 4個 で64コア
4GB DDR3-1866 ECC Registered x 16枚
Supermicro H8QGi+-F
OS:CentOS7.1 x86_64
GNUコンパイラ:GCC 4.8.5
OpenMPI:1.8.5
姫野ベンチ:himenoBMTxp_l size L
姫野ベンチMPIバージョン:cc_himenobmt_mpi size L

検証した環境では64個ものCPUコアを搭載しています。
NUMAノードを確認すると、node0には#0から#7コアが、node1には#8から#15コア,…, node7には#56から#63コアが割り当たっていました。

$ cat /sys/devices/system/node/node0/cpulist
0-7
$ cat /sys/devices/system/node/node1/cpulist
8-15
..
..
$ cat /sys/devices/system/node/node7/cpulist
56-63

予め8個のコアを利用してベンチマークを実行するファイルbmt8.outを作成し、コア0−7を使った場合(1つのNUMAノードでジョブを実行させる場合)と、コア0,8,16,24,32,40,48,56を使った場合(8つのNUMAノードへジョブを均等に分割配分する場合)とで計測を実施しました。

$ taskset -c 0-7 mpirun -n 8 ./bmt8.out ←①
$ taskset -c 0,8,16,24,32,40,48,56 mpirun -n 8 ./bmt8.out ←②

①のスコアを1とするならば、②では3.3となりました。
また、16個のコアをベンチマークを実行するファイルbmt16.outを利用して計測も行いました。

$ mpirun -n 16 ./bmt16.out ←③
$ taskset [...]

Xeon E5-2680v4搭載システム 姫野ベンチマーク評価、その他

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

【環境】

Xeon E5-2680v4 (14Core/2.4GHz/35MB/QPI 9.6GT/120W) x 2個
8GB DDR4-2400 ECC REG 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

スレッド数1、7、21、28での結果が以下のグラフです。(スレッド数1ではhimenoBMTxp_l size Lの結果、スレッド数7、21、28ではcc_himenobmt_mpi size Lの結果です。)

スレッド数7程度で、メモリ帯域を使い切ってしまうのかスコアが収束しているように見えますが、28スレッドでは42000 MFLOPS程度のスコアが出ました。
計測したシステムには、1CPU当りメモリ4枚が取り付けられ、 最適なメモリモジュール配置構成(quad-channelで動作)で計測を行いましたが、あえてメモリモジュールを各CPUから1枚づつ取り外して、計測した結果が、マゼンタで表示されている箇所です。
最適にメモリモジュールが配置されている場合には、42000 MFLOPS程度の性能が出ていますが、おおよそ半分程度までスコアが下がっています。メモリを適切に配置することは、重要と言えます。

シングルスレッド評価(姫野ベンチ) – skylale

Compiler: gcc 4.8.5
Benchmark: himenoBMTxp
Size: L

CPUモデル
コア数
シングルスレッドスコア

Core i7-6700 (4 Core/3.4GHz/8MB/65W/GPU)
4
5161

Core i7-6700K (4 Core/4GHz/8MB/91W/GPU)
4
5350

Xeon E3-1230v5 (4 Core/3.4GHz/8MB/80W)
4
5145

Skylakeアーキテクチャー・ワークステーション用CPU「Xeon E3-1230v5」のベンチマーク記録を追加しました。コンパイラーは、gcc 4.8.5を利用しました。

シングルスレッド評価(姫野ベンチ) – Haswell Refresh

Compiler: gcc 4.8.5
Benchmark: himenoBMTxp
Size: L

CPUモデル
コア数
シングルスレッドスコア

Core i3-4170 (2 Core/3.7GHz/3MB/54W/GPU)
2
4617

Haswell Refreshアーキテクチャー・プロセッサーCPU「Core i3-4170 」のベンチマーク記録を追加しました。コンパイラーは、gcc 4.8.5を利用しました。

Intel Xeon D搭載システム 姫野ベンチマーク評価

2015年5月に弊社でも販売を開始しましたIntel Xeon D搭載システムを姫野ベンチマークにて評価しました。
【環境】

CPU:Inte(R) Xeon(R) processor D-1540 (2.00GHz、8core)
メインボード:Supermicro X10SDV-TLN4F
チップセット:System on Chip
メモリ:32GB(8GB DDR4-2133 ECC REG ×4)
OS:CentOS7.1 x86_64
GNUコンパイラ:GCC 4.8.3
Intelコンパイラ:Parallel Studio XE 2015 Composer Edition for C++ Linux 15.0.3
OpenMPI:1.8.5
Intel(R) MPI Library:Version 5.0 Update 3
姫野ベンチ:himenoBMTxp_l size L
姫野ベンチ並列バージョン:cc_himenobmt_mpi size L

※以下スコアは全て測定回数5回の平均値です。
①シングルスレッド評価
姫野ベンチ(himenoBMTxp_l)を各コンパイラにてコンパイルし測定しました。

コンパイラ
スコア

gcc
3014.4 MFLOPS

icc
5388.6 MFLOPS

以前測定したIntel Xeon E5-2687W(3.1GHz)のスコア3525 MFLOPSと比較しても非常に高いスコアといえます。姫野ベンチはメモリに依存しているベンチマークですので、メモリがDDR3からDDR4になったことでスコアが大きく延びていると考えられます。また、インテルコンパイラではgccの約1.8倍のスコアとなりましたのでインテルコンパイラの使用が非常に有効といえます。
②マルチスレッド評価
コンパイラとMPIライブラリを組み合わせて姫野ベンチ並列バージョン(cc_himenobmt_mpi)をコンパイルし測定しました。

スレッド数
gcc+OpenMPI
icc+Intel MPI

シングル
2995.6 MFLOPS
5346.2 MFLOPS

8
12672.6 MFLOPS
12939.4 MFLOPS

16(HyperThreading on)
11318.6 MFLOPS
12301.6 MFLOPS

両組み合わせにおいてシングルスレッドでは前項目のシングルスレッド評価と同等の信頼できるスコアが確認できます。8スレッドでは12600~12900 MFLOPS程度、「HyperThreading on」の16スレッドでも11300~12300 MFLOPS程度と12000 MFLOPS付近にてスコアが収束しているように見えます。
確認の為、「icc + Intel MPI Library」にて2~4スレッドの測定も行いました。

スレッド数
icc+Intel [...]