[Insight-developers] how can I verify that my code runs on several
processors ?
Luis Ibanez
luis.ibanez at kitware.com
Tue Nov 29 10:03:35 EST 2005
Hi Gaetan,
Are you using a very recent CVS version of ITK ?
TimeProbes in Windows previously returned only a time
with precision of milliseconds, because they used to
use clock() inside.
Recently (last week) the TimeProbes started using
the itk::RealTimeClock internally, which should give
your precision of microseconds. Note that this only
refers to the resolution of the clock, not its accuracy.
---
About your question regarding threads, it all depends
on the place where yuo put the TimeProbe and when you
invoke its Start() and Stop() methods.
If you created the TimeProbe and Started it before
spawning the threads, and stopped it after joining
the threads, then you will get the "wall-time" that
it took to run the threads. This is *not* the sum
of time for thread1 + thread2 + thread3... , but
rather the Max of the time used by each thread.
It will be useful if you post your code...
This will make this conversation less esoteric...
BTW, What operating system are you using ?
Thanks
Luis
---------------------
Gaetan Lehmann wrote:
>
> I'm thinking to something which could explain the result I get: I use
> TimeProbe to measure the execution time. TimeProbe give the CPU time
> which is better than the real time, but what is its behavior with
> several processors ? Does is add the time spent on all the processors
> used ?
>
> On Tue, 29 Nov 2005 15:26:41 +0100, Gaetan Lehmann
> <gaetan.lehmann at jouy.inra.fr> wrote:
>
>>
>> The server contains 4 xeons with hyperthreading activated.
>> The hyperthreading is a part of my problem: I don't know how I can be
>> sure that 2 threads are not running on the same processor. I see 8
>> processors, and I don't know how the CPU numbers are given, so I
>> can't be sure my thread are not running on the same real CPU.
>>
>> But I'm not sure that the lone problem: I get worst and worst
>> performance when I increase the number of threads (up to 4) - it
>> seems very similar to what I get on a single processor system. I
>> think I should get a (small) increase of performance when the number
>> of thread increase
>>
>> On Mon, 28 Nov 2005 16:24:52 +0100, Kent Williams
>> <norman-k-williams at uiowa.edu> wrote:
>>
>>> I don't know what processors your server contains, but it's not
>>> always the case that multithreading increases performance. Intel
>>> HT processors in particular have problems with too many shared
>>> resources between the computation units. The following article
>>> indicates that SQL Server and Citrix Terminal Server both perform
>>> better with hyperthreading disabled.
>>>
>>> http://news.zdnet.co.uk/0,39020330,39237341,00.htm
>>>
>>> I don't know how you can verify that your threads are being spread
>>> across different processors on your server -- perhaps someone else
>>> here does. ITK's threading model generally works very well, but
>>> there may be cases where it does not. For some cases --
>>> particularly short, simple ITK pipelines -- threading has minimal
>>> positive, and possibly negative impact on performance.
>>>
>>> Gaetan Lehmann wrote:
>>>
>>>>
>>>> Hi,
>>>>
>>>> I'm trying to measure the performances of the filter I'm writing on
>>>> a server with 4 processors. I'm quite surprise to see that using
>>>> several threads seem to decrease the performances, as it do on a
>>>> host with a single processor.
>>>> How can I verify that the different threads are running on several
>>>> processors ? It's not fully related to ITK, but I hope someone will
>>>> be able to answer that question on this list :-)
>>>>
>>>> I'm running my tests on linux.
>>>>
>>>> Thanks,
>>>>
>>>> Gaetan
>>>>
>>>>
>>>
>>
>>
>>
>
>
>
More information about the Insight-developers
mailing list