, a two-year-in-the-making tool from Microsoft Research designed to help developers test for concurrency errors, is set to make its public debut in two weeks.
Microsoft researchers developed CHESS to help developers improve the reliability of concurrent, multi-threaded software programs. More than a few big-name groups at Microsoft have been using the tool, including the Midori distributed operating-system
incubation team, the Singularity managed-code OS
team, the Dryad distributed application-engine
team and the Cosmos distributed-storage
(Researcher Madan Musuvathi acknowledged that these teams, all working on large-scale distributed systems, all have test-driven CHESS, but wouldn't offer any further details -- not too surprising given Microsoft's clamp-down on information on most of these future-oriented projects.)
Musuvathi and his CHESS colleague Shaz Qadeer are set to take the wraps off about CHESS at Microsoft's Professional Developers Conference at the end of October. The two will discuss CHESS, the underlying Concurrency Analysis Platform (CAP)
upon which CHESS and other concurrency analysis tools are built. They also are slated to cover during their talk "future tools from Microsoft Research, including a lightweight data-race detection engine and a tool for finding memory-model errors." (The data-race tool is codenamed "FeatherLite" and the memory-model-error tool is "SoBeR."
While CHESS remains a research project, for now, it seems likely that it is going to move into a Microsoft product group for commercialization, given that Microsoft is seeking external developer input on it at the PDC.
"I'm interested to see what kinds of concurrency problems Microsoft customers have. That will inform our research," Musuvathi noted.
CHESS' primary focus is on helping developers find "Heisenbugs,"
which are hard-to-reproduce bugs that tend to be caused by the interference between two threads in parallel/concurrent programs. CHESS attaches itself to a program the same way a debugger does.
"Testers and developers spend a lot of time chasing these kinds of bugs," said Musuvathi. "They can spend weeks just trying to find one."
The CHESS tool currently available is tailored for Win32 programs, but a .Net version is in the works, Musuvathi said.
CHESS is just one of many parallel/multicore topics Microsoft plans to cover during its upcoming developer conference. Company officials also are set to provide an overview of the Microsoft CCR and DSS Toolkit 2008
, which is designed to help developers build "loosely-coupled, highly concurrent and distributed applications," according to the PDC agenda.