Skip to content

E5 2680v2 with DDR3 1600 MHz

wyldckat edited this page Jan 1, 2016 · 2 revisions

Table of Contents

Introduction

This page registers the performance achieved with the Intel Xeon E5-2680v2, sporting 8 DDR3 modules of 32GB each at 1600 MHz. The machine used is part of blueCAPE's IT pool.

Notes
HyperThreading was turned off in the BIOS settings, because we're using it for Computational Fluid Dynamics.
The use of mpirun is merely as a helper application. The avxtest* binaries are not running cooperatively.
Keep in mind that these results are not statistically balanced, since they are the result after a single run.

Runtimes

These were executed on CentOS 6.6 x86_64, using a custom build of GCC 4.8.1. Built with the native options:

    g++ -O3 -march=native avxtest.cpp -o avxtest
    g++ -O3 -march=native avxtest64.cpp -o avxtest64

1 core

32-bit:
   ./avxtest
  • x86:
    • Time taken (ms): 27250
  • AVX:
    • Time taken (ms): 3610
64-bit:
   ./avxtest64
  • x86_64:
    • Time taken (ms): 26770
  • AVX:
    • Time taken (ms): 7550

2 cores

32-bit:
   mpirun -n 2 ./avxtest
  • x86:
    • Time taken (ms): 28320
    • Time taken (ms): 28350
  • AVX:
    • Time taken (ms): 3730
    • Time taken (ms): 3730
64-bit:
   mpirun -n 2 ./avxtest64
  • x86_64:
    • Time taken (ms): 27760
    • Time taken (ms): 27750
  • AVX:
    • Time taken (ms): 7680
    • Time taken (ms): 7840

4 cores

32-bit:
   mpirun -n 4 ./avxtest | grep "Time taken (ms): " | sed 's=^Time=** Time='
  • x86:
    • Time taken (ms): 29890
    • Time taken (ms): 29890
    • Time taken (ms): 29900
    • Time taken (ms): 29930
  • AVX:
    • Time taken (ms): 3980
    • Time taken (ms): 3980
    • Time taken (ms): 3980
    • Time taken (ms): 3980
64-bit:
   mpirun -n 4 ./avxtest64 | grep "Time taken (ms): " | sed 's=^Time=** Time=' 
  • x86_64:
    • Time taken (ms): 29340
    • Time taken (ms): 29360
    • Time taken (ms): 29380
    • Time taken (ms): 29400
  • AVX:
    • Time taken (ms): 8100
    • Time taken (ms): 8150
    • Time taken (ms): 8220
    • Time taken (ms): 8260

6 cores

32-bit:
   mpirun -n 6 ./avxtest | grep "Time taken (ms): " | sed 's=^Time=** Time='
  • x86:
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31370
    • Time taken (ms): 31370
  • AVX:
    • Time taken (ms): 4160
    • Time taken (ms): 4150
    • Time taken (ms): 4160
    • Time taken (ms): 4160
    • Time taken (ms): 4160
    • Time taken (ms): 4170
64-bit:
   mpirun -n 6 ./avxtest64 | grep "Time taken (ms): " | sed 's=^Time=** Time=' 
  • x86_64:
    • Time taken (ms): 30780
    • Time taken (ms): 30770
    • Time taken (ms): 30820
    • Time taken (ms): 30820
    • Time taken (ms): 30830
    • Time taken (ms): 30860
  • AVX:
    • Time taken (ms): 8540
    • Time taken (ms): 8650
    • Time taken (ms): 8660
    • Time taken (ms): 8630
    • Time taken (ms): 8670
    • Time taken (ms): 8730

8 cores

32-bit:
   mpirun -n 8 ./avxtest | grep "Time taken (ms): " | sed 's=^Time=** Time='
  • x86:
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31370
    • Time taken (ms): 31370
  • AVX:
    • Time taken (ms): 4150
    • Time taken (ms): 4160
    • Time taken (ms): 4160
    • Time taken (ms): 4160
    • Time taken (ms): 4160
    • Time taken (ms): 4160
    • Time taken (ms): 4150
    • Time taken (ms): 4170
