[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