Java
We duplicated the diagram with percentage values instead of points so that you could see the standard good multiprocessing optimization. Take a look: it demonstrates practically ideal results with two cores: 196% out of 200%. When the third core is enabled, the result gets lower -- 272% out of 300%. And only the fourth core makes everything clear: 337% out of 400% -- further increase in the number of cores probably won't yield performance gains. I repeat, such behavior is the best you can get. There are some exceptions, of course (e.g. rendering or x264) -- but they are only exceptions. And consequences of simple well-done parallel optimizations will look like this.
3D games
|
1 core |
2 cores |
3 cores |
4 cores |
STALKER: Clear Sky ↑ |
45.2 |
53.9 |
+19% |
54.4 |
+1% |
54.4 |
0 |
Devil May Cry 4 ↑ |
132 |
202 |
+53% |
202 |
0 |
202 |
0 |
Far Cry 2 ↑ |
17.6 |
33.3 |
+89% |
36.6 |
+10% |
41.1 |
+12% |
Unreal Tournament 3 ↑ |
61 |
106 |
+74% |
127 |
+20% |
133 |
+5% |
Crysis: Warhead ↑ |
26.5 |
43.4 |
+64% |
47.4 |
+9% |
47.4 |
0 |
World in Conflict ↑ |
17.4 |
25.8 |
+48% |
33.6 |
+30% |
40.4 |
+20% |
Grand Theft Auto 4 ↑ |
9 |
37.1 |
+312% |
54.9 |
+48% |
60.8 |
+11% |
Left 4 Dead ↑ |
67 |
114 |
+70% |
128 |
+12% |
120 |
-6% |
The first diagram shows the familiar hump in the two-cores area. That's right: multithreading means double-threading in most games. However, before we proceed to the analysis of game preferences, let's deal with one egregious disgrace -- results in Grand Theft Auto IV.
In this case we are absolutely sure that it's the fault of programmers (it cannot be explained with our mistake -- we've rechecked our results 15 times). Even if the unthinkable performance gain of 312% (!) from the second core may have some objective reasons, they still have to test their products! Or doesn't Rockstar Games own any computers with single-core processors*? It seems like it. By the way, we didn't include GTA4 results into the second diagram not to show off these 312%.
* On the other hand, GTA4 origins suggest another idea: it was a slipshod job of programmers that ported the code. Indeed, programmers that develop games for consoles are not burdened with the eternal PC struggle for compatibility -- hardware configurations of game consoles are invariable. And on the contrary, "main" developers did a praiseworthy job of adequate optimizations that allowed to use resources of even a quad-core system, while the porting programmers lacked the adequate idea of the PC platform.
What concerns the other games, the situation is more or less clear and predictable.
- STALKER: Clear Sky won't set the Thames on fire -- it apparently uses only two threads. Engine developers intended to use the second thread for physics. but there is not much of it, judging by results.
- Devil May Cry 4 is an honest double-thread program. At least it can use the second core more or less efficiently.
- Far Cry 2 looks like a true multithreaded application, not just double-threaded. But it does not use the third and the fourth core efficiently, it uses them only formally. The same concerns Unreal Tournament 3, but it at least manages to utilize three cores.
- Crysis: Warhead also uses no more than two cores.
- Left 4 Dead acts very strangely: it's quite tolerant to the third core and even tries to use it. But its performance drops, as the fourth core is unlocked. It cannot be ruled out that it's also a consequence of some programming mistake.
- There is only one game (not quite new) that shines like a star in terms of parallel optimizations: it's World in Conflict. It's the only game that gains +20% out of 33% from the fourth core. It's a good result even for a serious program, and it's brilliant for a computer game.
Conclusions
Overall results are quite unexpected: we actually needed a quad-core processor to reach a perfect performance level of a dual-core processor. :) But let's go into details. For example, what's the average CPU usage for all tasks in our test procedure? It's 100% for a single-core system, of course -- if there is a job to do, there are no options which CPU will do it. More processor cores provide these options: if a task cannot create more than one active thread, the second core will be idle. Thus, the overall CPU usage in this case is 50%. But let's proceed from theories to practice. What's the average CPU usage in a 1- 2- 3- and 4-core system running our tests.
As you can see, the result agrees with conclusions from the first diagram: the average load of the quad-core system is about 50%, that is half of the cores are not working. What else can we ask? How much faster (percentage) a system gets with a new processor core added? Take a look at the diagram.
So, if we add the second core, the average performance grows by 49%. It's a good result (although the ideal result is 100%, and we deliberately made the X axis as long as this value for comparison). And what if we add the third core? Alas, the triple-core system will be only 18% as fast as the dual-core system. This result is much lower. And the fourth core yields even less dividends -- only 15%. Besides, we know that even this performance gain was possible only due to several applications that can use the fourth core effectively -- the other programs just take a ride in this score, not capable of using the fourth core at all.
So what's the bottom line? Our test results prove that dual-core processors these days are a relatively easy way to raise computer performance: even "home software" works well with such processors, and it's difficult to find a program that would ignore the second core. By the way, Microsoft Windows Vista seems to contribute much to this situation. It can load one core with its background processes -- if not by 100%, but at least to make the second core noticeable, even when a given application cannot use multiple cores efficiently.
Triple-core processors (AMD's brand feature) causes mixed feelings: not all programs can adequately respond to the number of cores different from oddly even, and not all of them can use this alternative potential. On the other hand, three cores do not do any harm, and a correctly written program adequately responds to the third core and can use it. Thus, if we take into account that single-core processors go down to Low-End, while dual-core processors are positioned as reasonable Mid-End solutions, triple-core processors may be regarded as products for "optimistic enthusiasts": they are faster sometimes, and they are not expensive.
Quad-core processors are still professional products both in terms of per-core efficiency and efficiency-price ratios. They are for people, who understand what tasks they need to solve with these processors, and who are sure that the fourth core will be used by their software. They are items of prestige for common users or simply an unreasonable choice made under pressure of aggressive multicore marketing policies of CPU manufacturers.
We can draw such conclusions from our test results. Of course, we don't rule out a possibility that another processor architecture (Intel Core i7) will demonstrate a different effect of the core number on performance. However, it's unlikely.
The next part of this article will also be devoted to AMD Phenom II. In it we'll analyze the effect of memory system and settings of the integrated memory controller on performance.
Write a comment below. No registration needed!