Oakforest-PACS

Institution JCAHPC
Client Procs Per Node
Client Operating System
Client Operating System Version
Client Kernel Version

DATA SERVER

Storage Type
Volatile Memory
Storage Interface
Network
Software Version
OS Version

INFORMATION

Client Nodes 2,048
Client Total Procs 16,384
Metadata Nodes 0
Metadata Storage Devices 0
Data Nodes 0
Data Storage Devices 0

METADATA

Easy Write 37.02 kIOP/s
Easy Stat 202.01 kIOP/s
Easy Delete 22.18 kIOP/s
Hard Write 1.96 kIOP/s
Hard Read 266.71 kIOP/s
Hard Stat 67.24 kIOP/s
Hard Delete 0.76 kIOP/s

Submitted Files

io500
#!/bin/bash
#PJM -L rscgrp=ofptest-all
#PJM -L node=2048
#PJM --mpi proc=16384
#PJM -L elapse=2:00:00
#PJM -g gz02
#PJM -j
#
# INSTRUCTIONS:
# Edit this file as needed for your machine.
# This simplified version is just for running on a single node.
# It is a simplified version of the site-configs/sandia/startup.sh which include SLURM directives.
# Most of the variables set in here are needed for io500_fixed.sh which gets sourced at the end of this.

set -euo pipefail  # better error handling

#DIR=/cache/xg17i000/x10007/io-500-dev
DIR=$PJM_O_CACHEDIR
export I_MPI_PIN_PROCESSOR_EXCLUDE_LIST=0,68,136,204

# turn these to True successively while you debug and tune this benchmark.
# for each one that you turn to true, go and edit the appropriate function.
# to find the function name, see the 'main' function.
# These are listed in the order that they run.
io500_run_ior_easy="True" # does the write phase and enables the subsequent read
io500_run_md_easy="True"  # does the creat phase and enables the subsequent stat
io500_run_ior_hard="True" # does the write phase and enables the subsequent read
io500_run_md_hard="True"  # does the creat phase and enables the subsequent read
io500_run_find="True"     
io500_run_ior_easy_read="True"
io500_run_md_easy_stat="True"
io500_run_ior_hard_read="True"
io500_run_md_hard_stat="True"
io500_run_md_hard_read="True"  
io500_run_md_easy_delete="True" # turn this off if you want to just run find by itself
io500_run_md_hard_delete="True" # turn this off if you want to just run find by itself
io500_run_mdreal="False"  # this one is optional
io500_cleanup_workdir="False"  # this flag is currently ignored. You'll need to clean up your data files manually if you want to.

function main {
  setup_directories
  setup_paths    
  setup_ior_easy # required if you want a complete score
  setup_ior_hard # required if you want a complete score
  setup_mdt_easy # required if you want a complete score
  setup_mdt_hard # required if you want a complete score
  setup_find     # required if you want a complete score
  setup_mdreal   # optional
  run_benchmarks
}

function setup_directories {
  # set directories for where the benchmark files are created and where the results will go.
  # If you want to set up stripe tuning on your output directories or anything similar, then this is good place to do it. 
  timestamp=`date +%Y.%m.%d-%H.%M.%S`           # create a uniquifier
  io500_workdir=$DIR/datafiles/io500.$timestamp # directory where the data will be stored
  io500_result_dir=$DIR/results/$timestamp      # the directory where the output results will be kept
  mkdir -p $io500_workdir $io500_result_dir
}

function setup_paths {
  # Set the paths to the binaries.  If you ran ./utilities/prepare.sh successfully, then binaries are in ./bin/
  io500_ior_cmd=$DIR/bin/ior
  io500_mdtest_cmd=$DIR/bin/mdtest
  io500_mdreal_cmd=$DIR/bin/md-real-io
  io500_mpirun="mpiexec.hydra"
  io500_mpiargs="-n ${PJM_MPI_PROC}"
}

function setup_ior_easy {
  io500_ior_easy_params="-t 2048k -b 16g -F" # 2M writes, 2 GB per proc, file per proc 
}

function setup_mdt_easy {
  io500_mdtest_easy_params="-u -L" # unique dir per thread, files only at leaves
  io500_mdtest_easy_files_per_proc=650
}

function setup_ior_hard {
  io500_ior_hard_writes_per_proc=300000
}

function setup_mdt_hard {
  io500_mdtest_hard_files_per_proc=40
}

