[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