Get the daily SC news wire!

One, Two, Four: StarCraft II and Multicore

Posted 8th Aug 2008 12:21 PM by Kalos

Kalos' Chronicles >> One, Two, Four: StarCraft II and Multicore >> (1) | (2) | (3)

Quadcore.jpg



'Dumb multithreading'

I've decided to coin a phrase to explain why multithreading is not just theoretically better or even potentially better down the line from now, but is actually beneficial here and now. Dumb multithreading. Basically, we already run at least two heavily demanding, complex programs when we are playing our PC games. The game itself is one, and the other is the OS itself and all the components that make it up. The OS has become a vast and heavy resource consumer (as many people are quick to mention Windows Vista is), it is always there and always demanding some processing time. On the old 'single core, single thread' computers most of us use today, as we are gaming the processor is constantly switching between tasks hundreds of times every second, in between the game and any other process that is running. Just hit Ctrl-alt-delete to get into your Task Manager and see how many dozens of system processes you have going on, there can be hundreds of these things going on.

Dumb Multithreading in its simplest form can be explained with a dual core. A decent OS, XP but Vista as well (hopefully I won't get too many complaints about this being Windows-centric) is smart enough to realise as an intensive task is running on one core of the processor to recognise to divert all other minor processes to the idling second core, including its own operation. It does this automatically, to different degrees of effectiveness nonetheless, to yield performance benefits to the user over using a single core processor for gaming uses today. Going back to the road analogy, it would be like pushing all the bicycles and horses on the roads into a lane of their own to allow the car to proceed unhindered in the parallel lane without having to slow down and respond to their presence.

This is one of the reasons why having a dual core processor would yield a large boost in performance over its single core cohorts in most tasks but a quad core does not. The background tasks don't actually overwhelm a whole processing core; they just chip away at its potential for dealing with an important task at the same time and when you only have the one core that can cause quite a diminished performance for certain games that were already limited by the processor's capabilities.


Should I run out and buy an multicore processor then?

The answer to this question is not simple. While it is clear there are advantages, and as time goes on things will only become more and more stacked in favour of the Dual/Multiple core approach with a giant like Intel throwing its weight behind the movement, it is clear from the past that jumping to the latest hot thing before you need it isn't a great idea. Many people rushed to buy early Pentium 4 processors back in 2000 while cheaper and quicker Pentium III CPUs were neglected simply due to the little number that followed the word 'Pentium', had they stopped to look at benchmarks to see the actual performance instead of looking at the Ghz label they'd have realised it was not quicker at all. Going from clueless Joes to the techwise minority, several people purchased Athlon 64 based computers back in 2003-4 due to the belief that having 64 bit extensions would make it compatible with future versions of Windows, allowing them to use it far longer than the competition's Pentium 4 processor. However by the time Windows Vista showed up not only were most versions 32 bit, compatible with the Pentium 4, both the Athlon 64 and Pentium 4 were looking long in the tooth and fairly ragged compared with the Athlon X2 and Core 2 series that had replaced them; the futureproofing didn't work. By the time a 64 bit-only OS will be released, Athlon 64s will most likely be too weak to run it if Vista is anything to go by. Buying for the assumed future doesn't work, and it might not work with multi-cores either.

My personal perspective is to assess the age of your current setup, find out about it, and most importantly decide if it is currently compromising your gaming. If it you're having trouble or just don't know much about your hardware, there are many bored individuals such as myself who exist to part such knowledge and insight if you wish. If you don't need to change things as it is, don't. I happily used a single core right up until this summer despite them being out over three years. Was it the bleeding edge of gaming? No. But it saved me a ton of money on the multicore jump. If I had made that move in 2005 when they launched rather than now, I'd have ended up with an Athlon X2 rather than a Core 2 Quad for the same price, and it wouldn't have really improved anything over the Athlon 64 single core that was in there already. Equally you shouldn't sit on the hedge waiting forever if you have a degrading Pentium II running Windows 98, that's a pretty valid reason for getting a new one in that situation.

Certainly, don't just jump to these multiple core processors because they aren't critical yet, they aren't at a level where they make or break the game experience, and they aren't going to suddenly become more pricey, quite the opposite in fact. This year will see Intel releasing a new series of processors with the eventual aim to replace Core 2 as the high end processor tree, currently known as Bloomfield. It is projected for two, four, and eight core monsters to be made, using a technology known as hyperthreading to create the illusion of there being double the cores available to the PC by treating each core as two separate virtual ones. In essence, next year we'll be seeing the 16 core processor coming out. Well beyond what we'll be able to afford or even think of using at first, but it'll make the multicore designs of today look underpowered and small, and that perception will stimulate lower prices to the consumers for those now-weak looking chips. Hence, why rush there if you barely need it?

Final conclusions - StarCraft II to take Multithread Advantage? On Page 3.


 <  1 2 3 >

Comments

You must be registered and logged in to post comments.
Page 1 of 1 pages
Leord
Posted 10, Aug 2008 01:27 AM
(0)
 

I can’t really stress this enough, but I find it really interesting to see how all these hardware technologies come together, and it all just makes sense when explained by an expert. Well, Not that Kalos calls himself an expert, he’s just to timid wink But I mean I thought I had a decent amount of knowledge, and it’s very refreshing to be filled up on ten times that information.

Thanks a million Kalos, I really appreciate the time you take to write this. I really look forward to the next edition! And some time in a distant future a buyer’s guide as well wink Don’t forget laptops in that guide though, I love laptops!

Reply
 
Troglodyte
Posted 10, Aug 2008 03:58 AM
(0)
 

Another excellent article Kalos and well written too.  I managed to pick up some info on multithreading that I wasn’t originally aware of.

You made a good point about the development start date for SC2; it might be unlikely that this technology will be fully used with the release but it’s definitely something that they should consider for future games.

I probably don’t know enough about game programming, but I assume it wouldn’t be feasible to “enhance” the code with the inevitable expansion?

Reply
 
Troglodyte
Posted 10, Aug 2008 03:58 AM
(0)
 

Another excellent article Kalos and well written too.  I managed to pick up some info on multithreading that I wasn’t originally aware of.

You made a good point about the development start date for SC2; it might be unlikely that this technology will be fully used with the release but it’s definitely something that they should consider for future games.

I probably don’t know enough about game programming, but I assume it wouldn’t be feasible to “enhance” the code with the inevitable expansion?

Reply
 
Yamael
Posted 11, Aug 2008 02:03 PM
(0)
 

This article was really interesting and well written, but you have left me with one doubt:

A game designed with multi-threading in mind so it takes good advantage of multiple processors / cores would run well in a single core computer, or would the constant switching between threads slow down the game? Of course we’re assuming the rest of the computer is up to par and capable of running the game.

Reply
 
Yamael
Posted 11, Aug 2008 02:03 PM
(0)
 

This article was really interesting and well written, but you have left me with one doubt:

A game designed with multi-threading in mind so it takes good advantage of multiple processors / cores would run well in a single core computer, or would the constant switching between threads slow down the game? Of course we’re assuming the rest of the computer is up to par and capable of running the game.

Reply
 
Kalos
Posted 12, Aug 2008 11:59 AM
(0)
 

[QUOTE=Yamael;5641]This article was really interesting and well written, but you have left me with one doubt:

A game designed with multi-threading in mind so it takes good advantage of multiple processors / cores would run well in a single core computer, or would the constant switching between threads slow down the game? Of course we’re assuming the rest of the computer is up to par and capable of running the game.

Indeed, the overhead from managing and coordinating the different threads would be quite costly on a single core processor. I’d expect at least a 10% drop in performance, increasing as more threads are introduced. The threads often have to duplicate some of the same maths as they can’t pull the conclusion out of a seperate thread on that operation at the same point in time. There would be much greater performance benifits in multithread processing machines that decreases in the single thread PC market however. It is just a very difficult process to isolate areas of execution that can be processed seperately, not to mention isolating them from the main thread without making the whole thing inoperable: the main reason why multithreaded applications are usually freshly built rather than recrafting a single thread program, from what programmers tell me it is radically different.

Many applications on the small scale, without major processing demands, simply don’t benefit noticably from a multi-threaded nature, so amature small time programmers rarely go to the both of learning a set of styles that is overly complicated for what they are doing. Right now, multiparellelism in hardware works, but in most software it is ignored, for others it is nothing but a marketing gimmick, and in a minority it is actually benifitting the task. I believe the up to date versions of WinRAR and Photoshop take advantage for gains that can be seen in the time taken for tasks.

Reply
 
Kalos
Posted 12, Aug 2008 12:13 PM
(0)
 

[QUOTE=Troglodyte;5606]Another excellent article Kalos and well written too.  I managed to pick up some info on multithreading that I wasn’t originally aware of.

You made a good point about the development start date for SC2; it might be unlikely that this technology will be fully used with the release but it’s definitely something that they should consider for future games.

I probably don’t know enough about game programming, but I assume it wouldn’t be feasible to “enhance” the code with the inevitable expansion?

It is hard to retrofit multithreaded subsections and actions into a multithreaded design, but I wouldn’t put it beyond Blizzard and their engine. I half expect them to make minor multithreading from the physics processing. It is hard to say what can be isolated and processed seperately, a typical example is AI but there is no evidence or sourcing to suggest such an undertaking. Features added later into the build, such as an expansion, I suppose would have a higher probability of being multithreaded that the original core components, it depends on what kind of things they’ll choose to add I suppose.

Reply
 
PS3
Posted 10, Nov 2009 07:16 PM
(0)
 

The PS3 is hard to program games for due to this reason; the Cell processor it uses is actually several cores of varying speeds and capabilities (making it a very strange choice for a games console processor by increasing the difficulty for developers but it does make for good boasting rights for Sony I suppose).

to verify PS3

Reply
 
Page 1 of 1 pages

Search StarCraft IncGamers

We are Here Where are You?

- StarCraft Videos

Loading...

StarcraftWire's Friends

SC2p.com

(view more)

Link to StarcraftWire with this image:

Syndicate