Difference between revisions of "IOR Tests"

From OpenSFS
Jump to: navigation, search
(Created page with "==== IOR Performance Tests ==== === Streaming === mpirun -np {NP} -wd {Working Dir} -machinefile {Machine File} {IOR Pathname}/IOR -v -a POSIX -i5 -g -e -w -r -b {FileSize}g ...")
 
Line 1: Line 1:
==== IOR Performance Tests ====
+
== IOR Performance Tests ==
  
 
=== Streaming ===
 
=== Streaming ===
Line 13: Line 13:
 
   {IOR Pathname} The full path to IOR, this must be accessible on all clients
 
   {IOR Pathname} The full path to IOR, this must be accessible on all clients
 
   {FileSize} The size of the file each thread will use.  This should be a multiple of client memory, to prevent cache effects.
 
   {FileSize} The size of the file each thread will use.  This should be a multiple of client memory, to prevent cache effects.
 +
 +
== A List of IOR Options ==
 +
  -A N  testNum -- test number for reference in some output
 +
  -a S  api --  API for I/O [POSIX|MPIIO|HDF5|NCMPI]
 +
  -b N  blockSize -- contiguous bytes to write per task  (e.g.: 8, 4k, 2m, 1g)
 +
  -B    use O_DIRECT -- uses O_DIRECT for POSIX, bypassing I/O buffers
 +
  -c    collective -- collective I/O
 +
  -C    reorderTasks -- changes task ordering to n+1 ordering for readback
 +
  -Q N  taskPerNodeOffset for read tests use with -C & -Z options (-C constant N, -Z at least N) [!HDF5]
 +
  -Z    reorderTasksRandom -- changes task ordering to random ordering for readback
 +
  -X N  reorderTasksRandomSeed -- random seed for -Z option
 +
  -d N  interTestDelay -- delay between reps in seconds
 +
  -D N  deadlineForStonewalling -- seconds before stopping write or read phase
 +
  -Y    fsyncPerWrite -- perform fsync after each POSIX write
 +
  -e    fsync -- perform fsync upon POSIX write close
 +
  -E    useExistingTestFile -- do not remove test file before write access
 +
  -f S  scriptFile -- test script name
 +
  -F    filePerProc -- file-per-process
 +
  -g    intraTestBarriers -- use barriers between open, write/read, and close
 +
  -G N  setTimeStampSignature -- set value for time stamp signature
 +
  -h    showHelp -- displays options and help
 +
  -H    showHints -- show hints
 +
  -i N  repetitions -- number of repetitions of test
 +
  -I    individualDataSets -- datasets not shared by all procs [not working]
 +
  -j N  outlierThreshold -- warn on outlier N seconds from mean
 +
  -J N  setAlignment -- HDF5 alignment in bytes (e.g.: 8, 4k, 2m, 1g)
 +
  -k    keepFile -- don't remove the test file(s) on program exit
 +
  -K    keepFileWithError  -- keep error-filled file(s) after data-checking
 +
  -l    storeFileOffset -- use file offset as stored signature
 +
  -m    multiFile -- use number of reps (-i) for multiple file count
 +
  -n    noFill -- no fill in HDF5 file creation
 +
  -N N  numTasks -- number of tasks that should participate in the test
 +
  -o S  testFile -- full name for test
 +
  -O S  string of IOR directives (e.g. -O checkRead=1,lustreStripeCount=32)
 +
  -p    preallocate -- preallocate file size
 +
  -P    useSharedFilePointer -- use shared file pointer [not working]
 +
  -q    quitOnError -- during file error-checking, abort on error
 +
  -r    readFile -- read existing file
 +
  -R    checkRead -- check read after read
 +
  -s N  segmentCount -- number of segments
 +
  -S    useStridedDatatype -- put strided access into datatype [not working]
 +
  -t N  transferSize -- size of transfer in bytes (e.g.: 8, 4k, 2m, 1g)
 +
  -T N  maxTimeDuration -- max time in minutes to run tests
 +
  -u    uniqueDir -- use unique directory name for each file-per-process
 +
  -U S  hintsFileName -- full name for hints file
 +
  -v    verbose -- output information (repeating flag increases level)
 +
  -V    useFileView -- use MPI_File_set_view
 +
  -w    writeFile -- write file
 +
  -W    checkWrite -- check read after write
 +
  -x    singleXferAttempt -- do not retry transfer if incomplete
 +
  -z    randomOffset -- access is to random, not sequential, offsets within a file

