[mythtv-users] What is a "dual core processor"?

Robert Johnston anaerin at gmail.com
Thu Dec 4 19:45:26 UTC 2008


On 04/12/2008 1:00 PM, Jeff Thurston wrote:
> >> Some or all Pentium 4's have hyperthreading, which means that one 
core can
>>
>>> hop between two instruction streams.
>>
>> Has anyone ever found this to be a benefit?  Every time I've tested
>> hyperthreading under real-world workloads, I've found it decreased
>> performance, so I now turn it off in the BIOS as a matter of course.
 >
 > Sorry for the top-post, I use Outlook :/

Fixed that for you. :)

 > Hyperthreading has been described by many as "latency hiding".
 > I won't go into gory detail of what that means, but the simple answer is
 > "No." it is nothing close to dual-core. It was/is mostly a gimmick to get
 > around the poor performance of the early Pentium4 design.
 > For AV processing, hyperthreading could even hurt your performance.

Indeed. Traditionally, Intel processors have had a long (In the case of 
the early P4's very long) instruction pipe, whereas AMD processors had a 
(comparatively) shorter pipe.

What this means is:

For repetitive tasks (Raytracing, audio/video encoding, cryptography), 
the long pipe of an Intel processor is best, as the task can be handled 
with one big instruction "set", which can be contained within the long 
pipe and run unhindered within a single clock.

For rapid task switching, and better multitasking, AMD processors are 
more efficient, being able to keep their shorter pipes filled with 
smaller instructions, at the cost of being able to "do less" per clock.


Hyperthreading was Intel's attempt to answer the problem of their long 
pipes going to waste in heavily-multitasked environments. Essentially, 
when Hyperthreading is enabled, the task pipe is filled as much as 
possible with instructions that are executed "out of order", so a 
"short" add and a "long" divide would be placed together to make most 
use of each clock cycle, even if they were meant to run add, add, 
divide, divide.

This means that for heavily multitasked systems, Hyperthreading was a 
bonus. However, when doing heavy processing already optimised for long 
pipes, the overhead of analysing the instruction stream to see how it 
could be optimised leads to slower execution.
-- 
Robert "Anaerin" Johnston


More information about the mythtv-users mailing list