Trading at light speed: designing low latency systems in C++ - David Gross - Meeting C++ 2022
Slides: https://slides.meetingcpp.com
Survey: https://survey.meetingcpp.com
Making a trading system "fast" cannot be an afterthought. While low latency programming is sometimes seen under the umbrella of "code optimization", the truth is that most of the work needed to achieve such latency is done upfront, at the design phase. How to translate our knowledge about the CPU and hardware into C++? How to use multiple CPU cores, handle concurrency issues and cost, and stay fast?
In this talk, David Gross, Auto-Trading Tech Lead at global trading firm Optiver will share industry insights on how to design from scratch a low latency trading system.
0:00 Introduction
0:11 AUTOMATED TRADING A HIGH STAKES GAME
1:40 AUTOMATED TRADING: THE NEED FOR SPEED
4:34 DESIGN FOR PERFORMANCE
5:48 STRATEGY & TACTICS
7:42 HOW FAST IS FAST?
15:24 AN UNDERWHELMING PROFILING RESULT
16:34 DATA MODEL FOR PERFORMANCE
19:06 DATA MODEL: INSTRUMENT STORE
22:23 STABLE VECTOR
24:46 WSS ESTIMATION
27:55 CONCURRENT DATA IN TRADING SYSTEMS
29:21 HOW MUCH DATA?
35:06 SEQLOCK PROPERTIES
37:33 CONCURRENT DATA: EVENTS
38:37 SPMC QUEUE V2
47:00 IS YOUR SYSTEM TUNED CORRECTLY?
48:28 C-STATE, P-STATE
50:36 SHARED LLC OPTIMIZATION
53:53 METRICS
57:59 CONCLUSION