help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Octave 3.6.0 on Windows XP plot fails.


From: Michael Goffioul
Subject: Re: Octave 3.6.0 on Windows XP plot fails.
Date: Wed, 29 Feb 2012 15:17:36 +0000

On Wed, Feb 29, 2012 at 3:09 PM, Martin Helm <address@hidden> wrote:
>> No, I think it's because of the principle of hyperthreading. HT does
>> not mean you magically have 4 independent cores out of 2. You still
>> have only 2 physical cores, but some parts of each core are duplicated
>> such that they can appear as 4 instead of 2 at the OS level. However,
>> the processing unit is not duplicated: so within a single physical
>> core, each logical CPU will have to wait its turn on the processing
>> unit.
>>
>> So roughly, if you have 4 operations that you can perform in parallel,
>> only 2 will be done really simultaneously.
>>
>> HT can increase performances when you have 2 threads, one of which is
>> stuck for some reason (waiting for data for instance). Then the other
>> thread can use the processing unit while the first one is waiting. But
>> if the 2 threads need the processing unit at the same time, you won't
>> gain anything.
>>
>> So I think that what  Xianyi Zhang means is that matrix multiplication
>> is this kind of operations that cannot really benefit from HT. For the
>> record, I've tried a 2-threaded ATLAS on a P4-HT (1 physical CPU, 2
>> logical CPUs) and the performances were lower than a single-threaded
>> one.
>>
>> Michael.
>
> Performing now my previous trivial example on my atom netbook (dual core atom
> with hyperthreading, htop shows 4 threads are used) ATLAS gives me a speedup
> by a factor 2.4 (so more than double!) when using multi vs single threaded
> atlas.

You're actually confirming my explanation. Indeed 2.4 is better than
2, but way lower than 4. In various cases, HT will improve
performances, because some threads are actually stuck waiting for
data. But that's not always the case.

Michael.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]