• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Optimizing ITK’s Registration Methods for Multi-processor, Shared-Memory Systems-4176
 

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

on

  • 1,413 views

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

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

Statistics

Views

Total Views
1,413
Views on SlideShare
1,368
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