1

I am trying to compare the number crunching performance of an i5-3210M @ 2.5GHz with 6GB ram and an i7 970 @3.2GHz with 24GB ram. The results are so unexpected I presume I am either doing something very wrong or there is something very wrong with the i7.

As background, the information at the following site shows that the i7 is better is every way (other than being an older cpu model by about 2 years).

http://www.cpubenchmark.net/compare.php?cmp[]=840&cmp[]=815

The operating systems on both computers are identical(Arch Linux x86_64). Both computers are equally stable and never crash.

I am using xlinpack_xeon64, which I obtained here https://aur.archlinux.org/packages/linpack/

This test "...makes use of SMP parallelism and by default generates as many threads of execution as the number of the processors of the SMP system." I can verify it is doing so by watching top/htop. Also, when I explicitly set the environment variable OMP_NUM_THREADS to variable numbers of threads, I can observe by top/htop that the specified numbers are being used.

Using this, I have found the i5 to be faster than the i7 by sometimes a factor of 1.2. I have pasted the results for both in full below.

I was initially expecting that in these very parallelizable tests, i7 would outperform the i5 by maybe a factor of three (the i7 has 6 physical cores, and i5 has 2).

I used the systester benchmarker to see if there was something peculiar about linpack here, and this provided almost identical results (i5 faster by around a factor of 1.2).

Finally, I checked the recorded gflops for the two cpu's reported at this site http://www.intel.com/support/processors/sb/CS-017346.htm

Here, the specified gflops for the i5 is 40. So more of less exactly what the linpack results show. On the other hand, the specified gflops for the i7 is around 79. And I am getting about half of that.

I am baffled but I presume the i7 (whether the cpu itself or the ram or the mb) is malfunctioning. Indeed the variability of the results for the i7 and also complete lack of variability for the i5 is also indicative of something awry with the i7.

Any insight would be very helpful.

-m

======= Results =================

============================================================================
========== i7 linpack test =================================================
============================================================================

 Input data or print help ? Type [data]/help :

Number of equations to solve (problem size): 20000
Leading dimension of array: 20000
Number of trials to run: 4
Data alignment value (in Kbytes): 4
Current date/time: Wed May 21 23:51:14 2014

CPU frequency:    3.206 GHz
Number of CPUs: 1
Number of cores: 6
Number of threads: 12

Parameters are set to:

Number of tests: 1
Number of equations to solve (problem size) : 20000
Leading dimension of array                  : 20000
Number of trials to run                     : 4    
Data alignment value (in Kbytes)            : 4    

Maximum memory requested that can be used=3200404096, at the size=20000

=================== Timing linear equation system solver ===================

Size   LDA    Align. Time(s)    GFlops   Residual     Residual(norm) Check
20000  20000  4      149.874    35.5909  3.288586e-10 2.911119e-02   pass
20000  20000  4      135.832    39.2701  3.288586e-10 2.911119e-02   pass
20000  20000  4      142.117    37.5334  3.288586e-10 2.911119e-02   pass
20000  20000  4      121.434    43.9262  3.288586e-10 2.911119e-02   pass

Performance Summary (GFlops)

Size   LDA    Align.  Average  Maximal
20000  20000  4       39.0801  43.9262 

Residual checks PASSED

End of tests

============================================================================
========== i5 linpack test =================================================
============================================================================

Input data or print help ? Type [data]/help :

Number of equations to solve (problem size): 20000
Leading dimension of array: 20000
Number of trials to run: 4
Data alignment value (in Kbytes): 4
Current date/time: Wed May 21 23:54:15 2014

CPU frequency:    3.092 GHz
Number of CPUs: 1
Number of cores: 2
Number of threads: 4

Parameters are set to:

Number of tests: 1
Number of equations to solve (problem size) : 20000
Leading dimension of array                  : 20000
Number of trials to run                     : 4    
Data alignment value (in Kbytes)            : 4    

Maximum memory requested that can be used=3200404096, at the size=20000

=================== Timing linear equation system solver ===================

