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
- Matt Godbolt’s CppCon 2017 Trip Report
- Ben Deane’s CppCon 2017 Trip Report
- Charles L. Wilcox’s Trip Report
- Oliver Smith’s Cpp Con 2017 Report
- Eva “Bunny” Conti: A Beginner’s Guide to CPPCon 2017
IT Hare on Soft.ware reports:
- #CPPCON2017 Day 0: IMO best posters
- #CPPCON2017. Day 1. Hope to get something-better-than-chevron-hell
- #CPPCON2017. Day 2. Why Local Allocators are a Good Thing(tm) Performance-Wise, and Why I am Very Cautious about C++17 STL parallelized algos
- #CPPCON2017. Day 3. The Future of C++
- #CPPCON2017. Day 4. Async Rulezzz!
- CPPCON Day #5. Miscellaneous
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”
- 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++”
- 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
- (author) Bartek from bfilipek.com
Summary
todo… :)