1fi_sockets(7) Libfabric v1.6.1 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 : The provider supports all endpoint types: FI_EP_MSG,
22 FI_EP_RDM, and FI_EP_DGRAM.
23
24 Endpoint capabilities : The following data transfer interface is sup‐
25 ported for a all endpoint types: fi_msg. Additionally, these inter‐
26 faces are supported for reliable endpoints (FI_EP_MSG and FI_EP_RDM):
27 fi_tagged, fi_atomic, and fi_rma.
28
29 Modes : The sockets provider supports all operational modes including
30 FI_CONTEXT and FI_MSG_PREFIX.
31
32 Progress : Sockets provider supports both FI_PROGRESS_AUTO and
33 FI_PROGRESS_MANUAL, with a default set to auto. When progress is set
34 to auto, a background thread runs to ensure that progress is made for
35 asynchronous requests.
36
38 Sockets provider attempts to emulate the entire API set, including all
39 defined options. In order to support development on a wide range of
40 systems, it is implemented over TCP sockets. As a result, the perfor‐
41 mance numbers are lower compared to other providers implemented over
42 high-speed fabric, and lower than what an application might see imple‐
43 menting to sockets directly.
44
45 Does not support FI_ADDR_STR address format.
46
48 The sockets provider checks for the following environment variables -
49
50 FI_SOCKETS_PE_WAITTIME : An integer value that specifies how many mil‐
51 liseconds to spin while waiting for progress in FI_PROGRESS_AUTO mode.
52
53 FI_SOCKETS_MAX_CONN_RETRY : An integer value that specifies the number
54 of socket connection retries before reporting as failure.
55
56 FI_SOCKETS_DEF_CONN_MAP_SZ : An integer to specify the default connec‐
57 tion map size.
58
59 FI_SOCKETS_DEF_AV_SZ : An integer to specify the default address vector
60 size.
61
62 FI_SOCKETS_DEF_CQ_SZ : An integer to specify the default completion
63 queue size.
64
65 FI_SOCKETS_DEF_EQ_SZ : An integer to specify the default event queue
66 size.
67
68 FI_SOCKETS_DGRAM_DROP_RATE : An integer value to specify the drop rate
69 of dgram frame when endpoint is FI_EP_DGRAM. This is for debugging
70 purpose only.
71
72 FI_SOCKETS_PE_AFFINITY : If specified, progress thread is bound to the
73 indicated range(s) of Linux virtual processor ID(s). This option is
74 currently not supported on OS X. The usage is -
75 id_start[-id_end[:stride]][,].
76
77 FI_SOCKETS_KEEPALIVE_ENABLE : A boolean to enable the keepalive sup‐
78 port.
79
80 FI_SOCKETS_KEEPALIVE_TIME : An integer to specify the idle time in sec‐
81 onds before sending the first keepalive probe. Only relevant if
82 FI_SOCKETS_KEEPALIVE_ENABLE is enabled.
83
84 FI_SOCKETS_KEEPALIVE_INTVL : An integer to specify the time in seconds
85 between individual keepalive probes. Only relevant if FI_SOCK‐
86 ETS_KEEPALIVE_ENABLE is enabled.
87
88 FI_SOCKETS_KEEPALIVE_PROBES : An integer to specify the maximum number
89 of keepalive probes sent before dropping the connection. Only relevant
90 if FI_SOCKETS_KEEPALIVE_ENABLE is enabled.
91
93 For large scale runs one can use these environment variables to set the
94 default parameters e.g. size of the address vector(AV), completion
95 queue (CQ), connection map etc. that satisfies the requirement of the
96 particular benchmark. The recommended parameters for large scale runs
97 are FI_SOCKETS_MAX_CONN_RETRY, FI_SOCKETS_DEF_CONN_MAP_SZ, FI_SOCK‐
98 ETS_DEF_AV_SZ, FI_SOCKETS_DEF_CQ_SZ, FI_SOCKETS_DEF_EQ_SZ.
99
101 fabric(7), fi_provider(7), fi_getinfo(3)
102
104 OpenFabrics.
105
106
107
108Libfabric Programmer's Manual 2017-12-01 fi_sockets(7)