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

NAME

6       fi_sockets - The Sockets Fabric Provider
7

OVERVIEW

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

SUPPORTED FEATURES

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

LIMITATIONS

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

RUNTIME PARAMETERS

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

LARGE SCALE JOBS

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

SEE ALSO

117       fabric(7), fi_provider(7), fi_getinfo(3)
118

AUTHORS

120       OpenFabrics.
121
122
123
124Libfabric Programmer's Manual     2018-10-05                     fi_sockets(7)
Impressum