1fi_sockets(7) Libfabric v1.7.0 fi_sockets(7)
2
3
4
6 fi_sockets - The Sockets Fabric Provider
7
9 The sockets provider is a general purpose provider that can be used on
10 any system that supports TCP sockets. The provider is not intended to
11 provide performance improvements over regular TCP sockets, but rather
12 to allow developers to write, test, and debug application code even on
13 platforms that do not have high-performance fabric hardware. The sock‐
14 ets provider supports all libfabric provider requirements and inter‐
15 faces.
16
18 The sockets provider supports all the features defined for the libfab‐
19 ric API. Key features include:
20
21 Endpoint types
22 The provider supports all endpoint types: FI_EP_MSG, FI_EP_RDM,
23 and FI_EP_DGRAM.
24
25 Endpoint capabilities
26 The following data transfer interface is supported for a all
27 endpoint types: fi_msg. Additionally, these interfaces are sup‐
28 ported for reliable endpoints (FI_EP_MSG and FI_EP_RDM):
29 fi_tagged, fi_atomic, and fi_rma.
30
31 Modes The sockets provider supports all operational modes including
32 FI_CONTEXT and FI_MSG_PREFIX.
33
34 Progress
35 Sockets provider supports both FI_PROGRESS_AUTO and
36 FI_PROGRESS_MANUAL, with a default set to auto. When progress
37 is set to auto, a background thread runs to ensure that progress
38 is made for asynchronous requests.
39
41 Sockets provider attempts to emulate the entire API set, including all
42 defined options. In order to support development on a wide range of
43 systems, it is implemented over TCP sockets. As a result, the perfor‐
44 mance numbers are lower compared to other providers implemented over
45 high-speed fabric, and lower than what an application might see imple‐
46 menting to sockets directly.
47
48 Does not support FI_ADDR_STR address format.
49
51 The sockets provider checks for the following environment variables -
52
53 FI_SOCKETS_PE_WAITTIME
54 An integer value that specifies how many milliseconds to spin
55 while waiting for progress in FI_PROGRESS_AUTO mode.
56
57 FI_SOCKETS_CONN_TIMEOUT
58 An integer value that specifies how many milliseconds to wait
59 for one connection establishment.
60
61 FI_SOCKETS_MAX_CONN_RETRY
62 An integer value that specifies the number of socket connection
63 retries before reporting as failure.
64
65 FI_SOCKETS_DEF_CONN_MAP_SZ
66 An integer to specify the default connection map size.
67
68 FI_SOCKETS_DEF_AV_SZ
69 An integer to specify the default address vector size.
70
71 FI_SOCKETS_DEF_CQ_SZ
72 An integer to specify the default completion queue size.
73
74 FI_SOCKETS_DEF_EQ_SZ
75 An integer to specify the default event queue size.
76
77 FI_SOCKETS_DGRAM_DROP_RATE
78 An integer value to specify the drop rate of dgram frame when
79 endpoint is FI_EP_DGRAM. This is for debugging purpose only.
80
81 FI_SOCKETS_PE_AFFINITY
82 If specified, progress thread is bound to the indicated range(s)
83 of Linux virtual processor ID(s). This option is currently not
84 supported on OS X. The usage is -
85 id_start[-id_end[:stride]][,].
86
87 FI_SOCKETS_KEEPALIVE_ENABLE
88 A boolean to enable the keepalive support.
89
90 FI_SOCKETS_KEEPALIVE_TIME
91 An integer to specify the idle time in seconds before sending
92 the first keepalive probe. Only relevant if FI_SOCK‐
93 ETS_KEEPALIVE_ENABLE is enabled.
94
95 FI_SOCKETS_KEEPALIVE_INTVL
96 An integer to specify the time in seconds between individual
97 keepalive probes. Only relevant if FI_SOCKETS_KEEPALIVE_ENABLE
98 is enabled.
99
100 FI_SOCKETS_KEEPALIVE_PROBES
101 An integer to specify the maximum number of keepalive probes
102 sent before dropping the connection. Only relevant if FI_SOCK‐
103 ETS_KEEPALIVE_ENABLE is enabled.
104
105 FI_SOCKETS_IFACE
106 The prefix or the name of the network interface (default: any)
107
109 For large scale runs one can use these environment variables to set the
110 default parameters e.g. size of the address vector(AV), completion
111 queue (CQ), connection map etc. that satisfies the requirement of the
112 particular benchmark. The recommended parameters for large scale runs
113 are FI_SOCKETS_MAX_CONN_RETRY, FI_SOCKETS_DEF_CONN_MAP_SZ, FI_SOCK‐
114 ETS_DEF_AV_SZ, FI_SOCKETS_DEF_CQ_SZ, FI_SOCKETS_DEF_EQ_SZ.
115
117 fabric(7), fi_provider(7), fi_getinfo(3)
118
120 OpenFabrics.
121
122
123
124Libfabric Programmer's Manual 2018-10-05 fi_sockets(7)