Quantcast
Channel: Bartek's coding blog
Viewing all articles
Browse latest Browse all 325

Cpp Con 2017 Notes

$
0
0

Notes from Cpp Con

Have you been at Cpp Con this year?

I haven’t, but still I plan to watch some good C++ talks. Can you help me a bit and add your notes?

Last update: 9th October 2017

Intro

Cpp Con 2017 is over and recently the videos from the talks started to appear. It’s a good time to refresh the knowledge about C++ and learn something new. I am especially interested in talks about new things, industry problems and experience with using C++ in production.

I am using open repository to collect notes, so just follow: github/fenbf/cppcon2017_notes. Submit your changes so we can make a larger collaborative post.

First of all here are the official links:

And the summary:
Thanks / 2018 Dates / 2017 Trip Reports | cppcon

And some of the trip reports:

Trip Reports

Talks

Here’s a list of talks with a summary and they key points (to be updated!)

Bjarne Stroustrup “Learning and Teaching Modern C++”

CppCon 2017: Bjarne Stroustrup “Learning and Teaching Modern C++” - YouTube

  • “We’re all teachers” - this is a good talk, especially for all the people who teach other how to code: but not only bloggers, proffesors… but even for you when you advice/help your collegues from time to time.
  • C++ was tought sometimes in a messy way, so we can do better.
  • “if you write your own linked list (and use it in production code) you’re cool”. We cannot teach that way any more. It’s just better to use STL.
  • Simple example: Why range for loop is better than the old for loop (with i as the index).

Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler’s Lid”

CppCon 2017: Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler’s Lid”

PDF slides

  • Matt’s story: why he loves asm and how he started with Compiler Explorer.
  • ASM 101, it’s really not that hard to read some of the basic code. It might help you to understand your code better.
  • Examples of how compilers might be smart. Math stuff mostly, but intresting to see how it’s usually best to rely on the code generation.
  • Tech stack behind Compiler Explorer

Carl Cook “When a Microsecond Is an Eternity: High Performance Trading Systems in C++”

CppCon 2017: Carl Cook “When a Microsecond Is an Eternity: High Performance Trading Systems in C++”

PDF slides

  • High Frequency Trading in general earns money by buying and selling very often, and looking for small price changes. The success is to be faster than the competition.
    • Usually they have like 2.5us to react and do the trade… it’s less time than a light travelling from top of BBurj Khalifa to the bottom!
  • C++ is used because it’s a relatively abstract language, gives zero cost overhead over the abstraction over the hardware.
    • They often have to check the generated code, so it’s no coincidence that Compiler Explorer comes from that industry… check Matt’s talk.
  • Techniques covered (for the hot path, not for the whole code)
    • removing branch prediction, using templates and compile time configuration (to avoid dynamic polimorphism, virtual method costs, eliminate branches)
    • Lambdas are very expressive and still give a lot of power, they might be inlined.
    • Be carefull about memory allocations, use pool of pre allocated objects, delete on other thread
    • Carl advices to use exceptions (but not for the control flow!), they cost zero if they didn’t throw.
    • Multithreading is usually avoided for low latency code, the hot path. They even disable all other cores and use just one.
    • Use data wisely, if you read something from the memory, use full cache lines
    • There’s a comparision of various hash map approaches
    • in order to keep the cache hot, they might run simulations and only from time to time do the actual trade/response.
  • As usually: measure measure measure :)
    • They setup a production system to measure it reliably

Contributors

Summary

todo… :)


Viewing all articles
Browse latest Browse all 325

Trending Articles