FPGA Accelerated Tick-to-Trade Latency

Wire to wire latency measurement. Tapped both directions using an Arista Metaconnect Layer 1 switch and sent to an Endace capture card for timestamping. Latency measured as start of market data packet to start of order packet. Measured is a Fill and Kill order responding to mdp3 packet contents of the same instrument as the order being sent. The order is sent when the calculated signal crosses threshold. 5 instruments are being traded against the test exchange on 3 separate connections. These relevant market segment orders are each triggered by 3 separate mdp3 market data channels. All orders accelerated by a Xilinx Kintex Ultrascale Plus KU5P FPGA.

The upper chart of the image at right is a frequency histogram of the wire-to-wire latency including all 45,606 orders sent to and accepted by the test exchange in the trial.

The lower chart shows the latency scaling linearly with incoming market data packet size as the entire packet is analysed before sending any possible order.

Pure Software Tick-to-Trade Latency

The same wire-to-wire latency measurement using a pure software solution - no FPGA accelerator. NIC employed is an Exablaze X10 using the Angelia Systems user-level TCP/IP stack on a Dell R720 server (Xeon(R) CPU E5-2637 v2 @ 3.50GHz). Latency measured tapped at an L1 switch and recorded by an Endace card as above. Note the differing scales.

The measurements of the pure software solution give an indication of how far you can go without resorting to an FPGA. Note that in order to keep CPU caches hot we have limited the configuration to trade just 1 instrument using 1 market data channel and 1 msgw connection. When employing the Minyma Accelerator this limitation vanishes. The second thing to note is that it is possible to trade a proof of concept strategy using a pure software solution and get comfortable. Then when lower latency is desired simply port the trade signal code to HLS C++ load it on the accelerator and switch it on.

All numbers above have been measured trading against the Certification CME test exchange over a period of 2 or more days. The strategy employed is the simplest one we could think of that requires a decision based on the contents of each mdp3 packet of the same instrument as is being traded.

Every single thing that goes unmeasured hurts.