IOR Tests: Difference between revisions

From OpenSFS Wiki
Jump to navigation Jump to search
No edit summary
Line 18: Line 18:
   -a S  api --  API for I/O [POSIX|MPIIO|HDF5|NCMPI]
   -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 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
   [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    collective -- collective I/O
   -C    reorderTasks -- changes task ordering to n+1 ordering for readback
   -C    reorderTasks -- changes task ordering to n+1 ordering for readback

Revision as of 07:46, 17 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