[Insight-developers] Fwd: [ITK 0012186]: itkBSplineDeformableTransform throws error when enabling multithreading

Nicholas Tustison ntustison at gmail.com
Thu May 26 09:50:23 EDT 2011


Yeah, you probably misread Mantis as they're completely separate classes and,
apparently, completely different issues. The Mantis bug throws an exception in 
itkBSplineDeformableTransform when the number of threads > 0 for some particular
context which I have yet to figure out.  

Since I wrote the BSplineScatteredData..Filter, I was confused when you mentioned 
the problem being the number of levels as, you point out, that is completely different 
from the number of threads.  The test case would be helpful but I might be able to 
diagnose if you sent  me the error message.  

One thing I can say is that if you have a fairly large lattice, you might run into memory
problems since each resolution level approximately doubles the number of control points.  
from the previous level.  Suppose you have an image size of 512^3 and an initial control 
point lattice of 256^3, at the second level, you're going to have on the order of 512^3 
control points. If you go 3 levels, you're doubling from the 2nd resolution to an image 
object of  ~1024^3 control points.

Nick








On May 26, 2011, at 9:32 AM, Wes Turner wrote:

> Nick,
> 
> I may have misread the Mantis issue.  We are getting the error in itkBSplineScatteredDataPointSetFilter and I assumed it was the same problem.  Certainly, we are getting the same error message.  I did not read past itkBSpline ... and the error message before deciding that it was the same problem.  Note, we did not explore a dependence on the number of threads.  Level is a parameter that allows a hierarchical solution and greater fidelity with a low number of points.  Would you still find a test case useful?
> 
> - Wes
> 
> On Thu, May 26, 2011 at 9:15 AM, Nicholas Tustison <ntustison at gmail.com> wrote:
> Thanks, Wes, I appreciate it. I'm a bit confused, though.  The bug report is for
> the class itkBSplineDeformableTransform but you mention the class
> itkBSplineScatteredDataPointSetToImageFilter.  Also, the Mantis bug reports
> problems with number of threads where you're reporting the number of levels 
> for the latter filter is the problem.  Could you clarify?
> 
> Thanks,
> Nick
> 
> 
> On May 26, 2011, at 8:49 AM, Wes Turner wrote:
> 
>> Nick,
>> 
>> Sorry for the delay.  I'm working under a heavy deadline on something else.
>> 
>> Karthik and I have a test driver that we are working with.  One of us will take a crack at sending you code and test data that exhibit the failure some time today (we need to sanitize a few things), but basically it just required the pipeline:
>> 
>> itkImageFileReader()
>> ... pull out image points into point set
>> itkBSplineScatteredDataPointSetToImageFilter()
>> - Spline order 3
>> - Levels 2
>> - Number of ctrl points large ... say 50% of the x and y extents of the data
>> 
>> On update of the BSplineFilter, the aforementioned exception is thrown.
>> 
>> - Wes
>> 
>> On Wed, May 25, 2011 at 10:19 AM, Nicholas Tustison <ntustison at gmail.com> wrote:
>> Hey Wes,
>> 
>> So I'm trying to pinpoint the problem.  Does this problem occur during
>> image registration?  I tried to get the error by setting the transform in the
>> ResampleImageFilter and setting the number of threads > 1 but didn't 
>> have a problem.  Since the bug tracker doesn't mention the specific use
>> context of the transform and since the transform itself is just an object 
>> and isn't something for which you specify more than one thread, I'm 
>> hoping you could give me some further direction.
>> 
>> Thanks,
>> Nick
>> 
>> 
>> 
>> 
>> On May 20, 2011, at 10:24 AM, Wes Turner wrote:
>> 
>>> Nick,
>>> 
>>> I am having a similar issue, but I haven't had an opportunity to look into it yet.  I expect that this is easy to replicate given that I am at least the third person to run into the problem.  I think that if you use an arbitrary image, pull it into  itkBSplineDeformableTransform, choose a relatively large number of spline points and a level >1, you will quickly find it.  Right now I am on travel, but if you have problems replicating the issue, I can work with you to get a failure case when I get back ... Monday possibly.
>>> 
>>> - Wes
>>> 
>>> On Fri, May 20, 2011 at 9:55 AM, Nicholas Tustison <ntustison at gmail.com> wrote:
>>> Hi developers,
>>> 
>>> I have been assigned the following bug but I'm skeptical that the issue is really a bug
>>> as described.  Is there a mechanism on Mantis for requesting more input (e.g. code) from the 
>>> person who reported the bug?
>>> 
>>> Thanks,
>>> Nick
>>> 
>>> Begin forwarded message:
>>> 
>>>> From: Mantis Bug Tracker <mantis at public.kitware.com>
>>>> Date: May 19, 2011 4:33:11 PM EDT
>>>> To: ntustison at wustl.edu
>>>> Subject: [ITK 0012186]: itkBSplineDeformableTransform throws error when enabling multithreading
>>>> 
>>>> 
>>>> The following issue has been ASSIGNED. 
>>>> ====================================================================== 
>>>> http://public.kitware.com/Bug/view.php?id=12186 
>>>> ====================================================================== 
>>>> Reported By:                Erik Türke
>>>> Assigned To:                Nick Tustison
>>>> ====================================================================== 
>>>> Project:                    ITK
>>>> Issue ID:                   12186
>>>> Category:                   ITK
>>>> Reproducibility:            always
>>>> Severity:                   crash
>>>> Priority:                   high
>>>> Status:                     assigned
>>>> Resolution Date:             
>>>> Sprint:                      
>>>> Sprint Status:              backlog 
>>>> ====================================================================== 
>>>> Date Submitted:             2011-05-12 07:53 EDT
>>>> Last Modified:              2011-05-19 16:33 EDT
>>>> ====================================================================== 
>>>> Summary:                    itkBSplineDeformableTransform throws error when
>>>> enabling multithreading
>>>> Description: 
>>>> When enabling multithreading in itk and set the number of threads > 1, the
>>>> itkBSplineDeformableTransform throws an error saying:
>>>> 
>>>> itk::ExceptionObject (0x24efee0)
>>>> Location: "void itk::BSplineDeformableTransform<TScalarType, NDimensions,
>>>> VSplineOrder>::SetParameters(const typename itk::Transform<TScalarType,
>>>> NDimensions, NDimensions>::ParametersType&) [with TScalarType = double, unsigned
>>>> int NDimensions = 3u, unsigned int VSplineOrder = 3u]" 
>>>> File:
>>>> /scr/morse1/programming/src/ITK/Modules/Core/Transform/include/itkBSplineDeformableTransform.txx
>>>> Line: 354
>>>> Description: itk::ERROR: BSplineDeformableTransform(0x24efc40): Mismatch between
>>>> parameters size 19728016 and expected number of parameters 1536
>>>> 
>>>> If you set the number of threads to 1 it works perfectly.
>>>> I encountered this error with the ITK release 3.20 (review code) as well.
>>>> 
>>>> ====================================================================== 
>>>> 
>>>> Issue History 
>>>> Date Modified    Username       Field                    Change               
>>>> ====================================================================== 
>>>> 2011-05-12 07:53 Erik Türke     New Issue                                    
>>>> 2011-05-19 16:33 Hans Johnson   Assigned To               => Nick Tustison   
>>>> 2011-05-19 16:33 Hans Johnson   Status                   new => assigned     
>>>> ======================================================================
>>>> 
>>> 
>>> 
>>> _______________________________________________
>>> 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://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-developers
>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> Wesley D. Turner, Ph.D.
>>> Kitware, Inc.
>>> Technical Leader
>>> 28 Corporate Drive
>>> Clifton Park, NY 12065-8662
>>> Phone: 518-881-4920
>> 
>> 
>> 
>> 
>> -- 
>> Wesley D. Turner, Ph.D.
>> Kitware, Inc.
>> Technical Leader
>> 28 Corporate Drive
>> Clifton Park, NY 12065-8662
>> Phone: 518-881-4920
> 
> 
> 
> 
> -- 
> Wesley D. Turner, Ph.D.
> Kitware, Inc.
> Technical Leader
> 28 Corporate Drive
> Clifton Park, NY 12065-8662
> Phone: 518-881-4920
> _______________________________________________
> 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://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-developers

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20110526/58aa7060/attachment.htm>


More information about the Insight-developers mailing list