function setup_find {
  #
  # setup the find command. This is an area where innovation is allowed.
  #    There are three default options provided. One is a serial find, one is python
  #    parallel version, one is C parallel version.  Current default is to use serial.
  #    But it is very slow. We recommend to either customize or use the C parallel version.
  #    Instructions below.
  #    If a custom approach is used, please provide enough info so others can reproduce.

  # the serial version that should run (SLOWLY) without modification
  io500_find_mpi="False"
  io500_find_cmd=$DIR/bin/sfind.sh
  io500_find_cmd_args=""

  # a parallel version in C, the -s adds a stonewall
  #   for a real run, turn -s (stonewall) off or set it at 300 or more
  #   to prepare this (assuming you've run ./utilities/prepare.sh already):
  #   > cd build/pfind
  #   > ./prepare.sh
  #   > ./compile.sh
  #   > cp pfind ../../bin/ 
  #   If you use io500_find_mpi="True", then this will run with the same
  #   number of MPI nodes and ranks as the other phases.
  #   If you prefer another number, and fewer might be better here,
  #   Then you can set io500_find_mpi to be "False" and write a wrapper
  #   script for this which sets up MPI as you would like.  Then change
  #   io500_find_cmd to point to your wrapper script. 
  io500_find_mpi="True"
  io500_find_cmd="$DIR/bin/pfind"
  io500_find_cmd_args="-s 300 -r $io500_result_dir/pfind_results"
  

  # a parallel version that might require some work, it is a python3 program 
  # if you used utilities/prepare.sh, it should already be there. 
  # change the stonewall to 300 to get a valid score
  #set +u
  #export PYTHONPATH=$PYTHONPATH:$PWD/bin/lib
  #io500_find_mpi="True"
  #io500_find_cmd="$PWD/bin/pfind -stonewall 1"
  #io500_find_cmd_args=""
}

function setup_mdreal {
  io500_mdreal_params="-P=5000 -I=1000"
}

function run_benchmarks {
  # Important: source the io500_fixed.sh script.  Do not change it. If you discover
  # a need to change it, please email the mailing list to discuss
  source ./bin/io500_fixed.sh 2>&1 | tee $io500_result_dir/io-500-summary.$timestamp.txt
}

# Add key/value pairs defining your system if you want
# This function needs to exist although it doesn't have to output anything if you don't want
function extra_description {
  echo "System_name='JCAHPC Oakforest-PACS'"
}

main
#rm -rf $io500_workdir
ior_easy_read
IOR-3.1.0: MPI Coordinated Test of Parallel I/O

ior WARNING: fsync() only available in POSIX.  Using value of 0.
Began: Thu May  3 21:00:12 2018
Command line used: /cache/0/gz02/z30218/io-500-dev/bin/ior -r -R -C -Q 1 -g -G 27 -k -e -t 2048k -b 128g -F -o /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/ior_easy/ior_file_easy
Machine: Linux c0001.ofp

Test 0 started: Thu May  3 21:00:12 2018
Summary:
	api                = MPIIO (version=3, subversion=1)
	test filename      = /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/ior_easy/ior_file_easy
	access             = file-per-process
	ordering in a file = sequential offsets
	ordering inter file= constant task offsets = 1
	clients            = 2048 (1 per node)
	repetitions        = 1
	xfersize           = 2 MiB
	blocksize          = 128 GiB
	aggregate filesize = 262144 GiB

access    bw(MiB/s)  block(KiB) xfer(KiB)  open(s)    wr/rd(s)   close(s)   total(s)   iter
------    ---------  ---------- ---------  --------   --------   --------   --------   ----
read      680415     134217728  2048.00    0.237256   394.27     0.006414   394.52     0   

Max Read:  680414.54 MiB/sec (713466.36 MB/sec)

Summary of all tests:
Operation   Max(MiB)   Min(MiB)  Mean(MiB)     StdDev    Mean(s) Test# #Tasks tPN reps fPP reord reordoff reordrand seed segcnt blksiz xsize aggsize API RefNum
read       680414.54  680414.54  680414.54       0.00  394.51752 0 2048 1 1 1 1 1 0 0 1 137438953472 2097152 281474976710656 MPIIO 0

Finished: Thu May  3 21:06:47 2018
ior_easy_write
IOR-3.1.0: MPI Coordinated Test of Parallel I/O

ior WARNING: fsync() only available in POSIX.  Using value of 0.
Began: Thu May  3 20:36:45 2018
Command line used: /cache/0/gz02/z30218/io-500-dev/bin/ior -w -C -Q 1 -g -G 27 -k -e -t 2048k -b 128g -F -o /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/ior_easy/ior_file_easy
Machine: Linux c0001.ofp

