From 0f70e6ea7e3b8ebf675fc9c8997f1e2847cbb2d0 Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Thu, 25 Sep 2003 10:04:18 -0500 Subject: [svn-r7509] Purpose: Added the entry of document of the three basic performance tools. The information was provided by Robb long time ago. Platforms tested: Viewed by IE. Misc. update: --- doc/html/TechNotes.html | 7 +++- doc/html/TechNotes/Basic_perform.html | 75 +++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 doc/html/TechNotes/Basic_perform.html diff --git a/doc/html/TechNotes.html b/doc/html/TechNotes.html index 542d282..01f1a9a 100644 --- a/doc/html/TechNotes.html +++ b/doc/html/TechNotes.html @@ -237,6 +237,11 @@ HDF5 Technical Notes   Results of reviewing tests for API functions. +Basic Performance Tools +   + A description of the three basic performance tools (chunk, iopipe, overhead). + + Variable-Length Datatype Info   Description of various aspects of using variable-length datatypes in HDF5. @@ -286,7 +291,7 @@ HDF5 Technical Notes   Describes HDF5 Release 1.6.0, July 2003 -Last modified: 16 November 2002 +Last modified: 25 September 2003 diff --git a/doc/html/TechNotes/Basic_perform.html b/doc/html/TechNotes/Basic_perform.html new file mode 100644 index 0000000..2a622fc --- /dev/null +++ b/doc/html/TechNotes/Basic_perform.html @@ -0,0 +1,75 @@ + + + + Description of the three basic performance tools + + + +

Description of the three basic performance tools

+ +

iopipe

+

Times reads and writes to an HDF5 2-d dataset and compares that with + reads and writes using POSIX I/O. Reports seven measurements in + terms of CPU user time, CPU system time, elapsed time, and + bandwidth: + + +

+
fill raw: time it takes to memset() a buffer.
+
fill hdf5: time it takes to read from a dataset never written
+
out raw: time it takes to write using POSIX I/O
+
out hdf5: time it takes to write using H5Dwrite()
+
in raw: time it takes to read data just written using POSIX I/O
+
in hdf5: time it takes to H5Dread() data written with H5Dwrite()
+
in hdf5 partial: time it takes to H5Dread() the "center" area.
+
+ + +

This is a pretty stupid performance test. It accesses the same area + of file and memory over and over and the file size is way too + small. But it is good at showing how much overhead there is in the + library itself. + + +

chunk

+

Determines how efficient the raw data cache is for various access + patterns of a chunked dataset, both reading and writing. The access + pattern is either (a) we access the entire dataset by moving a window + across and down a 2-d dataset in row-major order a full window + height and width at a time, or (b) we access part of a dataset by moving + the window diagonally from the (0,0) corner to the opposite corner + by half the window height and width at a time. The window is + measured in terms of the chunk size. + + +

The result is: +
A table written to stdout that contains the window size as a + fraction of the chunk size and the efficiencey of the cache (i.e., + number of bytes accessed by H5Dread() or H5Dwrite() divided by the + number of bytes of the dataset actually read or written by lower + layers. + + +

A gnuplot script and data files which can be displayed by running + gnuplot and typing the command `load "x-gnuplot"'. + + +

overhead

+

Measures the overhead used by the B-tree for indexing chunked + datasets. As data is written to a chunked dataset the B-tree + grows and its nodes get split. When a node splits one of three + ratios are used to determine how many items from the original node + go into the new left and right nodes, and these ratios affect the + total size of the B-tree in a way that depends on the order that + data is written to the dataset. + + +

Invoke as `overhead usage' for more information. +


+
Robb Matzke
+ + +Last modified: Jun 4, 2003 + + + -- cgit v0.12