An open API service indexing awesome lists of open source software.

https://github.com/insightsoftwareconsortium/itkperformancebenchmarking

Real-world tests to benchmark ITK performance.
https://github.com/insightsoftwareconsortium/itkperformancebenchmarking

itk itk-module performance-benchmarking

Last synced: 7 months ago
JSON representation

Real-world tests to benchmark ITK performance.

Awesome Lists containing this project

README

          

# PerformanceBenchmarking

image:: https://github.com/InsightSoftwareConsortium/ITKPerformanceBenchmarking/workflows/Build,%20test,%20package/badge.svg

[![Build Status](https://github.com/InsightSoftwareConsortium/PerformanceBenchmarking/actions/workflows/build-test-package.yml/badge.svg)](https://github.com/InsightSoftwareConsortium/PerformanceBenchmarking/actions/workflows/build-test-package.yml)

[![PyPI Version](https://img.shields.io/pypi/v/itk-PerformanceBenchmarking.svg)](https://pypi.python.org/pypi/itk-PerformanceBenchmarking)

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/InsightSoftwareConsortium/PerformanceBenchmarking/blob/main/LICENSE)

## Overview

Real-world tests to benchmark ITK performance.

New classes increase operating system process priority to
minimize the impact of other processes running on the system.

These classes are used by a suite of example ITK benchmarks to quantify toolkit
performance.

For more information, see::

```txt
McCormick M., Kang H.J., Barre S.
Performance Benchmarking the Insight Toolkit
The Insight Journal. January-December. 2016.
https://hdl.handle.net/10380/3557
https://insight-journal.org/browse/publication/972
```

Since ITK 4.11.0, this module is available in the ITK source tree as a Remote
module. To enable it, set::

Module_PerformanceBenchmarking:BOOL=ON

in ITK's CMake build configuration.

Requirements
------------
- `CMake `_
- `Ninja `_
- `Python `_

Notes for running the benchmarks
--------------------------------

An example to call the benchmarking script is::

$ python ./evaluate-itk-performance.py run -g {ITK-version} {ITK-source} {ITK-build} {ITKPerformanceBenchmarking-build}

where ``{ITK-version}`` is the ITK version that the user wishes to evaluate.

Also, note that the ITK source folder ``(ITK-source}``, where the specific
version is fetched, needs to exist.

The generated/result ``JSON`` files are placed in::

./{ITKPerformanceBenchmarking-build}/BenchmarkResults/{machine-name}

Notes for benchmarking in Windows
---------------------------------

**CMake** and **Ninja** need to be in the ``PATH``. Also, the **C++ compiler**
has to be in the ``PATH`` so that Ninja can find it.

For the Microsoft Visual Studio compiler, the C++ compiler is a file that is
usually under::

C:/Program Files/Microsoft Visual Studio {version}/VC/bin/cl.exe

The user will need to change the path to the *vcvars\*.bat* command file in the
`RunWithVisualStudio.cmd `_ command line script to the specific location of their
*vcvars* file, e.g.::

C:/Program Files/Microsoft Visual Studio {version}/VC/vcvarsall.bat

Finally, the user will need to start the Git bash by double-clicking on the
``RunWithVisualStudio.cmd`` script.

Note that the module is built with static libraries to allow for ITK
benchmarking in Windows: the ``BUILD_SHARED_LIBS`` flag in the
`evaluate-itk-performance.py `_ script is set to `OFF`.

License
-------

This software is distributed under the Apache 2.0 license. Please see
the *LICENSE* file for details.