New 360 SDK Library To Make Multithreading Easy

xbox360left.jpgActually, I don't think anything could make multithreading less difficulty for a developer, short of ancient Aztec magic. You know, because the Aztecs were just awesome with the whole concept of hardware threads and "Tony" units.

Unable to tap into whatever the Aztecs knew, Microsoft has come up with its own solution. Well, for the Xbox 360 anyway. Included in the August 2007 SDK for the console was a new library, called XMCore.

Microsoft's Pete Isensee detailed the features of the new library at Game Connect last weekend. To put it simply, XMCore will make "lock-free programming" easier for game developers.

So what the hell is lock-free programming?While there's multiple ways to approach multithreading, one method Microsoft recommends is called "message-based concurrency". Using message-based concurrency, each thread owns its own data, and instead of threads accessing common pools of data, they send chunks of information between themselves.

The problem is, in order to write to a piece of data, a thread has to "lock" it, to prevent other threads from tainting it while the work is being done. Managing data locks can be a massive headache for a developer, and, despite the performance benefits and scalability of message-based concurrency, it's just too tricky and time consuming to implement. According to Isensee, it's also incredibly easy to get wrong.

With XMCore, locks should no longer be a barrier to making message-based concurrency work. That's the plan anyway.

Don't worry PC users - Microsoft's intends to trial XMCore on 360 and, if all works well, bring it across to Windows.

If all of this has gone over your head, basically it's good news for multi-core games development... if you own a 360 or PC.


Comments

    Interesting. Concurrency is nasty business especially when dealing with threads that have small amounts of coupling between the data.

    I've never heard of message-based concurrency but it sounds awful, hah! I would have felt maybe dividing up that "common pool" of data would have proved a more useful method allowing for the ability to assign a common pool to groups of threads. But hey, like I said, I haven't heard of it so it could be a dream...but I doubt it...

    less locks is a good thing, the name is confusing because it's not really lock-less programming. I think it's a great idea to get more buck for your tony.

Join the discussion!

Trending Stories Right Now