When will 4X cores = 4X performance?

scyle

Distinguished
Mar 2, 2008
60
0
18,630
When do you guys think it will happen? Near future? I ask this because I'm deciding between a 9300 and a 8400, and I've seen alot of threads here about it.

How long will it take for software to be made for the extra 2 cores? I mean it didnt take that long for it to be optimized for two, why would 4 take so much longer? :)
 

karol4

Distinguished
Oct 29, 2007
129
0
18,680
video editing apps use 4 cores and some games like crysis and supreme commander. If you don't want to upgrade in he next 3 years get the quad core.
 

ryman554

Distinguished
Jul 17, 2006
154
0
18,680


Really, you need to ask the HPC community.

Realistically, never. Unless you're doing somethiing massively parallel (or multiple tasks at a time). Most (all?) programs have required sync points. So you will alwyas have some processort with "nothign to do". You never hit perfect scaling... in fact you end up quite far from it as the number of processors goes up. It's logarithmic (I think).
 


It depends on the program. Some programs are easy to make multithreaded- high-performance computing applications such as computational fluid dynamics and molecular interaction modeling programs are very well-suited to this task. So are rendering programs. Others are very tough to make multithreaded as the calculations must be done serially due to a dependence of the next calculation on the answer of the one preceding it. Most programs today are somewhere in the middle, with some ability to use multiple threads, but with one thread being the "fat" thread with several other low-resource-usage background threads. When will this change? It depends on the application, the sales model, and the need for performance. HPC apps need every bit of performance they can get as they run for days, months, or years on already very powerful machines, so they are already highly multithreaded. Games and video encoders hit hardware pretty hard and thus were early candidates for multithreading as people are willing to pay more to get better performance out of their hardware, which offsets increased development costs. Other applications that do not hit the hardware all that hard will likely never become multithreaded as the increase in cost of better coding will not be paid off.

You will NEVER get an increase of 100% when doubling core count due to overhead in thread synchronization and resource contention. The losses can be pretty significant and outside of synthetic benchmarks, seeing scaling over 80% with doubling of cores is pretty uncommon.
 

rodney_ws

Splendid
Dec 29, 2005
3,819
0
22,810

That's kinda what I was thinking... won't there always be some overhead with multiple-threaded applications? Kinda like I'm never expecting SLI to double/triple the FPS we're getting out of games... I expect improvements... big ones, but I don't think it'll ever be one hundred percent.
 

Zenthar

Distinguished
I don't think most applications were actually optimized for 2 cores when they were introduced, I think most of the performance gain simply came from the fact that the OS background tasks could be handled by one core while the other tackled the more CPU intensive without being interrupted by the background tasks.

Being a software engineer, I can tell you it isn't tougher to optimize an application for 4 cores than in it for 2. If an application runs faster on 2 cores, but not more on 4, it's either because of the above explanation, because a dumbass developer used a fixed size thread pool (I would see no reason why) or the application is bottlenecking elsewhere (ex: I/O, if your application could crunch 150MB/s of data from disk, but your HD can only feed it 100MB/s ... nothing you can do about it).
 

dagger

Splendid
Mar 23, 2008
5,624
0
25,780



Yes, in term of programing complexity, the gaint leap is from single core to 2(multi) cores. Going form 2 to 4 cores is a small step when you have already done the extra work for dual core. It should take less time for developers to release quad optimized programs, compared to how long it took for them to go dual.
 

enewmen

Distinguished
Mar 6, 2005
2,249
5
19,815
People (Microsoft, Sun, Intel, etc) are working hard on this same issue.
Some tasks can easily scale to 2,4 or more cores. While other tasks require serious work for a modest gain (like others here said).
So since multi-core is the future, the difficult to scale tasks will scale better (closer to a 100% gain). Such as every OS will require multi-core, every compiler will write code for multi-core, etc. More cores will = more performance/fun.
 

emp

Distinguished
Dec 15, 2004
2,593
0
20,780


Really...? Because Raytracing begs to differ, it basically has a completely linear scaling. (Meaning if you have 4 cores over 2, then your performance doubles, and so on...)
 

Zenthar

Distinguished
leon2006 is right. We may get really close, but perfect scaling is probably impossible since the more cores there are, the bigger the effort is needed to synchronize them. 3D Rendering is a very parallelizable AND parallelized process (3DSMax for example), but it cannot achieve 100% scalability. The limitation rests in the nature of parallelism whether GPU, CPU, HD, ...
 

dagger

Splendid
Mar 23, 2008
5,624
0
25,780



Of course not, but that's just a matter of principle. All that counts is how close you can get. :p
 

scyle