Test 0 started: Thu May  3 20:36:45 2018
Summary:
	api                = MPIIO (version=3, subversion=1)
	test filename      = /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/ior_easy/ior_file_easy
	access             = file-per-process
	ordering in a file = sequential offsets
	ordering inter file= constant task offsets = 1
	clients            = 2048 (1 per node)
	repetitions        = 1
	xfersize           = 2 MiB
	blocksize          = 128 GiB
	aggregate filesize = 262144 GiB

access    bw(MiB/s)  block(KiB) xfer(KiB)  open(s)    wr/rd(s)   close(s)   total(s)   iter
------    ---------  ---------- ---------  --------   --------   --------   --------   ----
write     762634     134217728  2048.00    0.177675   350.31     1.50       351.98     0   

Max Write: 762634.11 MiB/sec (799679.83 MB/sec)

Summary of all tests:
Operation   Max(MiB)   Min(MiB)  Mean(MiB)     StdDev    Mean(s) Test# #Tasks tPN reps fPP reord reordoff reordrand seed segcnt blksiz xsize aggsize API RefNum
write      762634.11  762634.11  762634.11       0.00  351.98459 0 2048 1 1 1 1 1 0 0 1 137438953472 2097152 281474976710656 MPIIO 0

Finished: Thu May  3 20:42:37 2018
ior_hard_read
IOR-3.1.0: MPI Coordinated Test of Parallel I/O

ior WARNING: fsync() only available in POSIX.  Using value of 0.
Began: Thu May  3 21:08:26 2018
Command line used: /cache/0/gz02/z30218/io-500-dev/bin/ior -r -R -C -Q 1 -g -G 27 -k -e -t 47008 -b 47008 -s 2400000 -o /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/ior_hard/IOR_file
Machine: Linux c0001.ofp

Test 0 started: Thu May  3 21:08:26 2018
Summary:
	api                = MPIIO (version=3, subversion=1)
	test filename      = /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/ior_hard/IOR_file
	access             = single-shared-file
	ordering in a file = sequential offsets
	ordering inter file= constant task offsets = 1
	clients            = 2048 (1 per node)
	repetitions        = 1
	xfersize           = 47008 bytes
	blocksize          = 47008 bytes
	aggregate filesize = 215185.55 GiB

access    bw(MiB/s)  block(KiB) xfer(KiB)  open(s)    wr/rd(s)   close(s)   total(s)   iter
------    ---------  ---------- ---------  --------   --------   --------   --------   ----
read      293979     45.91      45.91      0.196741   749.33     0.018433   749.54     0   

Max Read:  293978.72 MiB/sec (308259.03 MB/sec)

Summary of all tests:
Operation   Max(MiB)   Min(MiB)  Mean(MiB)     StdDev    Mean(s) Test# #Tasks tPN reps fPP reord reordoff reordrand seed segcnt blksiz xsize aggsize API RefNum
read       293978.72  293978.72  293978.72       0.00  749.54404 0 2048 1 1 0 1 1 0 0 2400000 47008 47008 231053721600000 MPIIO 0

Finished: Thu May  3 21:20:56 2018
ior_hard_write
IOR-3.1.0: MPI Coordinated Test of Parallel I/O

ior WARNING: fsync() only available in POSIX.  Using value of 0.
Began: Thu May  3 20:48:12 2018
Command line used: /cache/0/gz02/z30218/io-500-dev/bin/ior -w -C -Q 1 -g -G 27 -k -e -t 47008 -b 47008 -s 2400000 -o /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/ior_hard/IOR_file
Machine: Linux c0001.ofp

Test 0 started: Thu May  3 20:48:12 2018
Summary:
	api                = MPIIO (version=3, subversion=1)
	test filename      = /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/ior_hard/IOR_file
	access             = single-shared-file
	ordering in a file = sequential offsets
	ordering inter file= constant task offsets = 1
	clients            = 2048 (1 per node)
	repetitions        = 1
	xfersize           = 47008 bytes
	blocksize          = 47008 bytes
	aggregate filesize = 215185.55 GiB

access    bw(MiB/s)  block(KiB) xfer(KiB)  open(s)    wr/rd(s)   close(s)   total(s)   iter
------    ---------  ---------- ---------  --------   --------   --------   --------   ----
write     709364     45.91      45.91      0.139181   310.33     0.156248   310.63     0   

Max Write: 709364.13 MiB/sec (743822.20 MB/sec)

Summary of all tests:
Operation   Max(MiB)   Min(MiB)  Mean(MiB)     StdDev    Mean(s) Test# #Tasks tPN reps fPP reord reordoff reordrand seed segcnt blksiz xsize aggsize API RefNum
write      709364.13  709364.13  709364.13       0.00  310.63031 0 2048 1 1 0 1 1 0 0 2400000 47008 47008 231053721600000 MPIIO 0

