3
.\" NetPIPE -- Network Protocol Independent Performance Evaluator.
4
.\" Copyright 1997, 1998 Iowa State University Research Foundation, Inc.
6
.\" This program is free software; you can redistribute it and/or modify
7
.\" it under the terms of the GNU General Public License as published by
8
.\" the Free Software Foundation. You should have received a copy of the
9
.\" GNU General Public License along with this program; if not, write to the
10
.\" Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
13
.\" Created: Mon Jun 15 1998 by Guy Helmer
15
.\" $Id: netpipe.1,v 1.3 1998/09/24 16:23:59 ghelmer Exp $
17
.TH netpipe 1 "June 15, 1998" "NetPIPE" "netpipe"
20
NetPIPE \- network protocol independent performance evaluator
25
.BI \-A \ buffer_alignment\fR\c
31
.BI \-b \ TCP_buffer_size\fR\c
34
.BI \-h \ host_name\fR\c
37
.BI \-i \ increment\fR\c
40
.BI \-l \ starting_msg_size\fR\c
43
.BI \-O \ buffer_offset\fR\c
46
.BI \-o \ output_filename\fR\c
64
.BI \-u \ ending_msg_size\fR\c
71
.BI \-A \ buffer_alignment\fR\c
77
.BI \-i \ increment\fR\c
80
.BI \-l \ starting_msg_size\fR\c
83
.BI \-O \ buffer_offset\fR\c
86
.BI \-o \ output_filename\fR\c
95
.BI \-u \ ending_msg_size\fR\c
102
.BI \-A \ buffer_alignment\fR\c
108
.BI \-i \ increment\fR\c
111
.BI \-l \ starting_msg_size\fR\c
114
.BI \-O \ buffer_offset\fR\c
117
.BI \-o \ output_filename\fR\c
132
.BI \-u \ ending_msg_size\fR\c
138
is a protocol independent performance tool that encapsulates
139
the best of ttcp and netperf and visually represents the network
140
performance under a variety of conditions. By taking the end-to-end
141
application view of a network,
143
clearly shows the overhead
144
associated with different protocol layers.
146
answers such questions as:
148
How soon will a given data block of size k arrive at its destination?
150
Which network and protocol will transmit size k blocks the fastest?
152
What is a given network's effective maximum throughput and saturation
155
Does there exist a block size k for which the throughput is maximized?
157
How much communication overhead is due to the network communication
160
How quickly will a small (< 1 kbyte) control message arrive, and which
161
network and protocol are best for this purpose?
165
is provided with interfaces for TCP, MPI, and PVM, but TCP is the most
166
commonly used interface for general network testing purposes. It
167
should be easy to write new interfaces for other reliable protocols based
168
on the examples provided by the TCP, MPI and PVM interfaces.
171
Typical use for TCP involves running the TCP NetPIPE receiver on one
172
system with the command
178
and running the TCP NetPIPE transmitter on another system with the
182
NPtcp \-h receiver_hostname \-o output_filename \-P \-t
185
If any options are used that modify the test protocol, including \-i,
186
\-l, \-p, \-s, and \-u, those parameters
188
be used on both the transmitter and the receiver, or the test
189
will not run properly.
192
Typical use for PVM first requires starting PVM with the command
198
and adding a second machine with the PVM command
204
(then exit the PVM command line interface). Then run the PVM NetPIPE
205
receiver on one system with the command
211
and run the TCP NetPIPE transmitter on the other system with the
215
NPpvm \-t \-o output_filename \-P
218
If any options are used that modify the test protocol, including \-i,
219
\-l, \-p, \-s, and \-u, those parameters
221
be used on both the transmitter and the receiver, or the test
222
will not run properly.
225
Use of the MPI interface for NetPIPE depends on the MPI implementation
226
used. For the Argonne MPICH implementation using the p4 device (for a
227
cluster of individual systems interconnected using TCP/IP), create a
228
file that contains the hostnames of the two systems you want to
229
include in the test, with one hostname on each line of the file
230
(assume the file is named "machines.p4"). Then, use the command
233
mpirun \-machinefile machines.p4 \-np 2 NPmpi \-o output_filename \-P
236
to start the test. MPICH will start an NPmpi process on each of the
237
two selected machines and the test will begin.
238
.SH TESTING METHODOLOGY
241
tests network performance by sending a number of messages at each
242
block size, starting from the lower bound on message size.
244
increments the message size until the upper bound on message size is
245
reached or the time to transmit a block exceeds one second, which ever
249
\'s output file may be graphed with a program such as
251
to view the results of the test.
254
output file contains five columns: time to transfer the block, bits
255
per second, bits in block, bytes in block, and variance. These
256
columns may be graphed to represent and compare the network's
257
performance. For example, the
258
.B network signature graph
259
can be created by graphing time versus bits per second. Sample
261
commands for such a graph would be
268
plot "NetPIPE.out" using 1:2
272
.B throughput versus block size
273
graph can be created by graphing bytes versus bits per second.
276
commands for such a graph would be
283
plot "NetPIPE.out" using 4:2
289
.B \-A \ \fIalignment\fR
290
Align buffers to the given boundary. For example, a value of 4 would
291
align buffers to 4-byte (word) boundaries.
295
Specify asynchronous receive (a.k.a. preposted receive), if the
296
underlying protocol supports it.
299
.BI \-b \ \fIbuffer_size\fR
300
[TCP only] Set send and receive TCP buffer sizes.
303
.BI \-h \ \fIhostname\fR
304
[TCP transmitter only] Specify name of host to which to connect.
307
.BI \-i \ \fIincrement\fR
308
Specify increment step size (default is an exponentially increasing
312
.BI \-l \ \fIstart_msg_size\fR
313
Specify the starting message size. The test will start with messages
314
of this size and increment, either exponentially or with an increment
317
flag, until a block requires more than one second to transmit or the
318
ending message size specified by the
320
flag is reached, which ever occurs first.
323
.BI \-O \ \fIbuffer_offset\fR
324
Specify offset of buffers from alignment. For example, specifying an
325
alignment of 4 (with \-A) and an offset of 1 would align buffers to
326
the first byte after a word boundary.
329
.BI \-o \ \fIoutput_filename\fR
330
Specify output filename. By default, the output filename is
335
Print results on screen during execution of the test. By default,
336
NetPIPE is silent during execution of the test.
339
.BI \-p \ \fIport_number\fR
340
[TCP only] Specify TCP port number to which to connect (for the
341
transmitter) or the port on which to listen for connections (for the
346
[TCP only] This process is a TCP receiver.
350
Set streaming mode: data is only transmitted in one direction. By
351
default, the transmitter measures the time taken as each data block is
352
sent from the transmitter to the receiver and back, then divides the
353
round-trip time by two to obtain the time taken by the message to
354
travel in each direction. In streaming mode, the receiver measures
355
the time required to receive the message and sends the measured time
356
back to the transmitter for posting to the output file.
360
[TCP only] This process is a TCP transmitter.
363
.BI \-u \ \fIending_msg_size\fR
364
Specify the ending message size. By default, the test will end when
365
the time to transmit a block exceeds one second. If
367
is specified, the test will end when either the test time exceeds one
368
second or the ending message size is reached, which ever occurs first.
374
Default output file for
382
Quinn Snell <snell@cs.byu.edu>, Guy Helmer <ghelmer@scl.ameslab.gov>,
385
Clark Dorman <dorman@s3i.com> contributed the PVM interface.
389
can be found on the World Wide Web at
390
http://www.scl.ameslab.gov/netpipe/.
395
will use as much of the network bandwidth as possible. Other users of
396
the network may notice the effect.