Difference between revisions of "ITK Registration Optimization"
From NAMIC Wiki
Line 8: | Line 8: | ||
* Requirements | * Requirements | ||
− | * | + | *# relatively robust, with few parameters to tweak |
− | * | + | *# runs on grey scale images |
− | * | + | *# has already been published |
− | * | + | *# relatively fast (ideally speaking a few minutes for volume to volume). |
− | * | + | *# not patented |
− | * | + | *# can be implemented in ITK and parallelized. |
− | * Use-cases | + | * Use-cases |
*# '''Intersubject mapping''' [[Intersubject|example data set]] (Kilian) | *# '''Intersubject mapping''' [[Intersubject|example data set]] (Kilian) | ||
*# '''fMRI to hi-res brain morphology mapping''' [[FMRI-to-hires|example data set]] (Steve Pieper) | *# '''fMRI to hi-res brain morphology mapping''' [[FMRI-to-hires|example data set]] (Steve Pieper) | ||
*# '''DTI: components of the diffusion tensor''' [[DTI-non-rigid]] (Sylvain) | *# '''DTI: components of the diffusion tensor''' [[DTI-non-rigid]] (Sylvain) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Performance Requirements and Use Cases == | == Performance Requirements and Use Cases == | ||
* Requirements | * Requirements | ||
− | * | + | *# Single and multi-core machines |
− | * | + | *# Single and multi-processor machines |
− | * | + | *# AMD and Intel - Windows, Linux, and SunOS |
* Use-cases | * Use-cases | ||
− | ** | + | *# Intel quad-core Xeon processors (?) |
+ | *# 6 CPU Sun, Solaris 8 (SPL: vision) | ||
+ | *# 12 CPU Sun, Solaris 8 (SPL: forest and ocean) | ||
+ | *# 16 core Opteron (SPL: john, ringo, paul, george) | ||
+ | *# 16 core, Sun Fire, AMDOpteron (UNC: Styner) | ||
== Data == | == Data == | ||
Line 66: | Line 56: | ||
# Quantify current performance and bottlenecks | # Quantify current performance and bottlenecks | ||
− | = | + | = Related Pages = |
− | * [http://www.na-mic.org/Wiki/index.php/User:Barre/ITK_Registration_Optimization User:Barre/ITK Registration Optimization] | + | ** [[Non Rigid Registration]] |
+ | ** [[Slicer3:Performance_Analysis]] | ||
+ | ** [http://www.na-mic.org/Wiki/index.php/User:Barre/ITK_Registration_Optimization User:Barre/ITK Registration Optimization] | ||
= Performance Measurement = | = Performance Measurement = |
Revision as of 13:14, 30 March 2007
Home < ITK Registration OptimizationContents
Goals
There are two components to this research
- Identify registration algorithms that are suitable for non-rigid registration problems that are indemic to NA-MIC
- Develop implementations of those algorithms that take advantage of multi-core and multi-processor hardware.
Algorithmic Requirements and Use Cases
- Requirements
- relatively robust, with few parameters to tweak
- runs on grey scale images
- has already been published
- relatively fast (ideally speaking a few minutes for volume to volume).
- not patented
- can be implemented in ITK and parallelized.
- Use-cases
- Intersubject mapping example data set (Kilian)
- fMRI to hi-res brain morphology mapping example data set (Steve Pieper)
- DTI: components of the diffusion tensor DTI-non-rigid (Sylvain)
Performance Requirements and Use Cases
- Requirements
- Single and multi-core machines
- Single and multi-processor machines
- AMD and Intel - Windows, Linux, and SunOS
- Use-cases
- Intel quad-core Xeon processors (?)
- 6 CPU Sun, Solaris 8 (SPL: vision)
- 12 CPU Sun, Solaris 8 (SPL: forest and ocean)
- 16 core Opteron (SPL: john, ringo, paul, george)
- 16 core, Sun Fire, AMDOpteron (UNC: Styner)
Data
Workplan
- Quantify current performance and bottlenecks
- Identify timing tools (cross platform, multi-threaded)
- For each use-case
- Centralized data and provide easy access
- Identify relevant registration algorithm(s)
- Develop traditional ITK-style implementations
- Develop timing tests using implementations and data
- Across use-cases
- Identify ITK classes/functions common to implementations (e.g., interpolation/resampling)
- Develop timing tests specific to these common sub-classes
- Compute performance on multiple platforms
Progress Highlights
- Quantify current performance and bottlenecks
Related Pages
Performance Measurement
- Intel's VTune for Linux ($)
- TAU
- Threadmon: Thread usage/blockage
- TotalView ($)
- PerfSuite (POSIX Threads)
- GProf work-around for multi-threaded apps
- References on multi-threaded profiling and code optimization