Originally Posted by jcbray
Just to carry on from that quote, seen as it seems to be talking about hyper-threading - what it does is, simply put, to execute part of thread 1, then part of thread 2, at a fast enough rate that it give the appearence of running 2 threads, but still, only one is executed at once.
That's not quite true. Hyper Threading is an attempt to make better use of the functional units within a given cores instruction pipeline, if the code is correctly optimised for HT then it is possible to get true concurrency (for example executing a float and integer operation at the same time). I believe the old Netburst architecture has 2 integer ports and 1 floating port per instruction pipe, so if both threads on a single core HT Netburst try to do float ops at the same time then one will block. The ill fated Itantium (IA64) are more float ports per pipe, which is why HT makes more sense on that architecture.
Correctly optimised HT code can yield good wins - take a look the data Luxology presented at last years Siggraph demonstrating the scalabillity of their threading accross cores with and without HT enabled. Of course HT is a added extra and in no way matches the lovelyness of multi-cores.