Performance Benchmarking the Insight Toolkit

Matthew McCormick1*,Hyun Jae Kang,Sebastien Barre
1.University of Wisconsin-Madison
Abstract
Performance Benchmarking the Insight Toolkit

Abstract

This document describes a module for the Insight Toolkit (ITK) to assist in performance benchmarking and a suite of benchmarks for the toolkit. These resources provide metrics to quantify software computational performance. This is a pre-requisite to improve performance either through algorithmic advancements or better utilization of hardware resources. Computational performance is quantified by reducing factors that confound timing measurements and by estimating measurement variance. New classes are presented that increase operating system process priority to minimize the impact of other processes running on the system. System hardware characteristics are extracted and displayed. The influence of hard disk input/output on runtime measurements is removed in the suite of benchmarks. Additionally, the number of threads used by each benchmark can be specified. These benchmarks consist of common analysis pipelines and run on 3D magnetic resonance brain image data so realistic performance is quantified. Benchmarks can be executed with multiple iterations, and timing statistics are recorded in tab separated value (.tsv) files, which are easily stored or processed for further analysis and visualization. This paper is accompanied with the source code, input data, parameters and output data that the authors used for validating the algorithm described in this paper. This adheres to the fundamental principle that scientific publications must facilitate reproducibility of the reported results.

Keywords

PerformanceThreadingBenchmarking
Manuscript
Source Code and Data

Source Code and Data

CMakeLists.txt301 BCTestConfig.cmake230 BREADME.rst317 Bcircle.yml457 Bdoc.gitignore59 BFigureProcessorPriorityBuildWithHighPriorityDemonsRegistrationBenchmark.tsv283 BGradientMagnitudeBenchmark.tsv286 BGradientMagnitudeBenchmark1Thread.tsv278 BLevelSetBenchmark.tsv261 BMedianBenchmark.tsv269 BNormalizedCorrelationBenchmark.tsv281 BMinMaxCurvatureFlowBenchmark.tsv285 BRegionGrowingBenchmark.tsv273 BRegistrationFrameworkBenchmark.tsv282 BWatershedBenchmark.tsv273 BBuildWithNormalPriorityDemonsRegistrationBenchmark.tsv278 BGradientMagnitudeBenchmark.tsv283 BGradientMagnitudeBenchmark1Thread.tsv277 BMedianBenchmark.tsv269 BLevelSetBenchmark.tsv261 BMinMaxCurvatureFlowBenchmark.tsv279 BNormalizedCorrelationBenchmark.tsv278 BRegionGrowingBenchmark.tsv270 BRegistrationFrameworkBenchmark.tsv281 BWatershedBenchmark.tsv266 BNoBuildWithNormalPriorityDemonsRegistrationBenchmark.tsv283 BGradientMagnitudeBenchmark.tsv287 BGradientMagnitudeBenchmark1Thread.tsv283 BLevelSetBenchmark.tsv264 BMedianBenchmark.tsv275 BMinMaxCurvatureFlowBenchmark.tsv282 BNormalizedCorrelationBenchmark.tsv287 BRegionGrowingBenchmark.tsv281 BRegistrationFrameworkBenchmark.tsv284 BWatershedBenchmark.tsv276 BNoBuildWithHighPriorityDemonsRegistrationBenchmark.tsv285 BGradientMagnitudeBenchmark.tsv290 BGradientMagnitudeBenchmark1Thread.tsv285 BLevelSetBenchmark.tsv265 BMedianBenchmark.tsv277 BMinMaxCurvatureFlowBenchmark.tsv282 BNormalizedCorrelationBenchmark.tsv287 BRegionGrowingBenchmark.tsv277 BWatershedBenchmark.tsv272 BRegistrationFrameworkBenchmark.tsv285 Bplot.py1.2 KBProcessorPriority.eps60.3 KBITKPerformanceBenchmarking.tex17.6 KBInsightArticle.cls4.1 KBInputBrainWeb.eps607.8 KBInsightJournal.ist220 BInsightJournal.bib158.3 KBInsightJournal.sty35.2 KBalgorithm.sty2.2 KBMakefile725 Balgorithmic.sty5.4 KBamssymb.sty14.9 KBdoubleWordCheck.pl410 Bfancyhdr.sty14.4 KBfloatflt.sty10.8 KBfncychap.sty10.1 KBtimes.sty857 BexamplesCMakeITKBenchmarksExternalData.cmake2.1 KBCMakeLists.txt5.8 KBDataInputbrainweb165a10f17.mha.md533 B.ExternalData_MD5_aa2025e24e24c4100d60569565d5246e2.7 MBbrainweb165a10f17extract60i50z.mha.md532 Bbrainweb165a10f17extract45i90z.mha.md533 Bbrainweb165a10f17extract85i10z.mha.md532 Bbrainweb165a10f17extract80i20z.mha.md532 Bbrainweb165a10f17extract88i5z.mha.md532 Bbrainweb165a10f17translated-1x-1y1z.nrrd.md532 Bbrainweb165a10f17translated-1x-1y1zextract88i5z.mha.md532 Bbrainweb165a10f17translated-7x-8y9z.nrrd.md532 BFilteringCMakeLists.txt1.9 KBGradientMagnitudeBenchmark.cxx3.1 KBMedianBenchmark.cxx3 KBMinMaxCurvatureFlowBenchmark.cxx3.2 KBRegistrationCMakeLists.txt2 KBDemonsRegistrationBenchmark.cxx5.4 KBNormalizedCorrelationBenchmark.cxx3.9 KBRegistrationFrameworkBenchmark.cxx7.3 KBSegmentationCMakeLists.txt1.6 KBLevelSetBenchmark.cxx6.4 KBRegionGrowingBenchmark.cxx4.9 KBWatershedBenchmark.cxx4.2 KBincludeitkHighPriorityRealTimeClock.h2.2 KBitkHighPriorityRealTimeProbe.h2.2 KBitkHighPriorityRealTimeProbesCollector.h1.9 KBsrcCMakeLists.txt316 BitkHighPriorityRealTimeClock.cxx5 KBitkHighPriorityRealTimeProbe.cxx1.4 KBitkHighPriorityRealTimeProbesCollector.cxx1 KBitk-module.cmake202 BtestCMakeLists.txt834 BDockerbuild.sh121 BDockerfile2.2 KBrun.sh244 Btest.sh750 BitkHighPriorityRealTimeProbeTest.cxx5.1 KBitkHighPriorityRealTimeProbesCollectorTest.cxx5.7 KBitkTimeProbesTest2.cxx5.7 KBitkTimeProbeTest2.cxx5 KB

Select a file to preview