[Insight-users] Multithreading in ITK

alex Dowson alexdowson at hotmail.com
Tue Jul 26 07:33:25 EDT 2011


Hi

You can also use itkStreamingImageFilter for to specifiy the number thread per image division.


Alex


From: Juan Carlos Prieto 
Sent: Tuesday, July 26, 2011 1:57 PM
To: insight-users at itk.org 
Subject: Re: [Insight-users] Multithreading in ITK

Hi Rob, 

Check itkImageSource, this abstract class has the methods to create a multithreaded algorithm. 

virtual void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, int threadId );
  virtual void AllocateOutputs();  
  virtual void BeforeThreadedGenerateData();  
  virtual void AfterThreadedGenerateData();

If they are implemented then when update is called, the algorithm will divide the image and call the corresponding number of threads.

bye,

Le 26/07/2011 00:03, robert behan a écrit : 
Hi there,

I am developing an application for reconstructing MRI images and
performing real time image processing ( i,e image processing ) as I
would like to explore the effect of mutlitthreading on execution speed

I am not exactly sure how multi-threading works in ITK so I would
appreciate some guidance on this. Please correct me if any of the
following is incorrect:.

I originally assumed the user would have to write the code themselves
if they want to implement multithreading, but as I understand it you
are only required to do this if you are writing your own custom
filter? In which case multithreading is already implicitly implemented
in a lot of the ITK filters and is automatically used if your code
runs on a multi-core processor?

For example, if I apply the FFT filter to some kspace data, will it
automatically execute on the 4 processors of my machine or do I need
to explicitly tell it to do do?

I presume if no multithreading libraries are specified when building
iTK in cmake then the code will automatically execute on one
processor?

I did build ITK and checked the CMAKE USE WIN32 THREADS so I think my
code should automatically run on the four processors but I am not sure
how to check this? I checked the windows task manager when I executed
my code and the four processors appear to fire up but I would like to
verify this somehow in ITK?

Also how can I set the number of processors I want my code to run on?

Any guidance would be much appreciated,

Rob
_____________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.html

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-users


-- 
Juan Carlos Prieto 
Phd Student 
CREATIS Tel:+33472438918 
7 Av Jean Capelle 
69621 Villeurbanne Cedex 
France 
Personal page 


--------------------------------------------------------------------------------
_____________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.html

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20110726/dcfe3591/attachment.htm>


More information about the Insight-users mailing list