- Created by Mike McGreevy, last modified by Barbara Jones on Aug 28, 2019
h5perf
Tests Parallel HDF5 performance.
Syntax:
h5perf [-h | --help]
h5perf [options]
Description:
h5perf
is a tool for testing the performance of the Parallel HDF5 library. The tool can perform testing with 1-dimensional and 2-dimensional buffers and datasets. For details regarding data organization and access, see the “h5perf User Guide.”The following environment variables have the following effects on h5perf
behavior:
HDF5_NOCLEANUP | If set, h5perf does not remove data files. (Default: Data files are removed.) |
HDF5_MPI_INFO | Must be set to a string containing a list of semi-colon separated key=value pairs for the MPI INFO object. Example: |
HDF5_PARAPREFIX | Sets the prefix for parallel output data files. |
Options and Parameters:
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 , --help | |||||||||||||||
Prints a usage message and exits. | |||||||||||||||
-a size, --align= size | |||||||||||||||
Specifies the alignment of objects in the HDF5 file. (Default: 1 ) | |||||||||||||||
-A api_list, --api= api_list | |||||||||||||||
Specifies which APIs to test. api_list is a comma-separated list with the following valid values:
(Default: All APIs) | |||||||||||||||
-B size, --block-size= size | |||||||||||||||
Controls the block size within the transfer buffer. (Default: Half the number of bytes per process per dataset) Block size versus transfer buffer size: Transfer buffer size is discussed below with the
| |||||||||||||||
-c , --chunk | |||||||||||||||
Creates HDF5 datasets in chunked layout. (Default: Off) | |||||||||||||||
-C , --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 of every process will be written at once with an MPI derived type. | |||||||||||||||
-d N, --num-dsets N | |||||||||||||||
Sets the number of datasets per file. (Default: 1 ) | |||||||||||||||
-D debug_flags, --debug= debug_flags | |||||||||||||||
Sets the debugging level. debug_flags is a comma-separated list of debugging flags with the following valid values:
(Default: No debugging) Example: Throughput values are computed by dividing the total amount of transferred data (excluding metadata) over the time spent by the slowest process. Several time counters are defined to measure the data transfer time and the total elapsed time; the latter includes the time spent during file open and close operations. A number of iterations can be specified with the option for each iteration initialize elapsed time counter initialize data transfer time counter for each file start and accumulate elapsed time counter file open start and accumulate data transfer time counter access entire file stop data transfer time counter file close stop elapsed time counter end file save elapsed time counter save data transfer time counter end iteration The reported write throughput is based on the accumulated data transfer time, while the write open-close throughput uses the accumulated elapsed time. | |||||||||||||||
-e size, --num-bytes= size | |||||||||||||||
Specifies the number of bytes per process per dataset. (Default: 256K for 1D, 8K for 2D)Depending on the selected geometry, each test dataset can be a linear array of size bytes-per-process * num-processes or a square array of size (bytes-per-process * num-processes) × (bytes-per-process * num-processes). The number of processes is set by the | |||||||||||||||
-F N, --num-files= N | |||||||||||||||
Specifies the number of files. (Default: 1 ) | |||||||||||||||
-g , --geometry | |||||||||||||||
Selects 2D geometry for testing. (Default: Off, i.e., 1D geometry) | |||||||||||||||
-i N, --num-iterations= N | |||||||||||||||
Sets the number of iterations to perform. (Default: 1 ) |
-I , --interleaved | |
Sets interleaved block I/O. (Default: Contiguous block I/O) Interleaved and contiguous patterns in 1D geometry: For example, with a three process run, 512KB bytes-per-process, 256KB transfer buffer size, and 64KB block size, each process must issue two transfer requests to complete access to the dataset. Contiguous blocks of the first transfer request are written as follows: Interleaved blocks of the first transfer request are written as follows: The actual number of I/O operations involved in a transfer request depends on the access pattern and communication mode. When using independent I/O with an interleaved access pattern, each process performs four small non-contiguous I/O operations per transfer request. If collective I/O is turned on, the combined content of the buffers of the three processes will be written using one collective I/O operation per transfer request. For details regarding the impact of performance and access patterns in 2D, see the “h5perf User Guide.” |
-m , --mpi-posix | This option is no longer available. |
-n , --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, --output= file | Sets the output file for raw data to file. (Default: None) |
-p N, --min-num-processes= N | Sets the minimum number of processes to be used. (Default: 1 ) |
-P N, --max-num-processes= N | Sets the maximum number of processes to be used. (Default: All MPI_COMM_WORLD processes) |
-T size, --threshold= size | Sets the threshold for alignment of objects in the HDF5 file. (Default: 1 ) |
-w , --write-only | Performs only write tests, not read tests. (Default: Read and write tests) |
-x size, --min-xfer-size= size | Sets the minimum transfer buffer size. (Default: Half the number of bytes per processor per dataset) This option and the |
-X size, --max-xfer-size= size | Sets the maximum transfer buffer size. (Default: The number of bytes per processor per dataset) |
Exit Status:
0 | Succeeded. |
> 0 | An error occurred. |
History:
Release | Change |
---|---|
1.6.0 | Tool introduced in this release. |
1.6.8 and 1.8.0 | Option -g , --geometry introduced in this release. |
--- Last Modified: August 28, 2019 | 08:42 AM