Fwd: [Insight-users] dual processor
Karthik Krishnan
Karthik.Krishnan at kitware.com
Wed Dec 14 14:48:44 EST 2005
Mark Wyszomierski wrote:
>
>
> ---------- Forwarded message ----------
> From: *Mark Wyszomierski* <markww at gmail.com <mailto:markww at gmail.com>>
> Date: Dec 14, 2005 2:03 PM
> Subject: Re: [Insight-users] dual processor
> To: indian rock <indianrock at gmail.com <mailto:indianrock at gmail.com>>
>
> Ah sorry, my method would only work for multiple images/volumes.
> I know the registration process can be very time consuming - it would
> be great if the registration filters were internally multithreaded,
> though
> that would require a complex reworking of the algorithms I suppose...
This might mean threading the ImageToImageMetrics.
The ImageRegistrationMethod class uses an optimizer that queries the
metric for the metric value (and if necessary the gradient/jacobian). It
is this value that that the optimizer tries to optimize. For a
256x256x256 volume, evaluating a metric (for instance mean squares can
be quite time consuming). Most of the time would be spent within the
GetValue( transformParameters ) / GetGradient( transformParameters ) calls
Jim Miller threaded the MatchCardinalityImageToImageMetric as an
example. See
http://www.itk.org/cgi-bin/viewcvs.cgi/Code/Algorithms/itkMatchCardinalityImageToImageMetric.txx?annotate=1.6&root=Insight
http://www.itk.org/cgi-bin/viewcvs.cgi/Code/Algorithms/itkMatchCardinalityImageToImageMetric.h?annotate=1.4&root=Insight
-karthik
> Luis always suggests using a coarse to fine registration method to
> reach convergence faster - have you tried implementing that? Maybe it
> will be your only time saver for now,
>
> Mark
>
>
> On 12/14/05, *indian rock* <indianrock at gmail.com
> <mailto:indianrock at gmail.com>> wrote:
>
> Hi Mark,
>
> No... the registration methods are not multithreaded internally...
> Currently, all the pixel-wise filters support multithreading.....
> which is part of registration.. So, running it on a dual processor
> will impact, but not significant enough to notice any time save.
>
> I'm not registering multiple images/volumes.... just two
> images.... So, multithreading the registration won't help me. I
> was looking more specifically to multithread the 'optimizer' and
> 'interpolator'.... I'm running it on windows 2000 (Pentium III -
> single processor, 1GB RAM).
>
>
> Thanks..
> IR.
>
> On 12/14/05, *Mark Wyszomierski* <markww at gmail.com
> <mailto:markww at gmail.com> > wrote:
>
>
>
> ---------- Forwarded message ----------
> From: *Mark Wyszomierski* < markww at gmail.com
> <mailto:markww at gmail.com>>
> Date: Dec 14, 2005 1:01 PM
> Subject: Re: [Insight-users] dual processor
> To: indian rock < indianrock at gmail.com
> <mailto:indianrock at gmail.com>>
>
> No, I didn't find any open source methods. Did you check
> if specific registration methods are internally multithreaded
> through ITK? (Maybe
> I'm getting mixed up with VTK). I thought some were though.
>
> What I did for myself though was to first create a thread pool
> with the number of processors available. Then simply start a
> loop registering your batch of images/volumes, letting
> registration threads that become free constantly be at work
> handling the next task in the batch. You only need
> one thread procedure where the ITK registration code lives,
> and in fact the most difficult part is setting up the
> efficient control loop which parses out the registration
> threads as they become free.
>
> What platform are you using?
>
> Mark
>
>
> On 12/14/05, *indian rock* <indianrock at gmail.com
> <mailto:indianrock at gmail.com>> wrote:
>
> Mark,
>
> Thanks for the quick response.
> Is the multithreaded reigstration code available open souce?
>
> Thanks,
> IR.
>
>
> On 12/14/05, *Mark Wyszomierski* <markww at gmail.com
> <mailto:markww at gmail.com> > wrote:
>
> I've multithreaded my registration method to make use
> of multiple processors. As expected, the registration
> time is decreased by
> just about the number of processors available.
>
> Mark
>
>
> On 12/14/05, *indian rock* < indianrock at gmail.com
> <mailto:indianrock at gmail.com>> wrote:
>
> Hi,
>
> Currently, it takes around 4 minutes to do my
> registration using ITK.
>
> Apart from optimizing the code (no. of iterations,
> step length, etc)... are there any other ways, to
> speed up the registration?
> Does anyone know if ITK makes use of a dual
> processor? Will an additional processor impact the
> performance?
>
> Also, has anyone had experience with hardware
> accelerators? Do those help in speeding up the
> registration?
>
> Any help will be highly appreciated..
> Thanks,
> IR.
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org <mailto:Insight-users at itk.org>
> http://www.itk.org/mailman/listinfo/insight-users
>
>
>
>
>
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org <mailto:Insight-users at itk.org>
> http://www.itk.org/mailman/listinfo/insight-users
>
>
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Insight-users mailing list
>Insight-users at itk.org
>http://www.itk.org/mailman/listinfo/insight-users
>
>
More information about the Insight-users
mailing list