IO500 — HPC Storage Benchmark

IO500 — HPC Storage Benchmark

The Standard for Ranking Parallel Filesystem Performance

IO500 — Parallel Filesystem Performance

IO500 provides a comprehensive ranking of HPC storage systems using a composite score combining bandwidth and metadata performance. As data volumes in HPC grow to petabytes, storage performance is increasingly the bottleneck — IO500 provides the objective comparison metric needed for storage procurement and acceptance testing.

IOR Bandwidth

IOR (Interleaved Or Random) measures sequential read/write throughput for large files using MPI-IO, HDF5, or POSIX interfaces. Run from all compute nodes simultaneously to stress the full storage fabric. Measures aggregate bandwidth in GB/s — the primary metric for large-file scientific workloads.

mdtest Metadata

mdtest measures filesystem metadata operations per second: file creation, stat (lookup), and deletion. Critical for workloads creating millions of small files — ML training datasets, checkpoint files, or genome sequencing outputs. Metadata performance is often the overlooked bottleneck.

Composite Scoring

The IO500 score is the geometric mean of IOR bandwidth and mdtest metadata rate. This penalizes systems that excel at one but fail the other — a system with 10 TB/s bandwidth but poor metadata performance scores badly, reflecting real-world usability.

Find Operation

IO500 also includes a parallel directory traversal (find) test measuring how quickly the filesystem can list all files across the namespace. Important for backup systems, data management tools, and HSM policies that must scan the entire filesystem regularly.

The IO500 List

Published biannually alongside TOP500 and Green500. Systems are ranked by composite IO500 score. Unlike TOP500, the IO500 list includes both full-system submissions and 10-node challenge submissions — making it accessible for smaller HPC centers to participate and compare.

Lustre Tuning for IO500

To maximize IO500 scores: set stripe count to span all OSTs for IOR tests, use DNE (Distributed Namespace Extension) for mdtest to spread directories across multiple MDTs, and enable client-side caching where appropriate. These tunings also improve real-world workload performance.

Acceptance Testing

IO500 provides a standardized acceptance test for new storage systems. Specify minimum IO500 scores in procurement contracts: IOR bandwidth (e.g. ≥500 GB/s), mdtest rate (e.g. ≥500k ops/s). Verify at full node count — storage performance often degrades significantly under concurrent access from all compute nodes.

Running IO500

IO500 is freely available at io500.org. The benchmark includes all required tools (IOR, mdtest, find) and a standardized configuration generator. A valid IO500 run requires a minimum of 10 client nodes and takes approximately 30 minutes — fast enough for regular regression testing.