Sign in with
Sign up | Sign in
Your question

ANSWER: Why multi-core software is so hard...

Last response: in CPUs
Share
September 1, 2006 4:58:07 PM

I've seen this question, and addressed it alot in these forums. I've found an article written for software engineers that addresses this specific question in great detail.

For those adventurous souls looking to learn more about the problem developers face with multi-threading apps and multi-core hardware, this is a great article:

http://msdn.microsoft.com/msdnmag/issues/06/09/CLRInsid... ( link )

Be forewarned, however, this is difficult topic for most intermediate programmers, so any non-engineers that can take a crack at this and understand it, kudos to you. Either way, perusing the article should still provide some useful info for those interested.
September 1, 2006 5:40:49 PM

Interesting reading so far, one thing that stands out is size does matter (cache, that is :lol:  ). I’m glad I decided to go with an Toledo core rather then the Manchester for my 64 X2, I think Vista will make better use of the 1MB L2 then XP does.
September 1, 2006 6:14:34 PM

QUESTION: Why multi-core software is so hard...

ANSWER: when multi-core software is processing hard-core video..
Related resources
September 1, 2006 6:18:58 PM

It's a descent article for a beginer. Cache performance will depend on the task of the code. I think the real issue is not how to multithread, but to find area of code that can be multithreaded. For example, I've always liked this talk about programming on xbox 360:

Xbox_Threading
September 1, 2006 6:39:16 PM

Cool article. I can't wait to try XNA.
September 1, 2006 8:28:13 PM

Quote:
It's a descent article for a beginer. Cache performance will depend on the task of the code. I think the real issue is not how to multithread, but to find area of code that can be multithreaded. For example, I've always liked this talk about programming on xbox 360:

Xbox_Threading

I think the Xbox presentation underscores the threading problem, like you said. So far, with the few execution units available, it is relatively easy to find threads capable of parallel execution. As more and more cores are available, it will get to threading some of the tasks that right now are viewed as one thread - like game logic. And that's when the problems with identifying a parallel execution logic will start. It's not an easy chore, and definitely against the thinking that reigned programming since its inception.
September 2, 2006 1:11:29 AM

Quote:
I've seen this question, and addressed it alot in these forums. I've found an article written for software engineers that addresses this specific question in great detail.

For those adventurous souls looking to learn more about the problem developers face with multi-threading apps and multi-core hardware, this is a great article:

http://msdn.microsoft.com/msdnmag/issues/06/09/CLRInsid... ( link )

Be forewarned, however, this is difficult topic for most intermediate programmers, so any non-engineers that can take a crack at this and understand it, kudos to you. Either way, perusing the article should still provide some useful info for those interested.


MultiThreaded SW isn't hard. Asynchronous mutlithreaded is the hard thing. That's why MOST games DON'T have ASYNC multithreading. Sync issues are the concern since for xample with games the audio and video have to be sync'd such that the sound goes off when you pull the trigger or with physics, that the box explodes into shards based on the vector info from the projectile. This too has to be sync'd with the operation of the GPU if it's running on a separate thread.

Then there's the input mechanism. It gets complicated and shows why Carmack is JUST getting an MT engine. Managed code may actually give a lot to the task. Also DX 9 can only support so many objects, so DX10 and Vista will really be needed.

The XBOX360 CPU is not as general purpose as X64 so it can have DSP functionality without sacrificing multitasking perf.
September 2, 2006 2:07:56 AM

No Multi-thread/multi-core topic would be complete without bringing up PhysX.
Physics is one of the places I think the Gaming industry will make better use of dual-core cpu’s and multi-treads. And hopefully DX10 and Vista will be the catalyst that makes that happen. I think based on reading, Microsoft is aiming to make Dual-Core and the 64 bits an important part of Vista.
!