[Insight-users] Re: Question on parallel computing of ITK

Luis Ibanez luis.ibanez@kitware.com
Mon, 20 Jan 2003 10:47:51 -0500


Hi Fucang,


Here is a partial answer to your question.

It is different to run in a machine with multiple processors
and running in a cluster.

ITK supports multithreading in many of its filters. This will
work straighforward in a single machine with multiple processors
but probably not in distributed environment like a cluster. In a
clusters somebody has to take care of distributing the load over
the different machines, send data to each process and synchronize
the output. ITK does not support this functionality directly.
You may have to use MPI, and insert MPI specific call in the code.


As far as multithreading goes, All the pixel-wise filters are
supporting multithreading. The will use multiple processors in a
single machine.

The list of multithreaded filters is available at
http://www.itk.org/Doxygen/html/group__Multithreaded.html

There are also specific helper classes for managing threads
with the advantage of providing a portable API across-platforms.

Currently, none of the Registration algorithms support
multithreading. Although for most of them, the Metric computation
could be a good target for multithreading. The UNC group have
succeded multithreading metrics for model-to-image registration.
(Julien Jomier and Stephen Aylward may probably give you more
details on this).


   Hope that helps,


     Luis


--------------------------------------------------

> Hi, everyone,
> 
> I have access to a cluster of IBM RS/6000, each computer has four CPUs. The 
> cluster is running AIX 4.3.3.0. ITK was compiled successfully using gcc 
> 3.2.1 without applications or examples, because there is no OpenGL installed 
> in the cluster now.
> 
> Now I want to make use of parallel computing on it, but I do not know 
> parallel computing, I only heard of the name of MPI and PVM. ITK implements 
> Filter Level Multithreading and Application Level Multithreading, but I do 
> not how to use them.
> 
> Firstly, Can ITK make use of multi-processor automatically? in other words, 
> if ITK know the number of CPU, could it make several threads submitting to 
> every CPU? I am afraid the key is no. So could you offer an example to 
> illustrate it?
> 
> Secondly, which algorithm can be threaded, can MultiResolution 
> MutualInformation, Watershed, Levelset algorithm which need extensive 
> computing resource be parallel executed?
> 
> Thirdly, if there a need to study MPI or PVM programming to utilize parallel 
> computation for ITK now?
> 
> 
> Thanks a lot!
> 
> Fucang
> 
>