User Guide
Guides for IOPS features and capabilities.
Configuration
- YAML Schema Reference - All configuration options (
benchmark,vars,command,scripts,output,reporting,hooks,machines) - Templating and Context - Jinja2 syntax, dynamic values, conditionals, and context variables per section
- Matrix Generation - How IOPS builds the parameter space, including conditional variables
- Machine Overrides - One config for multiple systems with per-machine overrides
- Writing Scripts - The shell script IOPS runs per test: executor differences, input files, post-execution hooks, debugging
- Writing Parsers - Extract metrics from benchmark output with Python scripts
- Using IOPS on Grid'5000 - Run IOPS with OAR scheduler using wrapper scripts
Execution
- Search Methods - Exhaustive, random sampling, Bayesian optimization, and adaptive probing
- Bayesian Optimization - Parameter encoding, surrogate models, acquisition functions, and convergence
- Adaptive Variables - Find threshold values with adaptive probing (max memory, performance cliffs)
- Execution Backends - Run locally or on SLURM clusters
- Single-Allocation Mode - Run all tests in one SLURM allocation (MPI setup, troubleshooting)
- Result Caching - Skip redundant tests
- Budget Control - Limit core-hours with
max_core_hoursandcores_expr - Hooks - Run commands (mail, rsync, scripts) on run events: start, progress, failures, finish
- Resource Sampling - Sample CPU, memory, and GPU metrics (power, utilization, temperature) during execution
Results & Analysis
- Exploring Executions - Locate, filter, and monitor executions with
iops find - Archiving Workdirs - Portable archives with
iops archivefor sharing and backup - Custom Reports & Visualization - Interactive HTML reports with Plotly charts
Migration
- JUBE Conversion - Convert JUBE XML benchmarks to IOPS YAML with
iops convert
Reference
- Command Line Interface - Complete CLI reference for
iops run,iops find,iops report, and more - Metadata Files -
__iops_*files: structure, I/O overhead, and how to disable them