Worse performance with better processors

1

I recently changed my Toshiba Satellite L70-B-12H with i7-4700 HQ processors, for an ASUS GL553VD with i7-7700 HQ processors. I perform some numerical analysis with a program written in C/C++ interfaced to GNU Octave with Mex; it uses parallel threads thanks to Open MP. I am disapointed to see that my new computer, with the better processors, is up to 2 times slower than the older, with the lesser processors, to perform the same task.

Monitoring on the newer computer (ASUS) indicates that all 8 processors are working at 3.40 GHz, no CPU throttling (on most trials).

What kind of factors could explain such a worse performance with supposedly better processors?

The only significant difference I can think of is that the older computer (Toshiba) had 16 GB of RAM, against only 8 GB for the newer (ASUS). Can this be enough to explain such a drastic difference in speed? The task at hand takes up to 2.4 GB in memory, so there's no way the 8 GB RAM gets saturated (and I confirm it's not, and no swap memory is used).

Hugo Raguet

Posted 2017-08-20T14:59:49.490

Reputation: 113

What about other applications? Do you see a slowdown there as well? Maybe it has something to do with your gpu. Are you using gpu acceleration? Take a look at this post

– SpiderPig – 2017-08-20T15:07:55.257

I cannot say about other applications, and I can't run other comparisons since I do not have the Toshiba anymore. – Hugo Raguet – 2017-08-20T15:16:10.990

I'd be surprised that GPU are involved, since the demanding task here is a program written in C/C++, without fancy libraries. Same comment for the GPU acceleration of octave, since only my mex function is running (but thanks for the link, might be useful for other things) – Hugo Raguet – 2017-08-20T15:23:46.420

You could run some benchmark software and compare the results you get to what you should get with that CPU. – SpiderPig – 2017-08-20T15:30:40.827

good idea, do you know any standard benchmark to run under GNU Linux? – Hugo Raguet – 2017-08-20T15:37:40.590

I'm not sure. But http://linux-bench.com/ looks promising.

– SpiderPig – 2017-08-20T16:00:08.643

For completeness, I add here that I ran some benchmark (UnixBench), but there is currently no standard way to compare my results to what I "should get with that CPU". linux-bench.com seems the most furnished database available, but I cannot find anything close to my hardware (and some results are clearly aberrant) – Hugo Raguet – 2017-08-21T15:38:29.480

Answers

0

It is probably not that actual memory is saturated by your program, but it would not suprise me if memory bandwidth is being saturated.

If your new system only has 1 stick of RAM while your old has two sticks of RAM then chances are your "numerical task" is more bandwidth constrained than it is CPU bound.

The memory bandwidth of the two CPUs:

i7-4700HQ: 25.6 GB/s
i7-7700HQ: 34.1 GB/s (dual-channel)
i7-7700HQ: 17 GB/s (single-channel)

These figures are for "dual channel", i.e. 2 memory sticks. If you only have 1 memory stick then the system will be working in "single channel" mode at 17.05GB/s for the i7-7700.

If you really want the system to be working at peak performance, and better then the old, then number of memory sticks is the likely culprit as the 7700 should be faster in every other way.

Mokubai

Posted 2017-08-20T14:59:49.490

Reputation: 64 434

Definitely a good answer to my question ("what kind of factors..."). I confirm I have only one memory stick on the Asus. The numbers you found do not explain the factor 2, but this might be an important factor. I'll accept it soon unless someone comes up with more convincing explanation. – Hugo Raguet – 2017-08-20T22:07:00.630

By the way, would I enjoy a full "dual channel" bandwidth by simply putting an additional memory stick? How easy is that? – Hugo Raguet – 2017-08-20T22:09:38.540

@HugoRaguet it is the speed factor exactly two, or slightly below two? It slightly below then this is the problem. If your program is entirely memory bandwidth constrained then it should take approximately (25 / 17 =) 1.47 times longer. It is also possible that the Asus does not have as fast memory in it for whatever reason. – Mokubai – 2017-08-21T05:09:42.137

Out of preference you want a matched pair of RAM, but it should work with most. As you have a relatively high end machine it should be easy enough to add another stick of RAM. You can check what you currently have using a program called CPU-z, the "SPD" tab will show you your RAM and you can check your manual for fitting instructions. – Mokubai – 2017-08-21T05:12:54.900

Many thanks for the advice. Still, I am surprised that such powerful CPU is sold without the necessary memory to back it up. But maybe my CPU use is specific. – Hugo Raguet – 2017-08-21T07:23:14.323

@HugoRaguet To be honest, that's the way it goes at times. I have a gaming rig running one stick of RAM until I get around to buying another, it works fine for my workload because most of the work is done on the graphics card, it's all a bit dependant on what you are doing with the machine as to whether you really need dual channel or if you can live without it. Swings and roundabouts. The manufacturers think you need quantity of RAM, but you need quality (as in dual channel). – Mokubai – 2017-08-21T07:39:38.637

I am coming back just to CONFIRM that memory bandwidth was indeed the limiting factor. I wish I could upvote your answer! – Hugo Raguet – 2017-11-17T09:07:54.950