Thread Level Parallelism - Design Decisions on Ace’s Hardware
I hesitate to recommend this article. It has some good points, but quite a few bad points. I’ll share:
It’s too long
It’s too hardware centric (I’m a software guy. I care most about how to write software for the new CPUs)
I don’t agree with his view of the “low-end” (2 proc servers) market or the games or console market. He seems to indicate that Hyper-Threading is useless at the bottom end. Also, he seems to think that dual-core has no use in the home market. But then he makes an exception for the PS3 (contradicting himself, in my opinion).
I don’t agree with his view of marketing and licensing issues. Software vendors have already said that they won’t stand in the way of multi-core CPUs. They’ve indicated that they would be flexible.
I bring this article up because:
Just like 64-bit processors, systems with multiple CPUs (or multiple cores) are coming soon (or already here!)
We need to write code to support this. On a Hyper-Threaded dual-processor system, the OS sees 4 CPUs! When you run Doom3 on it for example, it’s only using 25% of the CPU. What a waste! When dual-core CPUs come out, it’ll be even more important to find a way to keep those CPUs busy.
The CPU terminology is getting confusing. We’ve got multi-processor, multi-core, and multiple threads per core. Add Hyper-Threading to the mix, and it gets hard to sort everything out.