Run IO500

You can download IO500 from the GitHub repository. Follow the instructions in this page to install, configure, and run the benchmark!

Thanks for your participation and good luck!

Business vector created by stories -

Preparation and Building

The latest IO500 source code is available from the IO500 Github repository. Running the script will fetch awditional sources, such as IOR, in order to build the benchmark.

$ git clone -b io500-isc24
$ cd io500
$ ./

Installation Video

A video with the installation procedure is here.

Steps to Run IO500 Benchmark

  1. Modify the existing script to include information necessary for your MPI job scheduler. Provide enough execution time (typically, 2h is enough for a full run) and adjust the reserved resources if needed:
    • The variables io500_mpirun and io500_mpiargs should be set according to your system and test case.
    • The setup() section may optionally contain commands to create only the top-level test directories under $workdir for the ior-hard/easy and mdtest-hard/easy test phases.
    • You can add system-specific information to the script, otherwise you can provide this when uploading the results. The info-creator helps to create the required output.
  2. Create a new .ini file.
    • The existing template config-minimal.ini provides the minimum options that you need to change.
    • We recommend to test your configuration first, the config-debug-run.ini shows how to setup a 1 second run in order to verify proper operation of all test phases without taking a long time to finish. Note that the results will be invalid, but it is useful to see that everything works as intended.
    • You can create a new file with all available options using e.g. ./io500 --list > myconfig.ini.
    Please edit available parameters appropriately for your environment. In particular, the following parameters are critical to set correctly:
    • [global] datadir (directory where test files will be created)
    • [global] resultdir (directory where result files will be written)
    • [global] api (storage interface to use, if not POSIX)
    Remember that you need to execute all the mandatory phases (ior-easy, ior-hard, mdtest-easy, mdtest-hard, find), with a minimum 300s test duration for write phases, for a valid submission. The following variables could be adjusted in order to achieve the minimum 300 seconds execution time, if the current values are too small for the stonewall timer:
    • [ior-easy] blocksize (maximum data written per rank to a separate file)
    • [ior-hard] segmentCount (maximum segments written per rank)
    • [mdtest-easy] n (maximum number of files created per rank)
    • [mdtest-hard] n (maximum number of files created per rank)
    Note the generated .ini file may contain sections for "extended" test phases (ior-rnd, mdworkbench, find-easy, and find-hard) that are not executed as part of the current benchmark and can be ignored.
  3. Any modifications to runtime tunables may only be made according to the IO500 Submission Rules.
  4. Execute " myconfig.ini" directly or via a batch job submission.
  5. Review the resulting output, and verify that none of the results in $resultdir/result_summary.txt are marked [INVALID] (e.g. because of a runtime below 300s, or other error). There must also be a SCORE line at the end, and it cannot be marked [INVALID] (e.g. due to to a failed or missing required test phase).
  6. At any time, you many create a description for your hardware and software environment and save it using the info-creator tool. You will be asked at submission time to provide the information and can make any final changes.
  7. We are testing scripts to automatically capture information from your live system and integrate it into the system description. After you run ./ you will find in the directory schema-tools all the available scripts. These can be run on your json, for example: ./schema-tools/ system-information.json will add the information about your operating system to the system-information.json that you may want to submit. You can upload/download the JSON to the info creator anytime, verifying the changes you make. A script may support to configure a specific file system or node, useful particularly if you have multiple different node configurations.
  8. Submit your results, see the submission page.

A video with the execution and tuning procedure is here.