The Channel

US comp-boffins claim fix for multicore 'concurrency bugs'

Pleasurable programming for plentiful processors

graph up

American computer boffins say they have developed new software which makes programming of multi-processor machines much easier.

"With older, single-processor systems, computers behave exactly the same way as long as you give the same commands. Today's computers are non-deterministic," says Luis Ceze, computer science and engineering prof at the University of Washington, Washington. "Even if you give the same set of commands, you might get a different result."

Today's consumer dual-core systems may not be that hard to figure out, but according to Ceze and his colleagues it gets harder and harder to design reliable code as the number of cores goes up. At the highest end of the scale, with the hundred-thousand-core monsters of the heavyweight supercomputing league, "concurrency bugs" - where changes in wire temperature or other hard-to-predict shifts can alter the sequence in which information arrives and gets processed - can be a nightmare.

"With multi-core systems the trend is to have more bugs because it's harder to write code for them," says Ceze. "And these concurrency bugs are much harder to get a handle on."

Next week at a conference in Pittsburgh, Ceze's colleague Tom Bergan will present a software version of some rules for multicore programming that their group developed last year.

"We can compress the effect of thousands of people using a program into a few minutes during the software's development," says Ceze. "We want to allow people to write code for multi-core systems without going insane."

Needless to say the prof has a start-up company to tout, in this case PetraVM. The commercial version of the multicore bug-spotter ware will be known as "Jinx", which "makes any errors that are going to crop up in a program happen quickly".

There's more on the underlying research here, courtesy of Washington Uni. ®

Sponsored: Achieving rapid delivery of high quality software with continuous delivery