IOR Tests: Difference between revisions

From OpenSFS Wiki
Jump to navigation Jump to 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 ...")
 
No edit summary
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==== IOR Performance Tests ====
__NOTOC__
 
== IOR Performance Tests ==


=== Streaming ===
=== 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
[[mpirun|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 ===
=== Random I/O ===
Line 13: Line 15:
   {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]
  [http://wiki.opensfs.org/images/f/f7/IOR-blocksize-Charts.pdf '''-b N  blockSize'''] -- contiguous bytes to write per task  (e.g.: 8, 4k, 2m, 1g)
  [http://wiki.opensfs.org/images/f/f7/IOR-blocksize-Charts.pdf '''-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
  [http://wiki.opensfs.org/images/8/81/IOR-transfersize-Charts.pdf '''-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]
  [http://wiki.opensfs.org/images/8/81/IOR-transfersize-Charts.pdf '''-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

Latest revision as of 12:07, 20 March 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