The Desktop Traffic Jam

Multicore chips are a boon for desktop processing speed, but software can't always keep up. Here's why.

1 2 3 4 Page 2
Page 2 of 4

Lots of algorithms have "significant chunks" of serial code, Williams notes. "People with Ph.D.s have been working on this problem for 20 years -- it is not a matter of solving it by sitting at your desk and thinking hard for a few minutes. Typically, the way around Amdahl's Law is to simply find embarrassingly parallel problems, but you can't escape the fact you're limited by the serial portion of your calculations."

Even with parallelization, Williams explains, performance doesn't scale linearly -- two cores can give nearly 2x acceleration, but four cores give less than 4x acceleration. This is due to memory bandwidth issues (i.e., the RAM being slower than the processor) and delays imposed by interprocessor communications.

"We can't take advantage of eight cores without improved memory bandwidth, and I know of no application that could take advantage of 16 cores," Williams says. "Memory bandwidth is a huge issue, because after a while, you are just waiting for the memory." New processors with onboard memory controllers are offering some help, he adds. Onboard memory controllers speed up RAM access, but they also lock the CPU into using a specific type of memory.

References to Amdahl's Law may be somewhat premature, however. Aside from high-end games and video software, it may be years before parallelization for desktop applications is the norm.

When Microsoft first shipped Windows, most programs were still written for DOS, and it was a good 10 years before the industry saw more Windows than DOS software. Similarly, "most of the software on the shelf now is not parallel, and some, like word processors, never will be," says Halfhill.

On the other hand, "the presence of parallelization APIs in Windows 7 and in the Macintosh Snow Leopard operating systems will speed up the process, and the low-hanging fruit may be done in three to five years," Halfhill says. Further, not every program needs to be rewritten.

Microsoft's Smith agrees. "Not all software will be converted in five years, but we will have made significant progress," he says. "This is a more profound change than has ever been seen before in computing."

Microsoft's current desktop operating systems, Windows XP and Vista, "like most other systems," use the kernel to schedule threads on the multiple cores of the system, Smith explains. A thread is a code segment that the computer will execute entirely before executing another thread, which may be from another application entirely.

"When a thread needs to wait for something, like I/O or another thread's output, the kernel runs some other ready-to-go thread on the freed-up core," Smith explains. "When the first thread's wait is over and it becomes eligible to run again, it will eventually get a core assigned to it."

In general, consumer operating systems "don't do anything very smart" with multiple cores, says Jim Turley, head analyst at Silicon Insider, a consulting service and newsletter in Pacific Grove, Calif. Vista is "reasonably aware" of multiple cores and is "fairly smart about dividing up background tasks and foreground tasks." Vista can run games on one or two cores while housekeeping tasks run on the others.

1 2 3 4 Page 2
Page 2 of 4
Shop Tech Products at Amazon