bionic (7) fi_sockets.7.gz

Provided by: libfabric1_1.5.3-1_amd64 bug

NAME

       fi_sockets - The Sockets Fabric Provider

OVERVIEW

       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.

SUPPORTED FEATURES

       The sockets provider supports all the features defined for the libfabric API.  Key features include:

       Endpoint types : The provider supports all endpoint types: FI_EP_MSG, FI_EP_RDM, and FI_EP_DGRAM.

       Endpoint  capabilities  :  The  following  data transfer interface is supported for a all endpoint types:
       fi_msg.  Additionally, these interfaces are supported for reliable endpoints (FI_EP_MSG  and  FI_EP_RDM):
       fi_tagged, fi_atomic, and fi_rma.

       Modes : The sockets provider supports all operational modes including FI_CONTEXT and FI_MSG_PREFIX.

       Progress  : Sockets provider supports both FI_PROGRESS_AUTO and FI_PROGRESS_MANUAL, 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.

LIMITATIONS

       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.

       Does not support FI_ADDR_STR address format.

RUNTIME PARAMETERS

       The sockets provider checks for the following environment variables -

       FI_SOCKETS_PE_WAITTIME : An integer value that specifies how many milliseconds to spin while waiting  for
       progress in FI_PROGRESS_AUTO mode.

       FI_SOCKETS_MAX_CONN_RETRY  :  An  integer  value  that  specifies the number of socket connection retries
       before reporting as failure.

       FI_SOCKETS_DEF_CONN_MAP_SZ : An integer to specify the default connection map size.

       FI_SOCKETS_DEF_AV_SZ : An integer to specify the default address vector size.

       FI_SOCKETS_DEF_CQ_SZ : An integer to specify the default completion queue size.

       FI_SOCKETS_DEF_EQ_SZ : An integer to specify the default event queue size.

       FI_SOCKETS_DGRAM_DROP_RATE : An integer value to specify the drop rate of dgram frame  when  endpoint  is
       FI_EP_DGRAM.  This is for debugging purpose only.

       FI_SOCKETS_PE_AFFINITY  :  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]][,].

LARGE SCALE JOBS

       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 requriment of  the
       particular  benchmark.   The  recommended  parameters for large scale runs are FI_SOCKETS_MAX_CONN_RETRY,
       FI_SOCKETS_DEF_CONN_MAP_SZ, FI_SOCKETS_DEF_AV_SZ, FI_SOCKETS_DEF_CQ_SZ, FI_SOCKETS_DEF_EQ_SZ.

SEE ALSO

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

AUTHORS

       OpenFabrics.