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:
Quick Start
-
Create a YAML file that defines your experiments and parameters. Example:
-
Run Spinner with your configuration:
-
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 for more information.