64-bit:
   mpirun -n 8 ./avxtest64 | grep "Time taken (ms): " | sed 's=^Time=** Time=' 
  • x86_64:
    • Time taken (ms): 30770
    • Time taken (ms): 30780
    • Time taken (ms): 30790
    • Time taken (ms): 30820
    • Time taken (ms): 30810
    • Time taken (ms): 30830
    • Time taken (ms): 30850
    • Time taken (ms): 30850
  • AVX:
    • Time taken (ms): 8540
    • Time taken (ms): 8590
    • Time taken (ms): 8620
    • Time taken (ms): 8620
    • Time taken (ms): 8600
    • Time taken (ms): 8650
    • Time taken (ms): 8670
    • Time taken (ms): 8650

10 cores

32-bit:
   mpirun -n 10 ./avxtest | grep "Time taken (ms): " | sed 's=^Time=** Time='
  • x86:
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31360
    • Time taken (ms): 31380
    • Time taken (ms): 31360
  • AVX:
    • Time taken (ms): 4150
    • Time taken (ms): 4160
    • Time taken (ms): 4160
    • Time taken (ms): 4160
    • Time taken (ms): 4160
    • Time taken (ms): 4150
    • Time taken (ms): 4160
    • Time taken (ms): 4160
    • Time taken (ms): 4140
    • Time taken (ms): 4070
64-bit:
   mpirun -n 10 ./avxtest64 | grep "Time taken (ms): " | sed 's=^Time=** Time=' 
  • x86_64:
    • Time taken (ms): 30780
    • Time taken (ms): 30790
    • Time taken (ms): 30800
    • Time taken (ms): 30820
    • Time taken (ms): 30810
    • Time taken (ms): 30830
    • Time taken (ms): 30800
    • Time taken (ms): 30840
    • Time taken (ms): 30830
    • Time taken (ms): 30760
  • AVX:
    • Time taken (ms): 8550
    • Time taken (ms): 8600
    • Time taken (ms): 8590
    • Time taken (ms): 8650
    • Time taken (ms): 8700
    • Time taken (ms): 8720
    • Time taken (ms): 8710
    • Time taken (ms): 8720
    • Time taken (ms): 8620
    • Time taken (ms): 8550

Summary

Architecture/Mode 1 core 2 cores (std-dev) 4 cores (std-dev) 6 cores (std-dev) 8 cores (std-dev) 10 cores (std-dev)
x86 (ms) 27250 28335 (21.213) 29902.5 (18.930) 31363.3 (5.164) 31362.5 (4.629) 31362 (6.325)
x86_64 (ms) 26770 27755 (7.071) 29370 (25.820) 30813.3 (33.267) 30812.5 (30.589) 30806 (25.033)
AVX float (ms) 3610 3730 (0) 3980 (0) 4160 (6.325) 4158.75 (6.409) 4147 (27.909)
AVX double (ms) 7550 7760 (113.137) 8182.5 (71.356) 8646.7 (62.183) 8617.5 (41.318) 8641 (68.386)
- - - -
Core frequency (MHz)
(cpufreq-aperf)
3585 3473 3277 3081 3081 3081
downscale ratio (c1/cx) 1 1.0322 1.0940 1.1636 1.1636 1.1636
x86 1 1.0398165138 1.0973394495 1.1509480122 1.1509174312 1.1508990826
x86_64 1 1.0367949197 1.0971236459 1.1509480122 1.1510397211 1.1510085917
AVX float 1 1.0332409972 1.1024930748 1.1523545706 1.1520083102 1.1487534626
AVX double 1 1.0278145695 1.0837748344 1.1452538631 1.1413907285 1.1445033113

Inferences

  1. The downscale ratio on the x86/x86_64 calculations are all exactly within the expectable downscale range, given that some slight measurement errors can always occur and the process scheduler can also interfere a bit, since CPU affinity wasn't used.
    • Note: the frequencies were revised with cpufreq-aperf, to compare with the ones at cpu-world.com. Curious details:
      • When using 6 cores, all cores were set to 3081 MHz, while using fewer cores resulted in independent frequencies.
      • Using AVX or not resulted in the same frequencies.
  2. These results give a clear notion that we used in this CPU the pure 10 cores, devoid of any HyperThreading features or similar logical cores strategy, as initially mentioned in the introduction chapter.
  3. For an additional reference, cpubenchmark.net gives an index of 16379 to this CPU, but keep in mind that this index accounts for HyperThreading. The estimated index without HyperThreading is at a 1.3 ratio, namely 12600.