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_hours and cores_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

Migration

  • JUBE Conversion - Convert JUBE XML benchmarks to IOPS YAML with iops convert

Reference