Manual Reference Pages - BW_PIPE (8)
bw_pipe - time data movement through pipes
-m <message size> ]
-M <total bytes> ]
-P <parallelism> ]
-W <warmups> ]
-N <repetitions> ]
bw_pipe creates a Unix pipe between two processes and moves
total bytes through the pipe in
message size chunks (note that pipes are typically sized smaller than that).
total bytes is 10MB and the default
message size is 64KB.
Output format is "Pipe bandwidth: %0.2f MB/sec\n", megabytes_per_second, i.e.,
Pipe bandwidth: 4.87 MB/sec
This benchmark can move up to six times the requested memory per process.
There are two processes, the sender and the receiver.
systems implement the read/write system calls as a bcopy from/to kernel space
to/from 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.
Carl Staelin and Larry McVoy
Comments, suggestions, and bug reports are always welcome.
|(c)1994 Larry McVoy ||BW_PIPE (8) ||$Date$ |
Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.