Reputation: 3
I have a general question that comes from a specific situation I've encountered.
The general question: what determines the running time (calculation time, execution time) of an app written in C++ on Windows, under the MinGW compiler?
The specific situation: I've recently bought a new computer. While running and testing the same programs I've written on the older machine, I see not only no speed-up, but also a slowdown of performance. Both run a Windows 7 operating system.
The older workstation: an i7-3770 Core 4-core processor, 8 GB of RAM and a hard disk drive.
The newer setup: a e5-2660 v3 Xeon 10-core processor, 32 GB of RAM and also a HDD.
Not experiencing a full speed up might be due to not having a SSD memory type, but that still doesn't explain why the new computer is slower than the old one. I ran passmark score tests, and in all categories the new computer outperforms the old. Still, my own C++ programs and a couple of third party appications all run slower on the new machine. How could it be? Are there some specific software-type limitations I should be checking?
I'd also welcome any suggestions on the performance topic, as I plan on running calculation-intensive, multithreaded applications, so performance is an important issue.
Upvotes: 0
Views: 179
Reputation: 16112
Update: I caught the wrong Xeon spec at first. V3 has a faster turbo frequency but the sustainable frequency is only 2.6 GHz.
Xeon info from From http://ark.intel.com/products/81706/Intel-Xeon-Processor-E5-2660-v3-25M-Cache-2_60-GHz:
Processor Base Frequency 2.6 GHz
Max Turbo Frequency 3.3 GHz
I7 info from http://ark.intel.com/products/65719/Intel-Core-i7-3770-Processor-8M-Cache-up-to-3_90-GHz:
Base Frequency 3.4 GHz
Max Turbo Frequency 3.9 GHz
While cache size and other differences may favour Xeon in instructions/clock cycle I'd think that the 30% faster I7 clock will be hard to beat. For programs with 4 threads or less that don't have much competition for CPU time, that is ;-).
Upvotes: 0
Reputation: 2453
As an application uses cpu, memory and disk all of these affect the execution speed of an application.
In your case, you changed from a 4-core cpu that had 4 fast cores, to a 10-core cpu that has 10, but slower cores, effectively slowing down your per-thread execution speed.
Depending on what you do, e.g. if the ratio of calculations/memory pressure is towards the calculation side, you'll see a slow down.
Upvotes: 1