Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
NAC: Optimized registration in Slicer <ul><li>Goals </li></ul><ul><ul><li>Optimize ITK registration framework </li></ul></...
Optimize registration <ul><ul><li>Threaded base classes: interpolators, transforms, and metrics </li></ul></ul><ul><ul><ul...
Optimize registration <ul><ul><li>Extend ImageToImageMetric base class </li></ul></ul><ul><ul><ul><li>Samples </li></ul></...
Optimize registration <ul><li>Other optimizations </li></ul><ul><ul><li>Memset </li></ul></ul><ul><ul><li>Floor </li></ul>...
Monitor <ul><li>RealTimeHighPriorityTimer </li></ul><ul><ul><li>SetPriority, SetThreadAffinity </li></ul></ul><ul><li>Batc...
Results
NAC: Optimized registration in Slicer <ul><li>Slicer Modules </li></ul><ul><ul><li>BWHITKOptimization/Code/Applications/Sl...
Upcoming SlideShare
Loading in …5
×

of

Optimizing ITK’s Registration Methods for Multi-processor, Shared-Memory Systems-4176 Slide 1 Optimizing ITK’s Registration Methods for Multi-processor, Shared-Memory Systems-4176 Slide 2 Optimizing ITK’s Registration Methods for Multi-processor, Shared-Memory Systems-4176 Slide 3 Optimizing ITK’s Registration Methods for Multi-processor, Shared-Memory Systems-4176 Slide 4 Optimizing ITK’s Registration Methods for Multi-processor, Shared-Memory Systems-4176 Slide 5 Optimizing ITK’s Registration Methods for Multi-processor, Shared-Memory Systems-4176 Slide 6 Optimizing ITK’s Registration Methods for Multi-processor, Shared-Memory Systems-4176 Slide 7
Upcoming SlideShare
Forhandlingsteknik Dag 1 Sep 2008
Next
Download to read offline and view in fullscreen.

0 Likes

Share

Download to read offline

Optimizing ITK’s Registration Methods for Multi-processor, Shared-Memory Systems-4176

Download to read offline

http://hdl.handle.net/1926/566

Related Books

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Optimizing ITK’s Registration Methods for Multi-processor, Shared-Memory Systems-4176

  1. 1. NAC: Optimized registration in Slicer <ul><li>Goals </li></ul><ul><ul><li>Optimize ITK registration framework </li></ul></ul><ul><ul><ul><li>Targets: </li></ul></ul></ul><ul><ul><ul><ul><li>Multi-processor and multi-core, shared memory systems </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Medium and large-size problems </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Transforms, Interpolators, and metrics </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Thread, pre-compute, and integrate </li></ul></ul></ul></ul></ul><ul><ul><ul><li>Maximize backward compatibility </li></ul></ul></ul><ul><ul><li>Monitor project’s progress </li></ul></ul><ul><ul><li>Deliver as Slicer3 modules </li></ul></ul>
  2. 2. Optimize registration <ul><ul><li>Threaded base classes: interpolators, transforms, and metrics </li></ul></ul><ul><ul><ul><li>TransformPoint(itk::Point, unsigned int threadID) </li></ul></ul></ul><ul><ul><ul><li>GetValue(itk::Point, unsigned int threadID) </li></ul></ul></ul><ul><ul><ul><li>Reduce creation/destruction of local vars </li></ul></ul></ul><ul><ul><ul><li>Increase memory requirements (minimal) </li></ul></ul></ul>
  3. 3. Optimize registration <ul><ul><li>Extend ImageToImageMetric base class </li></ul></ul><ul><ul><ul><li>Samples </li></ul></ul></ul><ul><ul><ul><ul><li>Random, entire image, or passed as list </li></ul></ul></ul></ul><ul><ul><ul><li>Detect BSpline transform </li></ul></ul></ul><ul><ul><ul><ul><li>pre-compute weights, relevant control points, and rigid transform of samples </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Integrate transform and metric </li></ul></ul></ul></ul><ul><ul><ul><li>Detect BSpline interpolator </li></ul></ul></ul><ul><ul><ul><ul><li>Optimize derivative computation </li></ul></ul></ul></ul><ul><ul><ul><li>Threaded metric computation </li></ul></ul></ul><ul><ul><ul><ul><li>ThreadedPreProcess </li></ul></ul></ul></ul><ul><ul><ul><ul><li>ThreadedProcessSample </li></ul></ul></ul></ul><ul><ul><ul><ul><li>ThreadedPostProcess </li></ul></ul></ul></ul>
  4. 4. Optimize registration <ul><li>Other optimizations </li></ul><ul><ul><li>Memset </li></ul></ul><ul><ul><li>Floor </li></ul></ul><ul><ul><li>Do not use MUTEX </li></ul></ul><ul><ul><li>Limit amount of data distribution and integration when threads created/destroyed </li></ul></ul><ul><li>Method-specific optimizations </li></ul><ul><ul><li>E.g., MattesMIMetric </li></ul></ul><ul><ul><ul><li>JointPDF – one per thread during process sample </li></ul></ul></ul><ul><ul><ul><li>JointPDF – re-integrated using one region per thread </li></ul></ul></ul>
  5. 5. Monitor <ul><li>RealTimeHighPriorityTimer </li></ul><ul><ul><li>SetPriority, SetThreadAffinity </li></ul></ul><ul><li>BatchMake </li></ul><ul><ul><li>GetCPUInfo </li></ul></ul><ul><ul><ul><li># of cores, speed, etc </li></ul></ul></ul><ul><ul><li>GetMemoryInfo </li></ul></ul><ul><ul><ul><li>Physical memory </li></ul></ul></ul><ul><ul><li>SendToBatchBoard </li></ul></ul><ul><ul><ul><li>Parameters, results </li></ul></ul></ul><ul><ul><li>Available as commands, function calls, and CMake variables </li></ul></ul><ul><li>BatchBoards </li></ul>
  6. 6. Results
  7. 7. NAC: Optimized registration in Slicer <ul><li>Slicer Modules </li></ul><ul><ul><li>BWHITKOptimization/Code/Applications/SlicerRegistrationModules </li></ul></ul><ul><ul><li>Same GUI as current registration modules </li></ul></ul>

http://hdl.handle.net/1926/566

Views

Total views

1,186

On Slideshare

0

From embeds

0

Number of embeds

52

Actions

Downloads

11

Shares

0

Comments

0

Likes

0

×