New algorithms to make parallel programming easy

New algorithms developed by researchers at the University of Maryland's A. James Clark School of Engineering promise to make highly parallelized systems easy to program for. As DailyTech reports, the researchers have put together a prototype system made up of 64 parallel processors they claim is 100 times faster than current desktop PCs. Citing the example of hiring 300 cleaners to clean a house in one minute instead of hiring one to clean the same house in 300 minutes, project lead Uzi Vishkin explains, "The 'software' challenge is: Can you manage all the different tasks and workers so that the job is completed in 3 minutes instead of 300?" He goes on to say, "Our algorithms make that feasible for general-purpose computing tasks for the first time." Vishkin has been working on those algorithms since 1979 and began building prototype hardware to test them in 1997. DailyTech says he finally completed the prototype in December 2006.

Response to Vishkin's work seems positive so far. Charles E. Leiserson, who is a professor of computer science and engineering at MIT, says the prototype "uses rich algorithmic theory to address the practical problem of building an easy-to-program multicore computer." Burton Smith, technical fellow for advanced strategies and policy at Microsoft, also sounds enthusiastic. "[The prototype] will be able to exploit a wider spectrum of parallel algorithms than today's microprocessors can, and this in turn will help bring general purpose parallel computing closer to reality," Smith says.

Vishkin may not be the only one working on such algorithms, though. We learned last week that Intel is developing a C-based programming model called Ct for its upcoming Larrabee hardware. With Ct, Intel reportedly aspires to let developers write code for parallelized hardware as if they were programming for a single-core system. (Thanks to TR reader Martin for the tip.)

Tip: You can use the A/Z keys to walk threads.
View options

This discussion is now closed.