Distinguished
Mar 2, 2008
60
0
18,630
Well I did not mean LITERALLY 4X, but a more noticeable than right now. I mean I see games running on 2X cores not that far behind (eg e8400) the quads. Isnt that kind of odd? I mean, shouldn't we be seeing far better results on the quads if games like SupCom and UT3 were advertised as being multithreaded. Just the performance gap between quad and dual seems mighty small to me.
 

Zenthar

Distinguished
Not everything can be multi-threaded. If the bulk of a game is 3D rendering, multi-core won't help. Games like Supreme Commander on the other hand, are more CPU intensive because they try to manage a lot of sprite AI at all time and it does benefit a lot from more cores.
 

yipsl

Distinguished
Jul 8, 2006
1,666
0
19,780


When will it happen? When Intel bribes Microsoft with enough money to make it happen. It's Microsoft that's holding everyone back. The same's true with 64 bit computing. When the OS delivers, then the application vendors will follow. The last group to optimize for 4 cores will probably be the average game developer.

How long will you keep your CPU? How often do you upgrade? I don't think we'll see many more games supporting quad cores before December 2008 at best, but I'd still consider a quad over a dual core because of the applications running in the background. These are not the days of DOS where we disable TSR's before playing a game.

I keep my antivirus and antispyware apps in the background and Vista hogs up enough resources, so I can see a game using two cores, and the OS and apps sharing the other two, but not keeping them heavily used.


 


I'm certainly not a big fan of MS and agree they've been behind the curve in lots of areas of OS and software development, but those statements are just wrong. Microsoft has made SMP-capable OSes since 1993 with Windows NT 3.11 and the released-in-2001 Windows XP supports a whopping 32 cores. The OSes certainly are able to handle many threads and schedule them on multiple CPU cores and have been for quite a while.

MS has also been making 64-bit OSes since 1993 as NT again shipped for i386, PPC, and the 64-bit DEC Alpha. Windows XP shipped in 2001 in both i586 and IA64 (Itanium) versions. Yes, they were about two years late with the amd64 port, but that wasn't the reason that few used amd64 OSes until maybe a year ago.

The last group to optimize for 4 cores will probably be the average game developer.

Ah ha, now you're getting at the meat of it. But with the exception of Flight Simulator and HALO, Microsoft doesn't make much for PC games unless you count Solitaire and Minesweeper. They write OSes, office software, media programs and have some online businesses. It's third-party developers that are at fault here. They are also mostly at fault with the crappy adoption of the amd64 port of Windows XP as they didn't write drivers for the OS, rendering it unusable unless you had pretty old and generic hardware supported by the generic written-by-MS system drivers.

How long will you keep your CPU? How often do you upgrade? I don't think we'll see many more games supporting quad cores before December 2008 at best, but I'd still consider a quad over a dual core because of the applications running in the background. These are not the days of DOS where we disable TSR's before playing a game.

OSes are much different than those in the DOS days, particularly in the area of multitasking. Memory was also a big issue in the DOS days as you ran a real risk of running out of RAM. The 640 KB limit was one limit, the extremely high cost of RAM was another. Today, RAM is inexpensive and there is a lot more "wiggle room" than in the past due to the large amounts of RAM most systems support.

I keep my antivirus and antispyware apps in the background and Vista hogs up enough resources, so I can see a game using two cores, and the OS and apps sharing the other two, but not keeping them heavily used.

Antivirus and antispyware apps generally don't consume much for CPU time unless they are running. And then, your system bogs down much more due to HDD I/O contention rather than CPU time contention. Pop open your task manager and sort the processes by CPU utilization. You'll see system idle tasks at almost 100% of time with very little else doing more than occasionally blipping to 1 or 2% every so often. This is what happens in the background when your game is running- a whole lot of nothing. You'd see very little difference between a dual core and a quad-core CPU at the same clock speed in the situation you described.
 

blacksci

Distinguished
Jan 25, 2008
818
0
19,010



Ok i have to disagree with the first paragraph in one aspect, microsoft is not to blame here, the os can only move so fast, now as for apps, well quad or dual your facing pretty much the same problem, a inability to go from a single thread proccess to multiple theads. The dirty little secret that dual core folks get confused with is that if it only utilizes one core and not two, three, or four, everyone is at a disadvantage here. Multil threaded apps dont mean exclusively 4 cores, it means dual cores also. As far as seeing a 4x imporovement of something of the like, that aint gonna happen, called the law of diminishing returns. The only advantage i can see going dual over quad right now would be your overclock (if thats your thing) since its well known that dual cores can overclock higher then quads, but honestly, you wont see the diffrence in performance, unless you run a benchie.
 

StevieD

Distinguished
Jun 29, 2004
548
0
18,980
There are always bottlenecks in every process, application or equipment. Therefore there will never be a 1:1 sync of usage versus availability.

At every stage in computer development there has been a problem of 1:1 sync. Just a gut hunch, but I suspect software has always lagged behind hardware development.

