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.

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

1,144 views

Published on

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

Published in: Technology
  • My struggles with my dissertation were long gone since the day I contacted Emily for my dissertation help. Great assistance by guys from ⇒⇒⇒WRITE-MY-PAPER.net ⇐⇐⇐
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • 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>

×