summaryrefslogtreecommitdiffstats
path: root/doc/html/TechNotes/Basic_perform.html
blob: 2a622fc4bd13ef27124d49bd3d360c410366ce9b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
  <head>
    <title>Description of the three basic performance tools</title>
  </head>

  <body>
    <h1>Description of the three basic performance tools</h1>

    <h2>iopipe</h2>
  <p>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:


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


  <p>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.


    <h2>chunk</h2>
  <p>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.


  <p>The result is:
    <br>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.


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


    <h2>overhead</h2>
  <p>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.


  <p>Invoke as `overhead usage' for more information.
    <hr>
    <address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
<!-- Created: Tue Mar 17 11:13:35 EST 1998 -->
<!-- hhmts start -->
Last modified: Jun 4, 2003
<!-- hhmts end -->
  </body>
</html>