1fi_pingpong(1)                 Libfabric v1.18.1                fi_pingpong(1)
2
3
4

NAME

6       fi_pingpong - Quick and simple pingpong test for libfabric
7

SYNOPSIS

9               fi_pingpong [OPTIONS]                      start server
10               fi_pingpong [OPTIONS] <server address>     connect to server
11

DESCRIPTION

13       fi_pingpong  is  a  pingpong test for the core feature of the libfabric
14       library: transmitting data between  two  processes.   fi_pingpong  also
15       displays aggregated statistics after each test run, and can additional‐
16       ly verify data integrity upon receipt.
17
18       By default, the datagram (FI_EP_DGRAM) endpoint is used for  the  test,
19       unless otherwise specified via -e.
20

HOW TO RUN TESTS

22       Two  copies  of  the  program must be launched: first, one copy must be
23       launched as the server.  Second, another copy is launched with the  ad‐
24       dress of the server.
25
26       As a client-server test, each have the following usage model:
27
28   Start the server
29              server$ fi_pingpong
30
31   Start the client
32              client$ fi_pingpong <server address>
33

OPTIONS

35       The  server  and  client  must  be able to communicate properly for the
36       fi_pingpong utility to function.  If any of the -e, -I, -S, or  -p  op‐
37       tions  are used, then they must be specified on the invocation for both
38       the server and the client process.  If the -d option  is  specified  on
39       the  server,  then  the client will select the appropriate domain if no
40       hint is provided on the client side.  If the -d option is specified  on
41       the  client, then it must also be specified on the server.  If both the
42       server and client specify the -d option and the  given  domains  cannot
43       communicate, then the application will fail.
44
45   Control Messaging
46       -B <src_port>
47              The  non-default  source  port number of the control socket.  If
48              this is not provided then the server will bind to port 47592  by
49              default  and the client will allow the port to be selected auto‐
50              matically.
51
52       -P <dest_port>
53              The non-default destination port number of the  control  socket.
54              If this is not provided then the client will connect to 47592 by
55              default.  The server ignores this option.
56
57   Fabric Filtering
58       -p <provider_name>
59              The name of the underlying fabric provider (e.g., sockets,  psm,
60              usnic, etc.).  If a provider is not specified via the -p switch,
61              the test will pick one from the list of available providers  (as
62              returned by fi_getinfo(3)).
63
64       -e <endpoint>
65              The  type  of endpoint to be used for data messaging between the
66              two processes.  Supported values are dgram, rdm, and  msg.   For
67              more information on endpoint types, see fi_endpoint(3).
68
69       -d <domain>
70              The name of the specific domain to be used.
71
72   Test Options
73       -I <iter>
74              The number of iterations of the test will run.
75
76       -S <msg_size>
77              The  specific  size of the message in bytes the test will use or
78              `all' to run all the default sizes.
79
80       -c     Activate data integrity checks at the receiver (note: this  will
81              degrade performance).
82
83   Utility
84       -v     Activate output debugging (warning: highly verbose)
85
86       -h     Displays help output for the pingpong test.
87

USAGE EXAMPLES

89   A simple example
90   Server: fi_pingpong -p <provider_name>
91       server$ fi_pingpong -p sockets
92
93   Client: fi_pingpong -p <provider_name> <server_addr>
94       client$ fi_pingpong -p sockets 192.168.0.123
95
96   An example with various options
97   Server:
98       server$ fi_pingpong -p usnic -I 1000 -S 1024
99
100   Client:
101       client$ fi_pingpong -p usnic -I 1000 -S 1024 192.168.0.123
102
103       Specifically, this will run a pingpong test with:
104
105       • usNIC provider
106
107       • 1000 iterations
108
109       • 1024 bytes message size
110
111       • server node as 192.168.0.123
112
113   A longer test
114   Server:
115       server$ fi_pingpong -p usnic -I 10000 -S all
116
117   Client:
118       client$ fi_pingpong -p usnic -I 10000 -S all 192.168.0.123
119

DEFAULTS

121       There is no default provider; if a provider is not specified via the -p
122       switch, the test will pick one from the list of available providers (as
123       returned by fi_getinfo(3)).
124
125       If no endpoint type is specified, `dgram' is used.
126
127       The  default tested sizes are: 64, 256, 1024, 4096, 65536, and 1048576.
128       The test will only test sizes that are within  the  selected  endpoints
129       maximum message size boundary.
130

OUTPUT

132       Each test generates data messages which are accounted for.  Specifical‐
133       ly, the displayed statistics at the end are :
134
135bytes : number of bytes per message sent
136
137#sent : number of messages (ping) sent from the client to the server
138
139#ack : number of replies (pong) of the server received by the client
140
141total : amount of memory exchanged between the processes
142
143time : duration of this single test
144
145MB/sec : throughput computed from total and time
146
147usec/xfer : average time for transferring a message outbound (ping or
148         pong) in microseconds
149
150Mxfers/sec : average amount of transfers of message outbound per sec‐
151         ond
152

SEE ALSO

154       fi_getinfo(3), fi_endpoint(3) fabric(7),
155

AUTHORS

157       OpenFabrics.
158
159
160
161Libfabric Programmer’s Manual     2022-12-09                    fi_pingpong(1)
Impressum