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