All applications that use generic BSD sockets for communication will be accelerated by SuperSockets. No configuration change is required for the application as the same host names/IP v4 addresses can be used.
All relevant socket types are supported by SuperSockets: TCP stream sockets as well as UDP and RDS datagram sockets. Please check the release note for more details.
SuperSockets will use the PCI Express interconnect for low-latency, high-bandwidth communication inside the cluster, and will transparently fall back to Ethernet when connecting to Cluster Nodes outside the cluster, or if a PCI Express connection inside the cluster should become unavailable.
To make an application use SuperSockets, you need to preload the dynamic library libksupersockets.so
on application start. This can be achieved by two means as described in the next two sections.
To let generic socket applications use SuperSockets, you just need to run them via the wrapper script dis_ssocks_run
which sets the LD_PRELOAD
environment variable. This script is installed to the bin
directory of the installation (default is /opt/DIS/bin
) which is added to the default PATH
environment variable.
To have i.e. the socket benchmark netperf run via SuperSockets, start the server process on Cluster Node server_name like
dis_ssocks_run netperf
and the client process on any other Cluster Node in the cluster like
dis_ssocks_run netperf -h server_name
As an alternative to using this wrapper script, you can also make sure to set LD_PRELOAD
correctly to preload the SuperSockets library, i.e. for sh-style shells such as bash:
export LD_PRELOAD=libksupersockets.so
Do not set LD_PRELOAD
to libksupersockets.so
globally for a user or even the whole system. This can be a waste of resources, as SuperSockets require additional memory and interconnect resources for each socket. Instead, the preferred way to use SuperSockets is to prepend the dis_ssocks_run command to the invocation of just these processes / applications which are to benefit from SuperSockets.