2. Make Generic Linux Applications use SuperSockets

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.

2.1. Launch via wrapper script

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

2.2. Launch with LD_PRELOAD

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

Warning

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.