-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Add spinner docs infrastructure
- Loading branch information
Showing
5 changed files
with
110 additions
and
0 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
![spinner logo](assets/spinner.png){width="300"} | ||
# Spinner | ||
|
||
**Spinner** is an open-source, parameterized sweep benchmark tool designed for High-Performance Computing (HPC). It facilitates the efficient execution of user-supplied applications, data collection, and version control, all while using a simple YAML file format to manage configurations. Spinner is ideal for conducting repeatable, shareable, and insightful experiments across various HPC environments. | ||
|
||
## Features | ||
|
||
- **Parameterized Sweeps**: Dynamically replace parameters in command templates, enabling easy execution of parameter sweeps. | ||
- **YAML Configuration**: Simplifies the setup and sharing of experimental configurations. Versioning and metadata management are built-in for reproducibility and collaboration. | ||
- **Non-Intrusive Design**: Spinner executes user-defined commands without modifying your applications. | ||
- **Automatic Re-run**: Automatically rerun failed experiments, making it ideal for unstable applications or testing a range of parameter combinations. | ||
- **Data Collection**: Captures detailed output from each experiment, storing raw data and experiment metadata in dataframes. This provides a clear picture of experiment outcomes beyond summary statistics. | ||
- **HPC Proven**: Successfully tested with major HPC applications such as LAMMPS, GROMACS, Task Bench, XSBench, and RSBench on multiple clusters. | ||
|
||
## Getting Started | ||
|
||
### Installation | ||
|
||
You can install Spinner via pip: | ||
|
||
```bash | ||
pip install spinner | ||
``` | ||
|
||
### Quick Start | ||
|
||
1. **Create a YAML file** that defines your experiments and parameters. Example: | ||
|
||
```yaml | ||
metadata: | ||
description: Timeout test | ||
version: "1.0" | ||
runs: 1 | ||
timeout: 5 | ||
retry: False | ||
retry_limit: 0 | ||
|
||
sleep_test: | ||
command: | ||
template: > | ||
sleep {{sleep_ammount}} && printf " | ||
I slept {{sleep_ammount}} | ||
# this may not print due to timeout! | ||
" | ||
sleep_test: | ||
sleep_ammount: | ||
- 1 | ||
- 200 | ||
``` | ||
2. **Run Spinner** with your configuration: | ||
```bash | ||
spinner -c timeout_test.yaml -r -o timeout_test.pkl | ||
``` | ||
|
||
3. **Collect Results**: Spinner will log the results, including runtime metrics and application output, in dataframes for easy analysis. | ||
|
||
## Documentation | ||
|
||
For full documentation, including advanced usage and configuration options, please visit the [official documentation](#). | ||
|
||
## Contributing | ||
|
||
We welcome contributions! Please check the [contribution guidelines](contribute.md) for more information. |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
site_name: Spinner | ||
repo_url: https://github.com/LSC-Unicamp/spinner | ||
repo_name: LSC-Unicamp/spinner | ||
edit_uri: tree/main/docs | ||
|
||
theme: | ||
name: material | ||
font: | ||
text: Roboto | ||
code: Roboto Mono | ||
logo: assets/spinner.png | ||
favicon: assets/spinner.png | ||
palette: | ||
# Dark Mode | ||
- scheme: slate | ||
toggle: | ||
icon: material/weather-sunny | ||
name: Dark Mode | ||
primary: indigo | ||
accent: indigo | ||
# Light Mode | ||
- scheme: default | ||
toggle: | ||
icon: material/weather-night | ||
name: Light Mode | ||
primary: indigo | ||
accent: indigo | ||
|
||
markdown_extensions: | ||
- attr_list | ||
- pymdownx.emoji: | ||
emoji_index: !!python/name:material.extensions.emoji.twemoji | ||
emoji_generator: !!python/name:material.extensions.emoji.to_svg | ||
- pymdownx.highlight: | ||
anchor_linenums: true | ||
line_spans: __span | ||
pygments_lang_class: true | ||
- pymdownx.inlinehilite | ||
- pymdownx.snippets | ||
- pymdownx.superfences |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters