1fi_pingpong(1) Libfabric v1.12.0rc1 fi_pingpong(1)
2
3
4
6 fi_pingpong - Quick and simple pingpong test for libfabric
7
9 fi_pingpong [OPTIONS] start server
10 fi_pingpong [OPTIONS] <server address> connect to server
11
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
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
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
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
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
132 Each test generates data messages which are accounted for. Specifical‐
133 ly, the displayed statistics at the end are :
134
135 · bytes : 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
141 · total : amount of memory exchanged between the processes
142
143 · time : duration of this single test
144
145 · MB/sec : throughput computed from total and time
146
147 · usec/xfer : average time for transferring a message outbound (ping or
148 pong) in microseconds
149
150 · Mxfers/sec : average amount of transfers of message outbound per sec‐
151 ond
152
154 fi_getinfo(3), fi_endpoint(3) fabric(7),
155
157 OpenFabrics.
158
159
160
161Libfabric Programmer's Manual 2018-10-05 fi_pingpong(1)