[Insight-users] ITK.. parallel processing?
Luis Ibanez
luis.ibanez at kitware.com
Thu May 17 10:55:03 EDT 2007
Hi Steve,
1) ITK will take advantage of a single machine with multiple CPUs.
ITK will discover the number of CPUs, as long as they are reported
correctly by the operating system. You can however, specify to ITK
what is the number of threads that you want to use. So, in a machine
with 64 processors you could limit ITK to use only 10.
2) Your recollection is correct, some ITK filers will use the multiple
processors, some others will not. In most cases this is due to the
fact that some algorithms are not parallelizable.
In general the list of multi-threaded filter can be found in
Doxygen by looking at the "Multi-threading" page:
http://www.itk.org/Insight/Doxygen/html/group__MultithreadingGroup.html
here is the list of multi-threaded filters:
http://www.itk.org/Insight/Doxygen/html/group__Multithreaded.html
Since this is information that is entered manually in the
Documentation, we may have missed some. In practical terms,
the filters that support multiple-threads will have implementations
of the method:
ThreadedGenerateData()
while those that only use a single thread will implement the method
GenerateData()
3) Rigid registration currently will not benefit from multiple-threads.
There is however an ongoing effort lead by Stephen Aylward for
parallelizing some of the image registration methods in ITK.
Registration could be parallelized by distributing the
computation of an image metric for a give set of transform
parameters, or by giving different processor the task of
computing the full metric for independent instances of the
transform parameters.
Please let us know if you have additional questions,
Thanks
Luis
========================
Steve M. Robbins wrote:
> Hi Luis,
>
> This topic is timely for me, since I've been asked to look
> into "scalability" of ITK (and of VTK).
>
> On Thu, May 17, 2007 at 10:28:53AM -0400, Luis Ibanez wrote:
>
>
>>Or are those machines multiprocessors, or multi-cores
>>and you were looking into taking advantage of the
>>multiple processors ?
>>
>>BTW: What type of image registration are you interested in ?
>
>
> We'd be using a single machine with multiple CPUs or multiple cores.
> Is this detected automatically or do we need to specifically tell ITK
> how many CPUs/cores to use?
>
> My hazy recollection is that some filters take advantage of multiple
> threads and some do not. How do we tell which can take advantage?
>
> Can one say, generally, what kinds of problems benefit from multiple
> threads? Is a rigid registration problem one of them?
>
> Thanks for any insight into this,
> -Steve
More information about the Insight-users
mailing list