Size   LDA    Align. Time(s)    GFlops   Residual     Residual(norm) Check
20000  20000  4      125.668    42.4461  4.097986e-10 3.627616e-02   pass
20000  20000  4      125.602    42.4686  4.097986e-10 3.627616e-02   pass
20000  20000  4      125.551    42.4856  4.097986e-10 3.627616e-02   pass
20000  20000  4      125.550    42.4861  4.097986e-10 3.627616e-02   pass

Performance Summary (GFlops)

Size   LDA    Align.  Average  Maximal
20000  20000  4       42.4716  42.4861 

Residual checks PASSED

End of tests
5
  • 5
    Your results are to be expected due to the age of the i7 970 and the fact your trying to compare it to a Ivybridge. – Ramhound May 22 '14 at 0:07
  • Gulftown vs Ivybridge, I would expect the Ivybridge to win most times, unless whatever your benchmark application is is multi-processor biased... Which Linepack are you running? Link? – Austin T French May 22 '14 at 0:26
  • Run a memory benchmark on the two systems. This particular test is not purely CPU limited and these days CPUs achieve better throughput by improving the memory controller more than ramping up clock frequency or number of cores. A slower CPU that spends less time stalled waiting for memory can run circles around one that is theoretically faster on paper. – Andon M. Coleman May 22 '14 at 1:24
  • Are you sure your linpack test uses multiple threads? Your results almost perfectly describe these two CPU's expected single thread performance. – David Schwartz May 22 '14 at 1:52
  • I accept, of course, that a gulftown should be bested by an ivybridge, and if I were comparing one core of each, I should not raise an eyebrow at these results. But the issue here is 6 gulftown cores versus 2 ivybridge (or 12 versus 4 logical cores). The latter should not be better than the former. And yes, I am about as certain as possible that I am using all available cores. I edited my question to clarify this. The more I look it, the more convinced that something is malfunctioning on the i7. Perhaps, as just mentioned, it is the memory. – mjandrews May 22 '14 at 2:49
1

My answer is coming quite a bit late, but since I just did HPL (high performance linpack) benchmark, I may as well write down my answer.

To understand the result of your experiment, you need to know what Linpack is calculating and aiming at benchmarking. Linpack uses dense-matrix linear algebra calculations in order to measure the performance of high-density floating-point calculations. The results are somewhat reflective of the peak of the CPU theoretical FLOPS capacity because of the dominating matrix-multiply operations. (Of course some other factors exist--memory, extra memory operations, etc--which do not permit the achievement of full CPU theoretical FLOPS; but traditionally 70-80% of full FLOPS are quite achievable, if you look at the TOP500 lists.)

I bet that your Linpack executable is leveraging Intel MKL (Math Kernel Library). On older architecture (before Sandy Bridge, which your i7 belongs to), the only "fast" floating-point processing unit available is the SSE unit, which processes 2 floating point numbers at a time. Your newer i5 processor is of Ivy Bridge architecture that has AVX unit, that can process 4 floating point numbers at a time. (Actually, if you look more closely at the hardware capability, the number of floating point ops doubles, because they can simultaneously perform addition and multiplication, thus 4 FLOP/cycle and 8 FLOP/cycle for each SSE and AVX units, respectively).

So the theoretical ratio of single-core CPU performance of your i7 (3.2 GHz) to i5 (2.5 GHz) CPUs would be:

(2.5) * 2 / (3.2) = 1.56

(Factor 2 accounting SSE-AVX difference.) But if you utilize all the cores without hyperthreading, you should get:

(2.5) * 2 * 2 / (3.2 * 6) = 0.52

Now, I can't fully account your observation, then! Unless, if the 6-core calculation really starves the CPU of data to compute? The fact that the i5 is faster could indicate other improvements that are not coming from CPU speed & compute capabilities alone.

Wirawan

PS: Intel's use of terms "i7" and "i5" are always confusing to me; while "i7" is of course better than "i5", it is not that clear what performance advantage the former gives, and how much.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.