Preparation and Building
The latest IO500 source code is available from the
IO500 Github repository.
Running the prepare.sh
script will fetch awditional
sources, such as IOR,
in order to build the benchmark.
$ git clone https://github.com/IO500/io500.git -b io500-isc24
$ cd io500
$ ./prepare.sh
Installation Video
A video with the installation procedure is here.
Steps to Run IO500 Benchmark
-
Modify the existing io500.sh 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.
-
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.
- [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)
- [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)
- Any modifications to runtime tunables may only be made according to the IO500 Submission Rules.
- Execute "io500.sh myconfig.ini" directly or via a batch job submission.
- 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).
- 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.
- We are testing scripts to automatically capture information from your live system and integrate it into the system description. After you run ./prepare.sh you will find in the directory schema-tools all the available scripts. These can be run on your json, for example: ./schema-tools/cdcl_add_osinfo.py 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.
- Submit your results, see the submission page.
A video with the execution and tuning procedure is here.