Specifications¶
This page gathers use-cases, requirements, and technical specifications of perfmum utility.
Feel free to use-cases and requirements by creating a pull-request
Use-cases¶
Micro-benchmarks in CI¶
As a developer, given a C++ library I maintain, when I push Git changes, then continuous integration executes micro-benchmarks of some critical C++ sections of the library.
Micro-benchmarks CMake helpers¶
As a developer, given a C++ library built with CMake, perfmum
provides dedicaded CMake modules to add new micro-benchmarks to the test
target.
Micro-benchmarks monitoring over time¶
As a developer, given a C++ library I maintain with a micro-benchmark integrated in the continuous integration process, I can review the history of metrics of this benchmark in a web browser.
Launch coreneuron simulation¶
As a HPC developer, I can use perfmum to describe a coreneuron simulation from the different build configurations to the runtime parameters. perfmum will take care of the different phases: build, run, results extraction and archiving, analytics and monitoring.
Simulations for coreneuron UT¶
As a developer, I can describe the different simulations used by the coreneuron continuous integration workflow.
Coreneuron integration tests¶
As a HPC developer, I can describe the different simulations that must be executed once a week to validate coreneuron.
Alerting in case of performance regression¶
As a HPC developer owner of a component, if continuous integration detects a performance regression, then I am notified via email or Matrix.
Requirements¶
- Can configure build according to several dimensions:
- toolchain: gcc+mvapich, intel+intelmpi, ...
- architectures: cpu, gpu, knl
- variants: profile, non-profile, optimization-types
- Can configure the runtime environment of the simulation/test:
- datasets
- input parameters
- Can configure what metrics to extract
- Push all metrics and row results to a DB (Elasticsearch, GPFS)
Technical Specifications¶
To be defined