Today would be a good example of such lag behind. Just a few years ago every chip was a single core. A faster chip was a chip with cleaner internal operations capable of running at a faster speed completing more processes per unit of time. Software was written for the single core and there was no consideration given to any other chip technology. And then chip technology does a dual and quad advancement. Software companies knew the advancement was coming, but having software written for a dual core was a bad idea unless there was some major backward redundancy for all those single core chips on the market. Even if the software company wrote for the dual core (or quad core) all that that backward redundancy could potentially bottleneck the software.

Yes, there are companies (Adobe comes to mind) that are aggressively writing for dual and quads. Of course most Adobe users tend to be closet hardware geeks who have the lastest chips installed in their computers.

I suspect we will see big improvements in games and software as the single core chip becomes a rariety in the market. The writters will be free to advance their work without having to consider older technology.

But as soon as the software is about to catch the chips, I will be installing my 64 core chip and sending the software back to the drawing board.

 

endyen

Splendid
Ryman, Zanthar and Mu have given good answers. They have missed something though.
If you have 4 processor intensive progs, you can run them concurrently. You will get 4X the perf.
Multi core is as much about multitasking as it is about multithreading.
 

Zenthar

Distinguished
I think that is why dual-core seemed such a boost without applications having to be "optimized" for it and why multi-cpu has been around in the server environments for so long.
 

yipsl

Distinguished
Jul 8, 2006
1,666
0
19,780


It all depends on which Microsoft OS one uses. Perhaps Vista Home Premium is better than XP Home, but recent comments by Microsoft to the effect that they're interested in building frameworks for multicore programming leads me to believe that Microsoft's retail and OEM home OS's aren't in the same league as their business or server oriented OS's in supporting as many cores.



I don't blame Microsoft for lack of quad core support in games. Halo's their big franchise and people who want FPS seem more interested in Crysis right now. My whole point that these aren't the days of DOS is that Windows runs so many processes in the background that more cores can help a bit even if the game's only optimized for two cores. IMHO, a quad core for a new build over the next six months is futureproofing.



They don't consume much CPU resources now. I agree with that. My point is that they used to and they had to be turned off. Still, having more cores than you need is like having 650 or 850 watts in a quality PSU when you only need 450. As far as it goes, my antivirus only slows down games when a scan's going and I usually pause that. It's Azureus that uses a bit more system resources while I play LOTR online (plus bandwidth, but I pay for a higher than basic tier broadband because we get unlicensed fansubs and raws every season).

Like most people today, I'd just as soon be able to burn a data DVD, download anime, play LOTR online all at the same time without any lag. I'm just holding off on a quad core because I like to keep a CPU for two years and even though I want a B3, Deneb is due next December.

I do look forward to Alan Wake and other games that will support more cores, but since I got hooked on LOTR online, I don't play as much single player as I used to. It will take titles like Alan Wake or Spore to get me interested. The Witcher's cutscene story's great, but I don't like the gameplay as much and though I was interested in Hellgate London, I decided I didn't have the time to try it before next fall.
 


Perhaps Intel's Nahlem may scale near perfect?

I prefer software not using all my free cores on my pc - i want free speed for the apps im using (multitasking) and windows knows how to use all the cores anyhow.

The problem with scaling from 1-2-4 cores is the cpu core count goes up, the memory sub system, hdd, etc stays the same - the cpu may not be the limit, but rather the other limiting factors.

A Core 2 Duo may do a super pi benchmark 5 times faster then a pentium 4 but they both will boot into windows within the same amount of time - other factors make them equal in ways.
 


That is very much correct, and a trait of multicore systems that is well-used in HPC setups and servers, as well as people doing a lot of rendering, compiling and other high CPU usage/low HDD usage tasks. However, the parent poster seemed to be pretty much just talking about games. You're not going to be running more than one game at once due to user limitations.

@yipsl:

1. MS's multithreaded programming framework is something they're working on for their programming IDEs such as VC++. This is much more intended to make it easier for third-party developers such as game developers to write multithreaded code than it is for Microsoft's OSes to be able to run it.

2. A two-threaded game will run a *little* faster on a CPU with 3+ cores than it will on a dual-core CPU due to system tasks. But the difference is pretty little as many benchmarks show- it is on the order of a percent or three as most of the background tasks are sleeping at any given time and not using much CPU time. I agree with the sentiment that a >2-core desktop CPU is the way to go for the future, but largely because there isn't much of a price difference between a dual and a quad today. If you go back to when the Q6600 was first debuted and it was over $800, I'd pick the $330 E6600 over it any day.

@apache_lives: The Nehalem will not scale near perfect as it suffers from the same issues every other multicore system does. You give excellent reasons why it can't in your last two lines.