mlcommons / mlcommons/storage

Usability Improvements

Open
#80 0 comments 0 reactions 1 assignee View on GitHub

@wvaske is already working on this.

Since Jun 17, 2025.

enhancement
Dominant language
Python
Stars
203
Forks
67
Avg merge
20m
Merged PRs (30d)
8

Description

After the 1.0 submission we found that usability of the benchmark can be greatly improved. This issue will track the 'sub-issues' we intend to address for the 2.0 release.

Please add any items in comments and I will update this top level comment. Feel free to attend the sub-working group meeting (bi-weekly Wednesday morning starting on Nov 20th). Join the MLPerf Storage working group for the invite or message me.

Tasks

Rules Document

  • Define filesystem caching rules in detail
  • Define system json schema and creation process
  • Define allowed time between runs
  • Define rules that use local SSD for caching data
  • Define rules for hyperconverged and local cache

benchmark[.py | .sh] script

  • Unique names for files and directories with structure for benchmark, accelerator, count, run-sequence, run-number
  • Better installer that manages dependencies
  • Containerization
    • Ease of Deployment of Benchmark (just get it working)
    • Cgroups and resource limits (better cache management)
  • Flush Cache before a run
  • Validate inputs for –closed runs (eg: don’t allow runs against datasets that are too small)
  • Reportgen should run validation against outputs
  • Add better system.json creation to automate the system description for consistency
    • Add json schema checker for system documents that submitters create
  • Automate execution of multiple runs
  • Add support for code changes in closed to supported categories [ data loader, s3 connector, etc]
    • Add patches directory that gets applied before execution
  • Add runtime estimation and --what-if or --dry-run flag
  • Automate selection of minimum required dataset
  • Determine if batch sizes in MLPerf Training are representative of batch sizes for realistically sized datasets
  • Split system.json into automatically capturable (clients) and manual (storage)
  • Define system.json schema and add schema checker to the tool for reportgen
  • Add report-dir csv of results from tests as they are run
  • Collect versions of all prerequisite packages for storage and dlio

DLIO Improvements

  • Reduce verbosity of logging
  • Add callback handler for custom monitoring
    • SPECStorage uses a “PRIME_MON_SCRIPT” environment variable that will execute at different times
    • Checkpoint_bench uses RPC to call execution which can be wrapped externally
  • Add support for DIRECTIO
  • Add seed for dataset creation so that distribution of sizes is the same for all submitters (file 1 = mean + x bytes, file 2 = mean + y bytes, etc)
  • Determine if global barrier for each batch matches industry behavior

Results Presentation

  • Better linking and presentation of system diagrams (add working links to system diagrams to supplementals)
  • Define presentation and rules for hyperconverged or systems with local cache

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.