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