[Insight-users] Exceptions while executing example
"DigitallyReconstructedRadiograph1" on a dual CPU machine
Miller, James V (Research)
millerjv at crd.ge.com
Thu Apr 7 10:21:17 EDT 2005
Interestingly enough we were just trying to run this example in house with the same intermittent problem you report.
Looking at the RayCast ImageFunction code, it is definately not thread safe. The ResampleImageFilter however will always try to run across multiple threads if there are multiple processors (which means calling the RayCast ImageFunction code across multiple threads).
The short term fix is to set the NumberOfThreads on the ResampleImageFilter to 1.
filter->SetNumberOfThreads(1);
The long term fix is that we'll see how to make this RayCast function threadsafe.
Jim
-----Original Message-----
From: insight-users-bounces at itk.org on behalf of Stefan Wesarg
Sent: Thu 4/7/2005 8:44 AM
To: Insight-users at itk.org
Cc:
Subject: [Insight-users] Exceptions while executing example "DigitallyReconstructedRadiograph1" on a dual CPU machine
Hello,
I compiled and linked the "DigitallyReconstructedRadiograph1" example
into an executable file that is perfectly running on a single processor
machine. However, if I run it on a dual processor machine it crashs -
sometimes (yes, only sometimes) throwing an exception. Switching to
debugging after that exception reveals problems during the execution of
the code in the class <itk::RayCastInterpolateImageFunction>. The code
crashes in an unpredictable way in several methods:
- InitialiseVoxelPointers() - "The ray traversal direction is unset "
- GetCurrentIntensity() - "The ray traversal direction is unset "
- CalcPlanesAndCorners() - "Division by zero (planes) "
- AdjustRayLength() - "The ray traversal direction is unset "
Again, this problem occurs only if the program is started on a dual
processor machine. (The executable has been built on that same machine.)
That's why I guess that it might be related to the threaded execution of
the <itk::ResampleImageFilter>.
I executed the code in both ways, without providing input image data and
by specifying a 3D input data set (MHD format), and also changing values
for the DRR generation parameters from the default ones did not make any
change.
Can anybody confirm/replicate that behavior? Any ideas how to overcome
this problem?
My configuration is:
- ITK 2.0.1 (built with "BUILD_SHARED_LIBS=OFF")
- Win2k
- Visual C++ 6
- Dual Athlon MP 1800+
Thanks and regards,
Stefan
---------------------------------------------------------------------
Dipl.-Phys. Stefan Wesarg
Fraunhofer Institute for Computer Graphics
Cognitive Computing and Medical Imaging (A7)
Fraunhoferstr. 5, 64283 Darmstadt, Germany
---------------------------------------------------------------------
email: stefan.wesarg at igd.fraunhofer.de
http://a7www.igd.fhg.de/persons/swesarg/swesarg.html
phone: ჽ 6151 - 155 511
fax: ჽ 6151 - 155 480
---------------------------------------------------------------------
More information about the Insight-users
mailing list