Skip to content

Add performance regression tests #547

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed

Conversation

p-senichenkov
Copy link
Collaborator

@p-senichenkov p-senichenkov commented Mar 22, 2025

Add performance regression tests to ensure that existing algorithms performance doesn't degrade when we add new ones:

  • implement performance testing subsystem that allows easy addition of tests;
  • add performance tests for FD, DD, MD, ADC, NAR and IND;
  • implement CI workflow that executes these tests weekly on a dedicated machine and builds plots showing performance of each algorithm.

Do a little refactoring:

  • set NEW Cmake policy CMP0175 to disallow invalid options of add_custom_command and fix existing add_custom_command entries;
  • sort all_csv_configs alphabetically;
  • group option names and descriptions (in config/names.h, config/descriptions.h) by algortihm or primitive.

It's a draft because test server isn't fully set up yet.

Implement base classes for execution of performance tests, saving and loading their results.
Use separate folders for performance tests and unit tests.
Edit CMakeLists to work with these changes.
Add CMake target that takes only first X lines from datasets
Sort all_csv_configs.{h,cpp} lexicographically
Implement main logic of performance testing and saving all
needed files
Remove invalid arguments of add_custom_command() directives
and add required ones
Set policy CMP0175 to NEW to forbid invalid arguments
Implement performance tests for following algorithms:
- FD:
  - HyFD
  - Pyro
  - Tane
  - EulerFD (currently disabled)
  - AID-FD
- DD:
  - Split
- MD:
  - HyMD
- ADC:
  - FastADC
- NAR:
  - DES
- IND:
  - MIND
  - FAIDA (currently disabled)
Group config/names.h and config/description.h by algorithm or primitive
in which these options are used.
Remove unused options.
@p-senichenkov p-senichenkov marked this pull request as draft March 22, 2025 21:15
@p-senichenkov
Copy link
Collaborator Author

Closing, becuse we've decided to move these tests to GitHub-hosted runners until we don't have our own server.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant