Skip to content

Conversation

karkhaz
Copy link
Contributor

@karkhaz karkhaz commented Mar 7, 2023

Description of changes:

This PR adds benchcomp, a tool for comparing one or more suites of benchmarks using two or more 'variants' (command line arguments and environment variables).

benchcomp runs all combinations of suite x variant, parsing the unique output formats of each of these runs. benchcomp then combines the parsed outputs and writes them into a single file. benchcomp can post-process that combined file to create visualizations, exit if the results are not as expected, or perform other actions.

Testing:

This PR currently has a single unit test that validates a configuration file, and a single regression test that runs benchcomp run and benchcomp collate together. The tests are currently minimal because this PR does not include a realistic parser for benchmark output. The included trivial parser is enough to exercise the two current benchcomp subcommands, but more substantial tests will be added when a real parser gets included.

Checklist

  • Each commit message has a non-empty body, explaining why the change was made
  • Methods or procedures are documented
  • Regression or unit tests are included, or existing tests cover the modified code
  • My PR is restricted to a single feature or bugfix

This PR fixes #2273.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

@karkhaz karkhaz requested a review from a team as a code owner March 7, 2023 00:01
@rahulku rahulku requested a review from celinval March 7, 2023 18:30
Copy link
Contributor

@celinval celinval left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you. This looks very clean and organized. I like how you added a bunch of README.md everywhere. This is something that we should be doing more often!

@karkhaz karkhaz force-pushed the kk-benchcomp branch 2 times, most recently from f4770bf to 02fc6b2 Compare March 15, 2023 16:50
Copy link
Contributor

@zhassan-aws zhassan-aws left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great @karkhaz! I have a few comments, mostly minor.

karkhaz added 3 commits March 16, 2023 15:51
This commit adds a new tool called `benchcomp` to kani. `benchcomp` is a
tool for comparing one or more suites of benchmarks using two or more
'variants' (command line arguments and environment variables).

`benchcomp` runs all combinations of suite x variant, parsing the unique
output formats of each of these runs. `benchcomp` then combines the
parsed outputs and writes them into a single file. `benchcomp` can
post-process that combined file to create visualizations, exit if the
results are not as expected, or perform other actions.

All subcommands of `benchcomp` are noops in this commit; future commits
will fill in the implementation.
This commit adds a single unit test that validates a simple config file
against a schema.

The script that runs the tests is currently quite minimal, but will be
expanded to support regression tests in a future commit.
`benchmark run` is a command that runs every combination of suite x
variant, and writes their results out to files in a single directory.

`benchcomp collate` reads all the files from that directory and writes
out a single combined file that can be further post-processed.

This commit also adds a regression test, together with regression test
infrastructure. The commit also adds a trivial 'parser' for the test.
@karkhaz karkhaz force-pushed the kk-benchcomp branch 3 times, most recently from 70aa2d0 to 394dc86 Compare March 16, 2023 16:09
@karkhaz karkhaz enabled auto-merge (squash) March 17, 2023 14:39
@karkhaz karkhaz merged commit 12c343e into model-checking:main Mar 17, 2023
@karkhaz karkhaz deleted the kk-benchcomp branch March 17, 2023 14:42
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.

Write benchcomp run
3 participants