Skip to content
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

Enable easy-to-run test-controller-style benchmarks locally #259

Merged
merged 1 commit into from
May 1, 2024

Conversation

HalosGhost
Copy link
Collaborator

@HalosGhost HalosGhost commented Apr 23, 2024

This is a WIP script that allows you to take a crafted configuration file (including one generated by the test controller), and execute a benchmark against that configuration using one process-per-component.

Needed before merging:

  • Support configurable test runtime
  • Preserve test artifacts out-of-tree
  • Cache and reuse preseeds (depends on a <commit_hash,preseed_count,shard_count> triple for uniqueness)
  • Generate basic performance plots
  • Support debugging and performance tooling
  • Support arbitrary configuration files from 2PC and Atomizer (including those generated by the test controller for large-scale tests)
  • Expose a pleasant command-line interface for easy feature-discovery and use

@HalosGhost HalosGhost marked this pull request as ready for review April 24, 2024 20:58
Copy link
Collaborator

@maurermi maurermi left a comment

Choose a reason for hiding this comment

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

Mostly looks good to me, suggested a couple changes but I very much welcome this addition.

One additional question, would it be possible to alert the user, or terminate the test if a component dies during the test? I think that could be quite useful especially for long running tests.

scripts/native-system-benchmark.sh Outdated Show resolved Hide resolved
scripts/native-system-benchmark.sh Outdated Show resolved Hide resolved
scripts/native-system-benchmark.sh Show resolved Hide resolved
scripts/native-system-benchmark.sh Show resolved Hide resolved
Includes:
* executes outside docker, creating a single process per-component
* takes a config file and executes accordingly
* automatically generates some graphs for the run
* supports running all components under debuggers/valgrind/perf
* creates and caches preseeds as-specified
* preserves benchmark artifacts out-of-tree

Co-authored-by: Michael Maurer <maurer.mi@northeastern.edu>
Signed-off-by: Sam Stuewe <stuewe@mit.edu>
Copy link
Collaborator

@maurermi maurermi left a comment

Choose a reason for hiding this comment

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

T-ACK. Looks good to me! Definitely a pleasant upgrade for running the system locally

@HalosGhost HalosGhost merged commit 541f006 into mit-dci:trunk May 1, 2024
6 checks passed
@HalosGhost HalosGhost deleted the feat/easy-run-system branch May 1, 2024 02:28
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.

None yet

2 participants