.\" Automatically generated by Pandoc 1.19.2.4
.\"
.TH "fi_sockets" "7" "2019\-05\-30" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.hy
.SH NAME
.PP
fi_sockets \- The Sockets Fabric Provider
.SH OVERVIEW
.PP
The sockets provider is being deprecated in favor of the tcp, udp, and
utility providers.
Further work on the sockets provider will be minimal.
Most applications should instead use the tcp provider instead.
.PP
The sockets provider is a general purpose provider that can be used on
any system that supports TCP sockets.
The provider is not intended to provide performance improvements over
regular TCP sockets, but rather to allow developers to write, test, and
debug application code even on platforms that do not have
high\-performance fabric hardware.
The sockets provider supports all libfabric provider requirements and
interfaces.
.SH SUPPORTED FEATURES
.PP
The sockets provider supports all the features defined for the libfabric
API.
Key features include:
.TP
.B \f[I]Endpoint types\f[]
The provider supports all endpoint types: \f[I]FI_EP_MSG\f[],
\f[I]FI_EP_RDM\f[], and \f[I]FI_EP_DGRAM\f[].
.RS
.RE
.TP
.B \f[I]Endpoint capabilities\f[]
The following data transfer interface is supported for a all endpoint
types: \f[I]fi_msg\f[].
Additionally, these interfaces are supported for reliable endpoints
(\f[I]FI_EP_MSG\f[] and \f[I]FI_EP_RDM\f[]): \f[I]fi_tagged\f[],
\f[I]fi_atomic\f[], and \f[I]fi_rma\f[].
.RS
.RE
.TP
.B \f[I]Modes\f[]
The sockets provider supports all operational modes including
\f[I]FI_CONTEXT\f[] and \f[I]FI_MSG_PREFIX\f[].
.RS
.RE
.TP
.B \f[I]Progress\f[]
Sockets provider supports both \f[I]FI_PROGRESS_AUTO\f[] and
\f[I]FI_PROGRESS_MANUAL\f[], with a default set to auto.
When progress is set to auto, a background thread runs to ensure that
progress is made for asynchronous requests.
.RS
.RE
.SH LIMITATIONS
.PP
Sockets provider attempts to emulate the entire API set, including all
defined options.
In order to support development on a wide range of systems, it is
implemented over TCP sockets.
As a result, the performance numbers are lower compared to other
providers implemented over high\-speed fabric, and lower than what an
application might see implementing to sockets directly.
.PP
Does not support FI_ADDR_STR address format.
.SH RUNTIME PARAMETERS
.PP
The sockets provider checks for the following environment variables \-
.TP
.B \f[I]FI_SOCKETS_PE_WAITTIME\f[]
An integer value that specifies how many milliseconds to spin while
waiting for progress in \f[I]FI_PROGRESS_AUTO\f[] mode.
.RS
.RE
.TP
.B \f[I]FI_SOCKETS_CONN_TIMEOUT\f[]
An integer value that specifies how many milliseconds to wait for one
connection establishment.
.RS
.RE
.TP
.B \f[I]FI_SOCKETS_MAX_CONN_RETRY\f[]
An integer value that specifies the number of socket connection retries
before reporting as failure.
.RS
.RE
.TP
.B \f[I]FI_SOCKETS_DEF_CONN_MAP_SZ\f[]
An integer to specify the default connection map size.
.RS
.RE
.TP
.B \f[I]FI_SOCKETS_DEF_AV_SZ\f[]
An integer to specify the default address vector size.
.RS
.RE
.TP
.B \f[I]FI_SOCKETS_DEF_CQ_SZ\f[]
An integer to specify the default completion queue size.
.RS
.RE
.TP
.B \f[I]FI_SOCKETS_DEF_EQ_SZ\f[]
An integer to specify the default event queue size.
.RS
.RE
.TP
.B \f[I]FI_SOCKETS_DGRAM_DROP_RATE\f[]
An integer value to specify the drop rate of dgram frame when endpoint
is \f[I]FI_EP_DGRAM\f[].
This is for debugging purpose only.
.RS
.RE
.TP
.B \f[I]FI_SOCKETS_PE_AFFINITY\f[]
If specified, progress thread is bound to the indicated range(s) of
Linux virtual processor ID(s).
This option is currently not supported on OS X.
The usage is \- id_start[\-id_end[:stride]][,].
.RS
.RE
.TP
.B \f[I]FI_SOCKETS_KEEPALIVE_ENABLE\f[]
A boolean to enable the keepalive support.
.RS
.RE
.TP
.B \f[I]FI_SOCKETS_KEEPALIVE_TIME\f[]
An integer to specify the idle time in seconds before sending the first
keepalive probe.
Only relevant if \f[I]FI_SOCKETS_KEEPALIVE_ENABLE\f[] is enabled.
.RS
.RE
.TP
.B \f[I]FI_SOCKETS_KEEPALIVE_INTVL\f[]
An integer to specify the time in seconds between individual keepalive
probes.
Only relevant if \f[I]FI_SOCKETS_KEEPALIVE_ENABLE\f[] is enabled.
.RS
.RE
.TP
.B \f[I]FI_SOCKETS_KEEPALIVE_PROBES\f[]
An integer to specify the maximum number of keepalive probes sent before
dropping the connection.
Only relevant if \f[I]FI_SOCKETS_KEEPALIVE_ENABLE\f[] is enabled.
.RS
.RE
.TP
.B \f[I]FI_SOCKETS_IFACE\f[]
The prefix or the name of the network interface (default: any)
.RS
.RE
.SH LARGE SCALE JOBS
.PP
For large scale runs one can use these environment variables to set the
default parameters e.g.
size of the address vector(AV), completion queue (CQ), connection map
etc.
that satisfies the requirement of the particular benchmark.
The recommended parameters for large scale runs are
\f[I]FI_SOCKETS_MAX_CONN_RETRY\f[], \f[I]FI_SOCKETS_DEF_CONN_MAP_SZ\f[],
\f[I]FI_SOCKETS_DEF_AV_SZ\f[], \f[I]FI_SOCKETS_DEF_CQ_SZ\f[],
\f[I]FI_SOCKETS_DEF_EQ_SZ\f[].
.SH SEE ALSO
.PP
\f[C]fabric\f[](7), \f[C]fi_provider\f[](7), \f[C]fi_getinfo\f[](3)
.SH AUTHORS
OpenFabrics.