[Insight-developers] Re: Problems with new registrationoptimizations

Bill Lorensen bill.lorensen at gmail.com
Mon Dec 3 13:31:56 EST 2007


Stephen,

Actually, in this case, there are still errors in the optimized
implementation. I have compiled itk under g++ with the flags:
CMAKE_CXX_FLAGS:STRING=-Wall -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC
This causes all containers and iterators to check for a variety of
violations. When I run the registration examples, they complain that in
ImageToImageMetric::TransformPoint,
 mappedPoint = transform->TransformPoint(
m_FixedImageSamples[sampleNumber].point );
sampleNumber exceeds the size of the container.

I'm recompiling now and I'll send you a more detailed deception.

Actually, if you add code like this:

    if (sampleNumber >= m_FixedImageSamples.size())
      {
      itkExceptionMacro( << "sampleNumber " << sampleNumber << " exceeds "
<< m_FixedImageSamples.size() << " which is the container size of
m_FixedImageSamples" << std::endl);
      }

just before the offending statement, the thrown exception will highlight the
error.

Bill




On Dec 3, 2007 1:01 PM, Stephen R. Aylward <Stephen.Aylward at kitware.com>
wrote:

> This touches upon a developing topic: ITK consistency when run single
> versus
> multi-threaded.
>
> At this time, we have been able to relatively easily implement algorithms
> so
> that they produce the same results (i.e., have the same implementation
> logic) when run single or multi-threaded.  This stability holds for the
> new
> multi-threaded registration framework.  Recall that this consistency
> constraint has such small tolerance that it, for example, requires the use
> of a specific random seed with our implementation of a specific random
> number generator for certain tests to pass.
>
> ISSUE: I am confident that we could continue to ensure the same
> consistency
> (e.g., make sure the same random number sequence is generated when run
> single or multi-threaded) in all future work, but the complexity
> introduced
> if we must always maintain that extreme consistency is perhaps detrimental
> to multi-threaded algorithm efficiency and ease of understanding.
>
> PROPOSED SOLUTION: I propose that in the future we ALLOW the tolerance
> needed for a test to pass to be adjusted, if that adjustment is needed to
> account for non-significant variations due to running the method single
> vs.
> multi-threaded.    The additional uncertainty/inconsistency in the results
> should not allow for variations in the interpretation of the functionality
> of the algorithm and should not allow for code errors to go undetected.
>  The
> additional uncertainty/inconsistency should allow, for examples, for
> non-significant changes in results, where those changes are similar in
> magnitude to what would be expected if a different random seed was used in
> a
> test.
>
> Agreed?
>
> Stephen
>
> =======================================
> Stephen R. Aylward, Ph.D.
> Chief Medical Scientist
> Kitware, Inc. - Chapel Hill Office
> http://www.kitware.com
> Phone: (518)371-3971 x300
>
>
> > -----Original Message-----
> > From:
> > insight-developers-bounces+stephen.aylward=kitware.com at itk.org
> >
> > [mailto:insight-developers-bounces+stephen.aylward=kitware.com
> > @itk.org] On Behalf Of Matt Turek
> > Sent: Monday, December 03, 2007 12:16 PM
> > To: Bill Lorensen
> > Cc: ITK
> > Subject: [Insight-developers] Re: Problems with new
> > registrationoptimizations
> >
> >
> > Bill,
> >
> > I'll take a look at the failing tests. We've been focused on
> > cleaning up the itk optimized dashboard.
> >
> > Matt
> >
> >
> > Bill Lorensen wrote:
> > > Matt,
> > >
> > > Looks like a crash in one of the metrics on those platforms
> > that have
> > > turned on the new optimizations:
> > >
> > http://www.itk.org/Testing/Sites/zion.kitware/Linux-g++-4.1/20071201-0
> > >
> > 100-Nightly/Results/__Testing_Code_Algorithms_itkMattesMutualInformati
> > > onImageToImageMetricTest.html
> > >
> > <http://www.itk.org/Testing/Sites/zion.kitware/Linux-g++-4.1/20071201-
> > >
> > 0100-Nightly/Results/__Testing_Code_Algorithms_itkMattesMutualInformat
> > > ionImageToImageMetricTest.html>
> > >
> > > Also, 13 registration regression tests are failing on the optimized
> > > registraion enabled gcc build:
> > >
> > http://www.itk.org/Testing/Sites/zion.kitware/Linux-g++-4.1/20071201-0
> > > 100-Nightly/Test.html
> > >
> > > Should we expect the exact results?
> > >
> > > Bill
> > >
> >
> > _______________________________________________
> > Insight-developers mailing list
> > Insight-developers at itk.org
> > http://www.itk.org/mailman/listinfo/insight-developers
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.itk.org/mailman/private/insight-developers/attachments/20071203/a2d379e0/attachment.htm


More information about the Insight-developers mailing list