3 ms·
All HFTs I'm aware of have a continuum along developer_speed to execution_latency. On the developer_speed end we have things like Python (or Perl, Ruby, etc) ->
by emidln 6y ago
All HFTs I'm aware of have a continuum along developer_speed to execution_latency. On the developer_speed end we have things like Python (or Perl, Ruby, etc) -> Java/C# -> C++/C/assembly -> programmable nics/fpgas/gpus with access to the nic -> custom hardware. At each part of the path development gets much harder, dev times go up, talent gets harder to find, and the whole thing becomes much more expensive. The trick is use as little of the bottom as you can get away with and control it from as high level as you can.
It would surprise me more to find an HFT that doesn't use Java at some part of their execution lifecycle. Not everything needs to be in microseconds, nanoseconds, or picoseconds, especially if you can factor it out of the critical path and do the work/build some data structures ahead of time.
- MaxBarraclough 6y ago> programmable nics/fpgas/gpus with access to the nic -> custom hardware Are GPUs really any use here? Aren't they quite far from the NIC?
- liuliu 6y agoI am trying Swift in the hope of integrating developer speed while with not too terrible performance. Julia would be another interesting choice in this space. Of course, as you get to nanoseconds, any language choice is irrelevant.