1fi_sockets(7)                  Libfabric v1.15.1                 fi_sockets(7)
2
3
4

NAME

6       fi_sockets - The Sockets Fabric Provider
7

OVERVIEW

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

SUPPORTED FEATURES

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

LIMITATIONS

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

RUNTIME PARAMETERS

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

LARGE SCALE JOBS

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

SEE ALSO

121       fabric(7), fi_provider(7), fi_getinfo(3)
122

AUTHORS

124       OpenFabrics.
125
126
127
128Libfabric Programmer’s Manual     2021-03-22                     fi_sockets(7)
Impressum