Finished: Thu May  3 20:53:23 2018
mdtest_easy_delete
-- started at 05/03/2018 21:21:50 --

mdtest-1.9.3 was launched with 2048 total task(s) on 2048 node(s)
Command line used: /cache/0/gz02/z30218/io-500-dev/bin/mdtest -r -F -d /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/mdt_easy -n 5200 -u -L
Path: 
FS: 23597.0 TiB   Used FS: 15.9%   Inodes: 12312.0 Mi   Used Inodes: 7.8%

2048 tasks, 10649600 files

SUMMARY: (of 1 iterations)
   Operation                      Max            Min           Mean        Std Dev
   ---------                      ---            ---           ----        -------
   File creation     :          0.000          0.000          0.000          0.000
   File stat         :          0.000          0.000          0.000          0.000
   File read         :          0.000          0.000          0.000          0.000
   File removal      :      22182.094      22182.094      22182.094          0.000
   Tree creation     :          0.000          0.000          0.000          0.000
   Tree removal      :          0.683          0.683          0.683          0.000

-- finished at 05/03/2018 21:29:52 --
mdtest_easy_stat
-- started at 05/03/2018 21:07:10 --

mdtest-1.9.3 was launched with 2048 total task(s) on 2048 node(s)
Command line used: /cache/0/gz02/z30218/io-500-dev/bin/mdtest -T -F -d /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/mdt_easy -n 5200 -u -L
Path: 
FS: 23597.0 TiB   Used FS: 15.9%   Inodes: 12312.0 Mi   Used Inodes: 7.8%

2048 tasks, 10649600 files

SUMMARY: (of 1 iterations)
   Operation                      Max            Min           Mean        Std Dev
   ---------                      ---            ---           ----        -------
   File creation     :          0.000          0.000          0.000          0.000
   File stat         :     202010.929     202010.929     202010.929          0.000
   File read         :          0.000          0.000          0.000          0.000
   File removal      :          0.000          0.000          0.000          0.000
   Tree creation     :          0.000          0.000          0.000          0.000
   Tree removal      :          0.000          0.000          0.000          0.000

-- finished at 05/03/2018 21:08:03 --
mdtest_easy_write
-- started at 05/03/2018 20:43:00 --

mdtest-1.9.3 was launched with 2048 total task(s) on 2048 node(s)
Command line used: /cache/0/gz02/z30218/io-500-dev/bin/mdtest -C -F -d /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/mdt_easy -n 5200 -u -L
Path: 
FS: 23597.0 TiB   Used FS: 15.9%   Inodes: 12312.0 Mi   Used Inodes: 7.7%

2048 tasks, 10649600 files

SUMMARY: (of 1 iterations)
   Operation                      Max            Min           Mean        Std Dev
   ---------                      ---            ---           ----        -------
   File creation     :      37014.661      37014.661      37014.661          0.000
   File stat         :          0.000          0.000          0.000          0.000
   File read         :          0.000          0.000          0.000          0.000
   File removal      :          0.000          0.000          0.000          0.000
   Tree creation     :          3.686          3.686          3.686          0.000
   Tree removal      :          0.000          0.000          0.000          0.000

-- finished at 05/03/2018 20:47:48 --
mdtest_hard_delete
-- started at 05/03/2018 21:30:42 --

mdtest-1.9.3 was launched with 2048 total task(s) on 2048 node(s)
Command line used: /cache/0/gz02/z30218/io-500-dev/bin/mdtest -r -t -F -w 3901 -e 3901 -d /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/mdt_hard -n 320
Path: 
FS: 23597.0 TiB   Used FS: 15.9%   Inodes: 12312.0 Mi   Used Inodes: 7.7%

2048 tasks, 655360 files

SUMMARY: (of 1 iterations)
   Operation                      Max            Min           Mean        Std Dev
   ---------                      ---            ---           ----        -------
   File creation     :          0.000          0.000          0.000          0.000
   File stat         :          0.000          0.000          0.000          0.000
   File read         :          0.000          0.000          0.000          0.000
   File removal      :        755.741        755.741        755.741          0.000
   Tree creation     :          0.000          0.000          0.000          0.000
   Tree removal      :         41.370         41.370         41.370          0.000

-- finished at 05/03/2018 21:45:09 --
mdtest_hard_read
-- started at 05/03/2018 21:30:15 --

