Speaker

Jason McGuiness

Jason McGuiness

Count-Zero Limited

Jason is a contract programmer in C++ on Linux. With over 15 years experience, including programming prototype super-computers, but mainly in finance, now focussing on low-latency and HFT software, their architectures and the issues arising from them. I am also actively involved with the UK C++ Panel and the ACCU to maintain my skill-set.

Area of Expertise

  • Finance & Banking
  • Information & Communications Technology

Topics

  • C++

Part I: Micro-Optimisation in C++: HFT and Beyond

High-Frequency Trading (HFT) and low-latency trading are becoming one of the few preserves of C++. The fact that it is amenable to extensive optimisation, including micro-optimisations, has made it highly effective, some of the major trading systems are hybrid FGPA/C++ solutions or native C++ solutions.

I shall provide an analysis of some micro-optimisation techniques that have been successfully used, but also an investigation of the pitfalls that may arise. For example: Performance anomalies lead to a discovery of quirks in generated assembler due to different compiler versions. Exactly what is static branch-prediction, and how is it (ab)used? Why is counting the number of set bits of the remotest interest? And the "curious case of the switch-statement" will be investigated.
Finally the performance of a fully-functional FIX-to-MIT/BIT format exchange link that uses all of these techniques will be examined.

Part II: Micro-Optimisation in C++: HFT and Beyond

High-Frequency Trading (HFT) and low-latency trading are becoming one of the few preserves of C++.
The fact that it is amenable to extensive optimisation, including micro-optimisations, has made it highly effective, some of the major trading systems are hybrid FGPA/C++ solutions or native C++ solutions.
I shall provide an analysis of some micro-optimisation techniques that have been successfully used, but also an investigation of the pitfalls that may arise. For example: Performance anomalies lead to a discovery of quirks in generated assembler due to different compiler versions. Exactly what is static branch-prediction, and how is it (ab)used? Why is counting the number of set bits of the remotest interest? And the "curious case of the switch-statement" will be investigated.
Finally the performance of a fully-functional FIX-to-MIT/BIT format exchange link that uses all of these techniques will be examined.

A Performance Analysis of a Trading System over Compliers and O/Ss and Spectre & Meltdown.

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 it highly effective. Also the impact of hardware and O/S upon such performance-critical systems are other major factors that C++ can build upon.

Continued demand has meant this talk is updated with results from the latest versions of G++ and Clang! The talk shall cover, amongst other items: an analysis of some micro-optimisation techniques with particular focus on the quirks in generated assembler due to different compiler versions. Exactly what is static branch-prediction, and how is it (ab)used? Followed on by the "curious case of the switch-statement". All of these, and more, have been successfully implemented in a simple FIX-to-MIT/BIT trading system, for which the performance shall be analysed. Moreover the impact of selected O/Ss upon performance shall be discussed. Much has been written and speculated upon the mitigations for Spectre and Meltdown upon performance. I shall present results that appear to contradict the currently-propounded beliefs of some major organisations.

A Performance Analysis of a Trading System over Compilers and O/Ss and Spectre & Meltdown.

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 it highly effective. Also the impact of hardware and O/S upon such performance-critical systems are other major factors that C++ can build upon.

Jason McGuiness

Count-Zero Limited

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top