News flash: Parallel processing coming to a desktop near you!

Ahem.

Parallel processing: Coming to a desktop near you

My first reaction to that article title was admitedly, "what are you talking about? We've had it for years!"

Ever since the Pentium moved to a pipelined instruction processer it has been parallel in some form. The latest chips coming out of Intel are all increasingly parallel in nature. The Pentium Pro introduced multi-CPU systems to the WinTel world, and workstations with multiple processors have been available since a few minutes after the PPro launch. We have some PPro servers that we are just now happily retiring. It's been a while.
The company [Intel] will focus on parallel processing with future products, Otellini said. This will include multicore processors, virtualization technology and a continuation of Intel's hyperthreading technology.
That makes more sense, but it hardly is "coming soon". Perhaps its my inner curmudgeon coming out, but the modern CPU is w-a-y more parallel than our old 486's were.
The move to dual-core processors will proceed much faster for notebook and server processors. Otellini said. More than 75% of Intel's 2006 shipments in those categories will be dual-core chips, with just under half of all desktop chips in that time frame containing two cores, he said.
THIS is much more meaningful. What this says is that ye olde $1000 PC will have two execution cores installed as of late 2006. Dual core chips take a big step beyond the Hyperthreading (yet more parallelism) that already exists in the P4 line. A dual core chip is simply two CPU's on the same piece of silicon. AMD recently announced a dual core chip with the same socket pinout of an existing chip, and all it took was a BIOS tweek (not revision) to make it work.

So where can modern PCs take advantage of this stuff? Well, they already are trying. Hyperthreading presents logical CPUs to the operating system, which itself is already MP-aware. Processes get allocated to a CPU for execution, and the more execution queues you have the faster things theoretically run. Hyperthreading as it exists in the P4 is two execution queues presenting to a single execution core. When CPU 1:0 is paused waiting on a fetch from disk-cache, CPU 1:1 can run as far as it can until it too hits a WAIT. For things like pure computation in memory such as that found in a big spreadsheet Hyperthreading doesn't give you much at all. For things like lots of disk I/O, Hyperthreading also doesn't give you much at all (which is a prime reason hyperthreading is largely useless on fileservers) due to the fundamental non-parallelism of the I/O channel. Where Hyperthreading really assists is when multiple separate processes with unique access patterns do Stuff to the system, Hyperthreading improved CPU efficiency.

Dual core with hyperthreading (and pipelining, and predictive fetch, and multiple layers of caching) allows very efficient use of the execution cores for very heterogenious accesses. The jury is still out on how well Windows (and it'll be Longhorn before all this new stuff comes out of Intel) can handle the new archetecture and what kind of performance boosts it'll get.

This isn't "parallel processing coming soon," it is much more, "improvements to parallel processing coming to desktops." Yeesh.