ZeroMQ provides several transport protocols: inproc, IPC, TCP, TIPC and multicast. For connecting two processes in the same server it is considered that IPC is the fastest option, thanks to the usage of Unix Domain Sockets, thus achieving very low latency.
Next graph shows ZeroMQ latencies using TCP and IPC, latencies are 16 microseconds and 13 microseconds respectively. The test ran on a Intel-based high-performance server (CenOS 6.5, 32GB DDR3 1600MHz, and Intel(R) Xeon(R) CPU E5-2643 0 @ 3.30GHz).
However, there is an alternative to reduce ZeroMQ latency, Speedus, Torusware product for accelerating communications in a non-intrusive way. No change is required neither in the application code nor in the OS. So far Linux and Solaris are supported, and we are working to expand this range, Here Speedus achieves a performance that starts at 5 microseconds.
This latency reduction is also applicable to jeroMQ, jZeroMQ, etc… and any other application looking for low-latency data transfers and higher throughput.
Speedus is a high-performance socket library which is able to exchange data significantly faster (up to 20 times faster! 95% latency reduction) than using standard sockets, while being binary compatible with standard sockets.
The usage of Speedus is very intuitive, you need to copy the library in your servers (following the documentation). Then, accelerating any application is pretty straightforward, here you have what we did for ZeroMQ latency test:
$ speedus ./local_lat tcp://127.0.0.1:5555 1 100000 &
$ speedus ./remote_lat tcp://127.0.0.1:5555 1 100000
As you can see, you do not need to change a single line of code of (nor recompile) your application , quite interesting in case of third party applications where you can not have access to the source code, or for legacy applications, quite painful to recompile in case of any updates in the code.
Torusware aims to be the world leader in optimization & acceleration software for communications on premises and cloud applications in a completely non-intrusive way (no changes in software / hardware are required).