Your SlideShare is downloading. ×
Optimizing ITK’s Registration Methods for Multi-processor, Shared-Memory Systems-4176
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

722
views

Published on

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

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

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
722
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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