Table of Contents
bw_file_rd - time the reading and summing of a file
bw_file_rd
[ -P <parallelism> ] [ -W <warmups> ] [ -N <repetitions> ] size file
bw_file_rd
times the read of the specified file in 64KB blocks. Each block is summed
up as a seried of 4 byte integers in an unrolled loop. Results are reported
in megabytes read per second.
The data is not accessed in the user program;
the benchmark relies on the operating systems read interface to have actually
moved the data. Systems that implement page flipping may fool this benchmark.
The benchmark is intended to be used on a file that is in memory, i.e.,
the benchmark is a reread benchmark. Other file benchmarking can be done
with lmdd(8)
.
The size specification may end with ‘‘k’’ or ‘‘m’’ to mean kilobytes
(* 1024) or megabytes (* 1024 * 1024).
Output format is CB"%0.2f %.2f\n",
megabytes, megabytes_per_second, i.e.,
8.00 25.33
This benchmark
can move up to three times the requested memory. Most Unix systems implement
the read system call as a bcopy from kernel space to user space. Bcopy
will use 2-3 times as much memory bandwidth: there is one read from the
source and a write to the destionation. The write usually results in a
cache line read and then a write back of the cache line at some later point.
Memory utilization might be reduced by 1/3 if the processor architecture
implemented ‘‘load cache line’’ and ‘‘store cache line’’ instructions (as well
as ‘‘getcachelinesize’’).
Funding for the development of this
tool was provided by Sun Microsystems Computer Corporation.
lmbench(8)
.
Carl Staelin and Larry McVoy
Comments, suggestions, and bug reports
are always welcome.
Table of Contents