|
|
(13 intermediate revisions by 4 users not shown) |
Line 1: |
Line 1: |
− | {| class="toccolours" style="margin-right: 25px" align="right"
| + | <big>'''Note:''' We are migrating this content to the slicer.org domain - <font color="orange">The newer page is [https://www.slicer.org/wiki/Slicer3:Performance_Analysis here]</font></big> |
− | ! bgcolor="#ccccff" align="center" | Slicer3
| |
− | |-
| |
− | |
| |
− | [[Slicer3|Home]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:About|About]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:FAQ|FAQ]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:Status|Status]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:Downloads|Downloads]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:Documentation|Documentation]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:Community_Support|Community Support]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:Developers|Developers]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:Acknowledgements|Acknowledgements]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:Links|Links]]
| |
− | |}
| |
− | | |
− | == Slicer 3 Performance Analysis ==
| |
− | | |
− | We are looking into performance analysis on the Slicer3 codebase in order to streamline execution where possible, identify parts of the program to optimize, and determine which parts of Slicer3 are using the most system resources. We are currently in the process of determining which profilers to use on the various Slicer platforms. | |
− | | |
− | == Tools == | |
− | | |
− | === Statistical Profilers ===
| |
− | | |
− | * [http://www.cs.utah.edu/dept/old/texinfo/as/gprof_toc.html GNU gprof]
| |
− | ** gprof is not a good profiler for our needs because it doesn't support profiling multithreaded code.
| |
− | * [http://oprofile.sourceforge.net/ oprofile]
| |
− | * [http://developer.apple.com/tools/sharkoptimize.html Shark 4 (OSX)]
| |
− | | |
− | === Profilers for Multi-threaded Applications ===
| |
− | | |
− | * [http://www.intel.com/cd/software/products/asmo-na/eng/vtune/vlin/239145.htm Intel's VTune for Linux] ($)
| |
− | * [http://www.cs.uoregon.edu/research/tau/home.php TAU]
| |
− | * [http://www.cs.brown.edu/research/thmon/thmon.html Threadmon: Thread usage/blockage]
| |
− | * [http://www.etnus.com/ TotalView] ($)
| |
− | * [http://perfsuite.ncsa.uiuc.edu/ PerfSuite (POSIX Threads)]
| |
− | * [http://sam.zoy.org/writings/programming/gprof.html GProf work-around for multi-threaded apps]
| |
− | * References on multi-threaded profiling and code optimization
| |
− | ** [http://www.mactech.com/articles/mactech/Vol.11/11.04/ExtremeAdvantage/index.html General C++ performance optimization]
| |
− | ** [http://www.cs.princeton.edu/~mji/tmon.pdf Multi-threaded performance measurement (pdf document)]
| |
− | ** [http://en.wikipedia.org/wiki/Performance_analysis Wikipedia - General performance analysis]
| |
− | | |
− | === Runtime Instrumentation ===
| |
− | | |
− | * [http://kcachegrind.sourceforge.net/cgi-bin/show.cgi Callgrind / KcacheGrind]
| |
− | | |
− | An initial [http://www.na-mic.org:8000/websvn/filedetails.php?repname=Slicer3&path=%2Ftrunk%2FCMake%2FSlicer3ValgrindSuppressions.supp&rev=0&sc=0 valgrind suppressions file for slicer] is in subversion. It includes an example command line to run it with slicer that also uses the VTK, ITK, KWWidgets suppression files.
| |
− | | |
− | == Targets ==
| |
− | | |
− | * DICOM reader / GDCM
| |
− | * vtkITK
| |
− | * ImageReslice
| |
− | * ITK resampler w/ deformable transform
| |
− | | |
− | == Sample Files ==
| |
− | oprofile:
| |
− | * [[Slicer3:Performance_Analysis/Sample1|oprofile; run Slicer3 and exit]]
| |
− | * [[Slicer3:Performance_Analysis/Sample2|oprofile; run Slicer3, load DICOM, exit]]
| |
− | | |
− | KCachegrind:
| |
− | | |
− | * [[Slicer3:Performance_Analysis/KCache1.png|KCachegrind; run Slicer3, load DICOM, exit]]
| |
− | * [[Slicer3:Performance_Analysis/KCache2.png|KCachegrind; run Slicer3, load DICOM, exit]]
| |