Sockets-MX Overview and Performance
Sockets-MX is a new middleware layer which mimics sockets semantics and replaces the traditional Ethernet protocol to allow for low latency, high speed data transfers. It overcomes current TCP/IP limitations which involve high system load. Sockets-MX bypasses the TCP/IP protocol stack which takes up to 50% of the time spent in communication.
It can be applied to existing, linked applicationns in binary format. In popular benchmarks it is quite common to gain an order of magnitude in performance.Sockets-MX achieves binary compatibility for existing applications through
different interception techniques.
These interception techniques are dependent on the operating system.
Currently, Sockets-MX is available for Linux 2.4 and 2.6 versions as well as
Windows Operating systems.
Besides standard TCP/IP, application can switch to Sockets-MX. Sockets-MX is entirely based on MX, bypassing any protocol stack. The result is lowest latency combined with superior connection setup time performance between sockets.
When using Sockets-MX under Linux, applications use a new AF_MYRI protocol family.
Until a couple of years ago, kernel traps increased the latency significantly.
Modern systems and recent Linux versions have lowered this overhead
to be much less than 1usec.
Sockets-MX for Windows install itself as a SPI which bypasses the traditional
network stack.
Sockets-MX is implemented to mimic the given socket interfaces. This allows
for high efficiency and optimization techniques can be applied.
For this, Sockets-MX offers two different communication concepts. It allows for buffered communication in which one copy of the data is copied into pre-registered buffers or a zero-copy protocol where data is exchanged directly from application to application buffers using Myrinet RDMA functions. The latter is known for cutting down system load. As a matter of fact, performance results show near wire speed by using less than 4% CPU load.
Another advantage of Sockets-MX is that it can be tuned for specific applications. That is, threshold values can be set dynamically which will specify when the zero-copy protocol should be used. For latency sensitive applications, they will benefit from Sockets-MX with immediate completions. The actual message delivery is then handled by the Myrinet NIC.
In comparison with other TCP/IP implementations, Sockets-MX allows for higher throughput requiring less CPU load. If an application runs under Sockets-MX, then it can also communicate to applications which are not connected via Myrinet. In this case, the conventional TCP/IP over Ethernet protocol will be used.