rspreload

by syoyo

rspreload is a DLL replacement for socket() functions  taking a leverage of RDMA transport layer without any application modification.

rspreload is built on top of rsockets feature. See details here for rsockets:

https://www.openfabrics.org/ofa-documents/presentations/doc_download/495-rsockets.html

Recent advances of rspreload/rsocket finalIy enables  accelerating existing TCP/IP socket application such like iperf.

(At least it iperf with rspreload didn’t work a years ago).

$ LD_PRELOAD=/usr/local/lib/rsocket/librspreload.so iperf -c 172.24.0.8

————————————————————
Client connecting to 172.24.0.8, TCP port 5001
TCP window size: 128 KByte (default)
————————————————————
[ 3] local 172.24.0.16 port 51626 connected with 172.24.0.8 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 22.9 GBytes 19.7 Gbits/sec

It can achieve 19.7 Gbits/s in my IB QDR configuration.

This is 2/3 of theoretical peak 32 Gbits/s!  Simply super.

More details here:

https://github.com/syoyo/node.rdma/blob/master/measures/rsocket_preload_performance.txt

Advertisements