←back to thread

837 points turrini | 1 comments | | HN request time: 0.695s | source
Show context
bob1029 ◴[] No.43972132[source]
We've been able to run order matching engines for entire exchanges on a single thread for over a decade by this point.

I think this specific class of computational power - strictly serialized transaction processing - has not grown at the same rate as other metrics would suggest. Adding 31 additional cores doesn't make the order matching engine go any faster (it could only go slower).

If your product is handling fewer than several million transactions per second and you are finding yourself reaching for a cluster of machines, you need to back up like 15 steps and start over.

replies(3): >>43972195 #>>43972696 #>>43973292 #
bluGill ◴[] No.43972696[source]
You are only able to do that because you are doing simple processing on each transaction. If you had to do more complex processing on each transaction it wouldn't be possible to do that many. Though it is hard for me to imagine what more complex processing would be (I'm not in your domain)
replies(1): >>43973030 #
bob1029 ◴[] No.43973030[source]
The order matching engine is mostly about updating an in-memory order book representation.

It is rarely the case that high volume transaction processing facilities also need to deal with deeply complex transactions.

I can't think of many domains of business wherein each transaction is so compute intensive that waiting for I/O doesn't typically dominate.

replies(2): >>43973177 #>>43973294 #
bluGill ◴[] No.43973177[source]
HFT would love to do more complex calculations for some of their trades. They often make the compromise of using a faster algorithm that is known to be right only 60% of the time vs the better but slower algorithm that is right 90% of the time.

That is a different problem from yours though and so it has different considerations. In some areas I/O dominates, in some it does not.

replies(1): >>43973328 #
1. queuebert ◴[] No.43973328[source]
In a perfect world, maximizing (EV/op) x (ops/sec) should be done for even user software. How many person-years of productivity are lost each year to people waiting for Windows or Office to start up, finish updating, etc?