Editing Memory and Multi-core Programming

Written by Mark Mackay

November 8, 2009 | 10:09

Tags: #bing #cpu #dual-core #interview #multi-core #processor #quad-core #transactional-memory

Companies: #bit-tech #microsoft

Back To The Classics

Harris explained that one of the problems with working on research of such fundamental programming processes as TM, is proving that it works and producing quantifiable results in real-world applications.

Fortunately, Harris and his collaborators at the Barcelona Supercomputing Centre just so happened to pick one of the most awesome classic FPS games ever made as a proof of concept for their research. id Software's Quake (yes, the original) gives us a good example of how TM implementation might benefit our beloved online gaming experience.

If two people are in the same room at the same time and were to interact with the same object, this could inevitably cause a conflict in events. While the game server was processing an object (such as a table and chairs) that you were both interacting with, one CPU core was held up while the other one finished using a bit of data for a calculation. Included in this hold up was the bit of information that said that you fired your gun first, but instead your opponent gets the frag because his shot gets processed first – the outcome is your sorry behind gets fragged.

Memory and Multi-core Programming* Transactional Memory - How It Works
This is the Barcelona Supercomputing Centre where a bunch of Microsoft guys played Quake and got paid for it. Don't worry though, it makes us wonder if we're in the right job too.

Granted, this sort of scenario is a rare event, and other factors like network traffic play a big factor too, but of all the kills on all the games on all the servers, it's one worth putting a stop to for the benefit of everyone's game. We asked Harris why the team decided to use Quake as their case study.

"We’d seen a talk by Tim Sweeney from Epic Games at the POPL computing conference a few years ago, and in that talk Tim Sweeney argued that TM was a good fit for games... so we thought we’d try it out in practice."

Harris went on to tell us that "the choice of [i]Quake was largely based on what was available to Ferad Zyulkyarov"[/i], a colleague of Harris also invested in this field of research.

"He’s working on a PhD about programming using TM, and so needed to use a game that was easily available, and which had already been studied by other researchers for comparison."

Memory and Multi-core Programming* Transactional Memory - How It Works
The accuracy in server communication of online multi-player FPS games such as the Quake series benefit from Transactional Memory. Eventually, it could also play a part in bumping up our frame rates too.

While accuracy was increased in server-side communications, we're sorry to report that the TM implementation as yet doesn't bump the frame rate: a factor somewhat more important to gamers we must admit.

"I don’t think there was an improvement in the FPS," Harris tells us, however, that too should be on the cards in the future as, "...a lot of the code ended up much simpler. We were using one of the very earliest research prototype implementations of software TM, however, so we’d expect performance to improve a lot as the implementation becomes more mature, and for a hardware TM implementation to be much faster too."

It's common knowledge amongst hardware enthusiasts that their multi-core CPUs aren't being used to their full potential. However, it does sounds like research such as this could take us a good step towards those glory days. We asked Harris if we needed more than just TM to realise that dream;

"I think TM is just one piece of the answer to this, and that in practice we’ll need several different complementary approaches." Regardless though, it's still reassuring that work is in progress to eventually make maximum use of all those lovely CPU cores.
Discuss this in the forums
Mod of the Month June 2020 in Association with Corsair

July 1 2020 | 17:34