Revision as of 12:31, 20 February 2015

IOR Performance Tests

Streaming

mpirun -np {NP} -wd {Working Dir} -machinefile {Machine File} {IOR Pathname}/IOR -v -a POSIX -i5 -g -e -w -r -b {FileSize}g -T 10 -F -C -t 4m

Random I/O

mpirun -np {NP} -wd {Working Dir} -machinefile {Machine File} {IOR Pathname}/IOR -v -a POSIX -i5 -g -e -w -r -b {FileSize}g -T 10 -F -z -t 4k

Where:

 {NP} is Total number of threads in the test
 {Working Dir} is the directory where files get created
 {Machine File} is a list of clients involved in the test, this is either created by hand, or by a scheduler
 {IOR Pathname} The full path to IOR, this must be accessible on all clients
 {FileSize} The size of the file each thread will use.  This should be a multiple of client memory, to prevent cache effects.

A List of IOR Options

 -A N  testNum -- test number for reference in some output
 -a S  api --  API for I/O [POSIX|MPIIO|HDF5|NCMPI]
 -b N  blockSize -- contiguous bytes to write per task  (e.g.: 8, 4k, 2m, 1g)
 -B    use O_DIRECT -- uses O_DIRECT for POSIX, bypassing I/O buffers
 -c    collective -- collective I/O
 -C    reorderTasks -- changes task ordering to n+1 ordering for readback
 -Q N  taskPerNodeOffset for read tests use with -C & -Z options (-C constant N, -Z at least N) [!HDF5]
 -Z    reorderTasksRandom -- changes task ordering to random ordering for readback
 -X N  reorderTasksRandomSeed -- random seed for -Z option
 -d N  interTestDelay -- delay between reps in seconds
 -D N  deadlineForStonewalling -- seconds before stopping write or read phase
 -Y    fsyncPerWrite -- perform fsync after each POSIX write
 -e    fsync -- perform fsync upon POSIX write close
 -E    useExistingTestFile -- do not remove test file before write access
 -f S  scriptFile -- test script name
 -F    filePerProc -- file-per-process
 -g    intraTestBarriers -- use barriers between open, write/read, and close
 -G N  setTimeStampSignature -- set value for time stamp signature
 -h    showHelp -- displays options and help
 -H    showHints -- show hints
 -i N  repetitions -- number of repetitions of test
 -I    individualDataSets -- datasets not shared by all procs [not working]
 -j N  outlierThreshold -- warn on outlier N seconds from mean
 -J N  setAlignment -- HDF5 alignment in bytes (e.g.: 8, 4k, 2m, 1g)
 -k    keepFile -- don't remove the test file(s) on program exit
 -K    keepFileWithError  -- keep error-filled file(s) after data-checking
 -l    storeFileOffset -- use file offset as stored signature
 -m    multiFile -- use number of reps (-i) for multiple file count
 -n    noFill -- no fill in HDF5 file creation
 -N N  numTasks -- number of tasks that should participate in the test
 -o S  testFile -- full name for test
 -O S  string of IOR directives (e.g. -O checkRead=1,lustreStripeCount=32)
 -p    preallocate -- preallocate file size
 -P    useSharedFilePointer -- use shared file pointer [not working]
 -q    quitOnError -- during file error-checking, abort on error
 -r    readFile -- read existing file
 -R    checkRead -- check read after read
 -s N  segmentCount -- number of segments
 -S    useStridedDatatype -- put strided access into datatype [not working]
 -t N  transferSize -- size of transfer in bytes (e.g.: 8, 4k, 2m, 1g)
 -T N  maxTimeDuration -- max time in minutes to run tests
 -u    uniqueDir -- use unique directory name for each file-per-process
 -U S  hintsFileName -- full name for hints file
 -v    verbose -- output information (repeating flag increases level)
 -V    useFileView -- use MPI_File_set_view
 -w    writeFile -- write file
 -W    checkWrite -- check read after write
 -x    singleXferAttempt -- do not retry transfer if incomplete
 -z    randomOffset -- access is to random, not sequential, offsets within a file