H5PERF_SERIAL:(1)

πŸ’– NAME πŸ’–

h5perf_serial: β€” bestie, it Measures HDF5 serial performance. That's the whole gig. We're in section 1, User Commands territory, and honestly? iconic. πŸ‘‘


πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so first thing: this page is h5perf_serial: Version 1.8.7, and the usage is literally:

h5perf_serial [OPTIONS]

✨ OPTIONS ✨

  • -h β€” print a usage message and exit. That's it, that's the flag. bye bestie πŸ‘‹
  • -A AL β€” which APIs to test [default: all of them]
  • -c SL β€” selects chunked storage and defines chunks dimensions and sizes [default: Off]
  • -e SL β€” dimensions and sizes of dataset [default: 100,200]
  • -i N β€” number of iterations to perform [default: 1]
  • -r NL β€” dimension access order (there's a whole explanation below, keep reading, it's giving lore) [default: 1,2]
  • -t β€” selects extendable dimensions for HDF5 dataset [default: Off]
  • -v VFD β€” selects file driver for HDF5 access [default: sec2]
  • -w β€” perform write tests, not the read tests [default: Off]
  • -x SL β€” dimensions and sizes of the transfer buffer [default: 10,20]

Now for the little legend of what those placeholder letters mean, because they will come for you if you don't read this:

  • N β€” is an integer > 0.
  • S β€” is a size specifier, an integer > 0 followed by a size indicator:
    • K - Kilobyte (1024)
    • M - Megabyte (1048576)
    • G - Gigabyte (1073741824)

Example: '37M' is 37 megabytes or 38797312 bytes. slay, math ate πŸ’…

  • AL β€” is an API list. Valid values are:
    • hdf5 - HDF5
    • posix - POSIX

Example: -A posix,hdf5

  • NL β€” is list of integers (N) separated by commas.

Example: 1,2,3

  • SL β€” is list of size specifiers (S) separated by commas.

Example: 2K,2K,3K

🚨 The example defines an object (dataset, transfer buffer) with three dimensions. Be aware that as the number of dimensions increases, the total size of the object increases exponentially. Not a drill, bestie, that's exponential growth, it will simply eat your memory. 😭
  • VFD β€” is an HDF5 file driver specifier. Valid values are:

sec2, stdio, core, split, multi, family, direct

πŸŒ€ Dimension access order πŸŒ€

So the vibe here: data access starts at the cardinal origin of the dataset using the transfer buffer. The next access happens on a dataset region next to the previous one. For a multidimensional dataset there are, like, several directions you could proceed in β€” choices, main character decisions β€” and that's what the dimension access order specifies. For example, -r 1,2 states that the tool should traverse dimension 1 first, and then dimension 2. periodt. ✨

🌸 Environment variables 🌸

  • HDF5_NOCLEANUP β€” do not remove data files if set [default remove]. So if it's set, the files stay. No cleanup. Just vibes and leftover files forever. πŸ™ˆ
  • HDF5_PREFIX β€” data file prefix.

🀑 and now... the exact same thing, again 🀑

Not me noticing the page just prints the entire options block a second time. fr fr, it does. Here it is, unedited, because we keep every detail around here:

usage: h5perf_serial [OPTIONS]

OPTIONS

  • -h β€” print a usage message and exit
  • -A AL β€” which APIs to test [default: all of them]
  • -c SL β€” selects chunked storage and defines chunks dimensions and sizes [default: Off]
  • -e SL β€” dimensions and sizes of dataset [default: 100,200]
  • -i N β€” number of iterations to perform [default: 1]
  • -r NL β€” dimension access order (see below for description) [default: 1,2]
  • -t β€” selects extendable dimensions for HDF5 dataset [default: Off]
  • -v VFD β€” selects file driver for HDF5 access [default: sec2]
  • -w β€” perform write tests, not the read tests [default: Off]
  • -x SL β€” dimensions and sizes of the transfer buffer [default: 10,20]
  • N β€” is an integer > 0.
  • S β€” is a size specifier, an integer > 0 followed by a size indicator:
    • K - Kilobyte (1024)
    • M - Megabyte (1048576)
    • G - Gigabyte (1073741824)

Example: '37M' is 37 megabytes or 38797312 bytes

  • AL β€” is an API list. Valid values are:
    • hdf5 - HDF5
    • posix - POSIX

Example: -A posix,hdf5

  • NL β€” is list of integers (N) separated by commas.

Example: 1,2,3

  • SL β€” is list of size specifiers (S) separated by commas.

Example: 2K,2K,3K

The example defines an object (dataset, transfer buffer) with three dimensions. Be aware that as the number of dimensions increases, the total size of the object increases exponentially. (yes, still exponential, still scary 🫠)
  • VFD β€” is an HDF5 file driver specifier. Valid values are:

sec2, stdio, core, split, multi, family, direct

Dimension access order:

Data access starts at the cardinal origin of the dataset using the transfer buffer. The next access occurs on a dataset region next to the previous one. For a multidimensional dataset, there are several directions as to where to proceed. This can be specified in the dimension access order. For example, -r 1,2 states that the tool should traverse dimension 1 first, and then dimension 2.

Environment variables:

  • HDF5_NOCLEANUP β€” do not remove data files if set [default remove]
  • HDF5_PREFIX β€” data file prefix

🌈 SEE ALSO 🌈

The full documentation for h5perf_serial: is maintained as a Texinfo manual. If the info and h5perf_serial: programs are properly installed at your site, the command

info h5perf_serial:

should give you access to the complete manual. go read it, it's giving ✨ lore ✨


And that's the whole page, bestie!! 🫢 Written by the h5perf_serial: Version 1.8.7 girlies, dated August 2011 β€” yes she's vintage, yes she still serves. πŸ’œπŸŽ€πŸ¦‹