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

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

on

  • 1,437 views

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

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

Statistics

Views

Total Views
1,437
Views on SlideShare
1,392
Embed Views
45

Actions

Likes
0
Downloads
9
Comments
0

3 Embeds 45

http://www.insight-journal.org 43
http://www.midasjournal.org 1
http://www.insight-journal.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 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
  • 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)
  • 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
  • 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
  • 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
  • Results
  • NAC: Optimized registration in Slicer
    • Slicer Modules
      • BWHITKOptimization/Code/Applications/SlicerRegistrationModules
      • Same GUI as current registration modules