mdtest-1.9.3 was launched with 2048 total task(s) on 2048 node(s)
Command line used: /cache/0/gz02/z30218/io-500-dev/bin/mdtest -E -t -F -w 3901 -e 3901 -d /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/mdt_hard -n 320
Path: 
FS: 23597.0 TiB   Used FS: 15.9%   Inodes: 12312.0 Mi   Used Inodes: 7.7%

2048 tasks, 655360 files

SUMMARY: (of 1 iterations)
   Operation                      Max            Min           Mean        Std Dev
   ---------                      ---            ---           ----        -------
   File creation     :          0.000          0.000          0.000          0.000
   File stat         :          0.000          0.000          0.000          0.000
   File read         :     266706.060     266706.060     266706.060          0.000
   File removal      :          0.000          0.000          0.000          0.000
   Tree creation     :          0.000          0.000          0.000          0.000
   Tree removal      :          0.000          0.000          0.000          0.000

-- finished at 05/03/2018 21:30:17 --
mdtest_hard_stat
-- started at 05/03/2018 21:21:19 --

mdtest-1.9.3 was launched with 2048 total task(s) on 2048 node(s)
Command line used: /cache/0/gz02/z30218/io-500-dev/bin/mdtest -T -t -F -w 3901 -e 3901 -d /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/mdt_hard -n 320
Path: 
FS: 23597.0 TiB   Used FS: 15.9%   Inodes: 12312.0 Mi   Used Inodes: 7.8%

2048 tasks, 655360 files

SUMMARY: (of 1 iterations)
   Operation                      Max            Min           Mean        Std Dev
   ---------                      ---            ---           ----        -------
   File creation     :          0.000          0.000          0.000          0.000
   File stat         :      67241.783      67241.783      67241.783          0.000
   File read         :          0.000          0.000          0.000          0.000
   File removal      :          0.000          0.000          0.000          0.000
   Tree creation     :          0.000          0.000          0.000          0.000
   Tree removal      :          0.000          0.000          0.000          0.000

-- finished at 05/03/2018 21:21:29 --
mdtest_hard_write
-- started at 05/03/2018 20:53:45 --

mdtest-1.9.3 was launched with 2048 total task(s) on 2048 node(s)
Command line used: /cache/0/gz02/z30218/io-500-dev/bin/mdtest -C -t -F -w 3901 -e 3901 -d /cache/0/gz02/z30218/io-500-dev/datafiles/io500.2018.05.03-20.36.21/mdt_hard -n 320
Path: 
FS: 23597.0 TiB   Used FS: 15.9%   Inodes: 12312.0 Mi   Used Inodes: 7.8%

2048 tasks, 655360 files

SUMMARY: (of 1 iterations)
   Operation                      Max            Min           Mean        Std Dev
   ---------                      ---            ---           ----        -------
   File creation     :       1959.867       1959.867       1959.867          0.000
   File stat         :          0.000          0.000          0.000          0.000
   File read         :          0.000          0.000          0.000          0.000
   File removal      :          0.000          0.000          0.000          0.000
   Tree creation     :        363.238        363.238        363.238          0.000
   Tree removal      :          0.000          0.000          0.000          0.000

-- finished at 05/03/2018 20:59:20 --
result_summary
[RESULT] BW   phase 1            ior_easy_write              744.760 GB/s : time 351.98 seconds
[RESULT] IOPS phase 1         mdtest_easy_write               37.015 kiops : time 310.99 seconds
[RESULT] BW   phase 2            ior_hard_write              692.738 GB/s : time 310.63 seconds
[RESULT] IOPS phase 2         mdtest_hard_write                1.960 kiops : time 356.55 seconds
[RESULT] IOPS phase 3                      find              394.980 kiops : time  28.63 seconds
[RESULT] BW   phase 3             ior_easy_read              664.468 GB/s : time 394.52 seconds
[RESULT] IOPS phase 4          mdtest_easy_stat              202.011 kiops : time  75.58 seconds
[RESULT] BW   phase 4             ior_hard_read              287.089 GB/s : time 749.54 seconds
[RESULT] IOPS phase 5          mdtest_hard_stat               67.242 kiops : time  32.99 seconds
[RESULT] IOPS phase 6        mdtest_easy_delete               22.182 kiops : time 503.00 seconds
[RESULT] IOPS phase 7          mdtest_hard_read              266.706 kiops : time  25.69 seconds
[RESULT] IOPS phase 8        mdtest_hard_delete                0.756 kiops : time 891.32 seconds
[SCORE] Bandwidth 560.104 GB/s : IOPS 33.8903 kiops : TOTAL 18982.0925