1fi_sockets(7)                  Libfabric v1.6.1                  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 : 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

LIMITATIONS

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

RUNTIME PARAMETERS

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

LARGE SCALE JOBS

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

SEE ALSO

101       fabric(7), fi_provider(7), fi_getinfo(3)
102

AUTHORS

104       OpenFabrics.
105
106
107
108Libfabric Programmer's Manual     2017-12-01                     fi_sockets(7)
Impressum