Wednesday, 10 March 2021, 7:00pm - 8:00pm
High-Frequency Trading (HFT) and low-latency trading are a major preserve of C++. The fact that it is amenable to extensive optimisation, including micro-optimisations, has made C++ highly effective. Moreover C++ can be very low-level to these micro-optimisations can make use of the specific machine architecture. Also the impact the O/S upon such performance-critical systems will be investigated.
This updated talk has results from some of the latest versions of G++ and Clang on Gentoo!
This talk shall investigate the use of micro-optimisations, initially via the generated assembly from versions of g++, clang and icc, then the performance of the micro-benchmarks will be investigated. These micro-optimisations will be brought together into a simple yet extremely fast FIX-to-MIT/BIT trading system for which various factors that could affect the performance shall be presented. Initially the impact of the compiler shall be analysed then the effect of the O/S upon the performance of this trading system (with surprising and hopefully informative results!), followed by the effect of changing hardware. Finally the impact of the mitigations for Spectre and Meltdown shall be investigated with respect to various O/Ses – which may appear to contradict the currently-propounded beliefs of some major organisations.
The conclusion shall extract considerations that I consider key to the development of highly micro-optimised software.
Jason is a programmer in C++ on Linux. His many, many years’ experience spans: initially a nuclear physicist then programming prototype super-computers, then finance; focussing on low-latency and HFT software, their architectures and the issues arising from them. He is also actively involved with the ISO/UK C++ Panel to maintain his skill-set. Occasionally I am invited to give talks on data parallelism or HFT in finance.
Download: Slide Deck (6MB)
Free for members and non-membersLast updated 10th March, 2021 at 7:34pm