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

Update run file doc #416

Merged
merged 1 commit into from
Oct 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/crucible-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
paths-ignore:
- LICENSE
- '**.md'
- .github/workflows/faux-unittest.yaml
- .github/workflows/faux-crucible-ci.yaml
- 'docs/**'
- engine/engine-script-library.py
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/faux-unittest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: faux-unittest

on:
pull_request:
branches: [ main ]
branches: [ master ]
paths:
- LICENSE
- '**.md'
Expand Down
43 changes: 41 additions & 2 deletions util/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,47 @@ configuration by using a single JSON file. Users can specify multi-value
parameters, tools, tags, endpoints, and run parameters, all using an unified
JSON format, in one single place.

For examples, refer to the [crucible-examples](https://github.com/perftool-incubator/crucible-examples/tree/main/runfile)
repository.

## Format
The config runfile structure is the following:
```
{
"benchmarks": [
{
(...)
"mv-params": {
(...)
}
}
]
"tool-params": [
(...)
],
"tags": {
(...)
},
"endpoints": [
(...)
],
"run-params": {
(...)
}
}
```
where:
* `benchmarks`: benchmark definitions
* `mv-params`: benchmark specific params
* `tool-params`: performance tool params, e.g. perf, sysstat, procstat, etc.
* `tags`: tags to identify the test run in the form of "key":"value"
* `endpoints`: endpoint definitions and configuration settings
* `run-params`: addtional (optional) command line params, e.g. number of samples

For more details on the supported format, refer to the JSON [schema](JSON/schema.json).

## Usage

To validate a run-file, run:
```
python3 validate_run_file.py --json <run-file-json>
Expand All @@ -23,7 +62,7 @@ To use a run-file JSON in Crucible, run:
crucible run --from-file <run-file-json>
```

## blockbreaker.py utility
### blockbreaker.py utility

The "blockbreaker.py" utility extracts a configuration block from the
run-file JSON and transforms into a JSON block or stream output.
Expand All @@ -34,7 +73,7 @@ python3 blockbreaker.py --json <run-file-json> --config <config>
```
Example:
```
python3 blockbreaker.py --json run-file.json --config mv-params
python3 blockbreaker.py --json run-file.json --config mv-params --benchmark iperf
```
For more options and usage run:
```
Expand Down
Loading