h5perf(1)

NAME
h5perf - Tests Parallel HDF5 performance.

SYNOPSIS
h5perf [-h | --help]

h5perf [options]

DESCRIPTION
h5perf provides tools for testing the performance of the Parallel HDF5 library.

ENVIRONMENT

HDF5_NOCLEANUP
    If set, h5perf does not remove data files. (Default: Remove)

HDF5_MPI_INFO
    Must be set to a string containing a list of semi-colon separated key=value pairs for the MPI INFO object.

HDF5_PARAPREFIX
    Sets the prefix for paralllel output data files.

OPTIONS
These terms are used as follows in this section:

file
    A filename

size
    A size specifier, expressed as an integer greater than or equal to 0 (zero) followed by a size indicator:
    K for kilobytes (1024 bytes)
    M for megabytes (1048576 bytes)
        G for gigabytes (1073741824 bytes)
    Example: 37M specifies 37 megabytes or 38797312 bytes.

    N   An integer greater than or equal to 0 (zero)

    -h  or --help Prints a usage message and exits.

    -a size
        or --align=size Specifies the alignment of objects in the HDF5 file. (Default: 1)

    -A api_list
        or --api=api_list Specifies which APIs to test. api_list is a comma-separated list with the following valid values:

        phdf5
            Parallel HDF5

        mpiio
            MPI-I/O

        posix
            POSIX

            (Default: All APIs)

        Example, --api=mpiio,phdf5 specifies that the MPI I/O and parallel HDf5 APIs are to be monitored.

    -B size
        or --block-size=size Specifies the block size within the transfer buffer. (Default: 128K) Block size versus transfer buffer size: The transfer buffer size is the size of a buffer in memory. The data in that buffer is broken into block size pieces and written to the file. Transfer block size is set by the -x (or --min-xfer-size) and -X (or --max-xfer-size) options. The pattern in which the blocks are written to the file is described in the discussion of the -I (or --interleaved) option.

    -c  or --chunk
            Creates HDF5 datasets in chunked layout. (Default: Off)

    -C  or --collective Use collective I/O for the MPI I/O and Parallel HDF5 APIs. (Default: Off, i.e., independent I/O) If this option is set and the MPI-I/O and PHDF5 APIs are in use, all the blocks in each transfer buffer will be written at once with an MPI derived type.

    -d N
        or --num-dsetsN Sets the number of datasets per file. (Default: 1)

    -D debug_flags
        or --debug=debug_flags Sets the debugging level. debug_flags is a comma-separated list of debugging flags with the following valid values:

        1   Minimal debugging

        2   Moderate debugging (not quite everything)

        3   Extensive debugging (everything)

        4   All possible debugging (the kitchen sink)

        r   Raw data I/O throughput information

        t   Times, in additions to throughputs

        v   Verify data correctness

            (Default: No debugging)

        Example: --debug=2,r,t specifies to run a moderate level of debugging while collecting raw data I/O throughput information and verifying the correctness of the data.

    -e size
        or --num-bytes=size Specifies the number of bytes per process per dataset. (Default: 256K)

    -F N
        or --num-files=N Specifies the number of files. (Default: 1)

    -i N
        or --num-iterations=N Sets the number of iterations to perform. (Default: 1)

    -I  or --interleaved Sets interleaved block I/O. (Default: Contiguous block I/O)

        Interleaved vs. Contiguous blocks in a parallel environment: When contiguous blocks are written to a dataset, the dataset is divided into m regions, where m is the number of processes writing separate portions of the dataset. Each process then writes data to its own region. When interleaved blocks are written to a dataset, space for the first block of the first process is allocated in the dataset, then space is allocated for the first block of the second process, etc., until space has been allocated for the first block of each process. Space is then allocated for the second block of the first process, the second block of the second process, etc.

        For example, in the case of a 4 process run with 1M bytes-per-process, 256K transfer buffer size, and 64KB block size, 16 contiguous blocks per process would be written to the file in the manner
        1111111111111111222222222222222233333333333333334444444444444444

        while 16 interleaved blocks per process would be written to the file as 1234123412341234123412341234123412341234123412341234123412341234

        If collective I/O is turned on, all of the four blocks per transfer buffer will be written in one collective I/O call.

    -m  or --mpi-posix Sets use of MPI-posix driver for HDF5 I/O. (Default: MPI-I/O driver)

    -n  or --no-fill Specifies to not write fill values to HDF5 datasets. This option is supported only in HDF5 Release v1.6 or later. (Default: Off, i.e., write fill values)

    -o file
        or --output=file Sets the output file for raw data to file. (Default: None)

    -p N
        or --min-num-processes=N Sets the minimum number of processes to be used. (Default: 1)

    -P N
        or --max-num-processes=N Sets the maximum number of processes to be used. (Default: All MPI_COMM_WORLDprocesses)

    -T size
        or --threshold=size Sets the threshold for alignment of objects in the HDF5 file. (Default: 1)

    -w  or --write-only Performs only write tests, not read tests. (Default: Read and write tests)

    -x size
        or --min-xfer-size=size Sets the minimum transfer buffer size. (Default: 128K)

    -X size
        or --max-xfer-size=size Sets the maximum transfer buffer size. (Default: 1M)

SEE ALSO
h5dump(1), h5ls(1), h5diff(1), h5repart(1), gif2h5(1), h52gif(1), h5import(1), h4toh5(1), h5toh4(1)