This spring: High-Performance and Low-Latency C++ (Stockholm) and ACCU (Bristol)

I don’t get to Europe very often apart from ISO C++ standards meetings, but this spring I’ve been able to accept invitations for two English-language European events in the last week of April. If you’re interested in attending, please check out the links, and I look forward to meeting and re-meeting many of you there.

Tue-Thu Apr 25-27: High-Performance and Low-Latency C++ (Stockholm)

On April 25-27, I’ll be in Stockholm (Kista) giving a three-day seminar on “High-Performance and Low-Latency C++.” This contains updated and new material that reflects the latest C++ standards and compilers, with a focus to using modern C++11/14/17 effectively on modern hardware and memory architectures.

Note that the class size is limited to about 100, so that I’ll be able to interact with most attendees directly. Registration just opened recently and hasn’t been widely publicized yet, but today I was told that it’s already over 1/3 full. So if you or your colleagues might be interested in attending, please check out the link above; for group registrations, please contact Alfasoft directly.

Here is the summary, below; for a more detailed topic breakdown see the link above.

Description

Performance and efficiency are C++’s bread and butter, and they matter more than ever on modern hardware: In processors, single-threaded performance improvements are slowing down (unless your code is parallel); in Internet of Things, we are often asked to do more work with less hardware; and in cloud computing, processor/hardware time is often the major component of cost and so making code twice as efficient often means saving close to half the processing cost. Today, getting the highest performance and the lowest latency on modern hardware often means being aware of the hardware in ways that most other programming languages can’t – from hardware caches where simply arranging our data in the right order can give 50x speedups with otherwise identical code, to hardware parallelism where using parallel algorithms turns on high-performance parallel and vector processor hardware that otherwise sits idle.

Additionally, low latency increasingly matters at all scales: In user interfaces, low latency means responsive apps and productive users without the dreaded “wait…” donut; in financial trading, low latency regularly saves large amounts of cash; in embedded real-time systems, low latency is crucial to meeting deadlines and can even save lives. Today, this makes concurrency more important than ever, because it delivers two things: It hides latencies we have to deal with and cannot remove, from disk I/O latency to speed-of-light network latency; and it makes our code responsive by not introducing needless latencies of our own even when we’re not hiding someone else’s latency.

Goal

This intensive three day course will provide developers with the knowledge and skills required to write high-performance and low-latency code on today’s modern systems using modern C++11/14/17. During the training you’ll learn how to get the highest performance and the lowest latency on modern hardware in ways that are unique to C++, including how to arrange data to use hardware caches effectively, and how to use standard and your own custom-written parallel algorithms to harness high-performance parallel and vector processor hardware to compute results faster. You’ll also learn how to manage latency for responsive apps and for real-time systems, and techniques to hide the underlying latencies we have to deal with and cannot remove such as disk and network latency, and to make your own code responsive by not introducing needless latencies in your own code.

Sat Apr 29: ACCU closing keynote (Bristol)

Next, I’ll be heading to Bristol to catch the end of the ACCU 2017 conference, and give the closing talk on “Something(s) New in C++.” No, the title is not intentionally a tease; it’s just that I have several topics available, and I won’t be sure until about a month before the event which will be the best one to speak about. Here is the current abstract:

By the time the ACCU 2017 conference begins, C++17 is expected to be technically complete and in its final approval ballot. What comes next? Will C++ continue growing forever? Can C++ code be simplified? This is a brand-new talk of material I’ve never given before, in which I’ll present one (or more) of three proposals I’m personally working on to further improve C++ post-C++17. All follow a common theme – adding a strategic language and/or library feature to C++ that leads to significant, and sometimes dramatic, simplification of real-world C++ code. I’ll pick which one (or more) of those topics to present sometime in March.

What I can say is that, whichever topic it ends up being, it’ll be something you haven’t seen before that’s forward-looking and aimed directly toward making C++ code simpler and easier… and of course without compromising C++’s model of efficient machine-near abstraction.

I look forward to seeing many of you in Europe this spring.

8 thoughts on “This spring: High-Performance and Low-Latency C++ (Stockholm) and ACCU (Bristol)

  1. Hi,

    I just came to know about the upcoming “High-Performance and Low-Latency C++” event in Stockholm and very much interested in attending this event.

    However, I just wanted to know if the attendees will be provided with any presentation material, code samples etc that we can refer to during and after the event in order to delve deeper into this subject. Though I have been developing in C++ for a while now, I am fairly new to High-Performance and Low-Latency programming and I am afraid it will be difficult for me to understand and retain all the material covered in a short span of 3 days without any supporting material.

    Thanks.

  2. Unfortunately, can’t make it to Stockholm — have already made travel plans for this year. BUT WOULD BE WILLING TO PAY a REASONABLE amount for videos of lectures and pdfs of handouts, if possible. Thanks,Ihor Kinal

    From: Sutter’s Mill To: ikinal@att.net Sent: Monday, February 13, 2017 1:14 PM Subject: [New post] This spring: High-Performance and Low-Latency C++ (Stockholm) and ACCU (Bristol) #yiv3575591223 a:hover {color:red;}#yiv3575591223 a {text-decoration:none;color:#0088cc;}#yiv3575591223 a.yiv3575591223primaryactionlink:link, #yiv3575591223 a.yiv3575591223primaryactionlink:visited {background-color:#2585B2;color:#fff;}#yiv3575591223 a.yiv3575591223primaryactionlink:hover, #yiv3575591223 a.yiv3575591223primaryactionlink:active {background-color:#11729E;color:#fff;}#yiv3575591223 WordPress.com | Herb Sutter posted: “I don’t get to Europe very often apart from ISO C++ standards meetings, but this spring I’ve been able to accept invitations for two English-language European events in the last week of April. If you’re interested in attending, please check out the links,” | |

  3. Contemplations about C++ future simplifications are very exciting. It seems (from an admittedly outsider point of view) that a big obstacle for this is a backward compatibility promise. Backward compatibility is a wonderful thing and a core language strength. That said, may it be that the language has reached the point when bigger deprecations are possible without breaking user’s perception of backward compatibility?

    Code is data to a compiler and our current compilers take more and more metadata with the code. But surprisingly one of most important matadata bits is detached from the code into a build process – C++ language standard compliance is a compiler flag. Would it be more reasonable to have it in the code? More so, if language versioning goes in the code, it better not be per-file (that is too brittle), but should be either per namespace or per (upcoming) modules. If one can set both lower and upper boundaries, then the compiler knows which features to turn on for the upper boundary and which features to turn off or deprecate, for the lower boundary. The lower end’s default is zero, unless a new language feature conflicts with something which was deprecated. Feels that if we can find a proper scoping for languave compliance it may help to aleviate backward compatibility concerns, – and give language designers more freedom for consistent design with less corner cases.

    May be other lessons from protocol vestioning are applicable. But it feels that an ability to drop luggage for greenfield opportunity codebases would worth the effort.

    ¢2

  4. @Najjar, @ihor: Not all events have a recording setup… the Stockholm seminar won’t be recorded, and I don’t know yet about arrangements at ACCU. Later this year I’ll be speaking again at CppCon (those are always recorded and posted for free on YouTube and Channel 9) and Qt World Summit (I’m not sure about that one).

    However, you can find lots of articles and talks online: All of my articles have always been freely available online, several hundred including on many on these topics — check out the “effective concurrency” tag on this blog. Also you can find many free videos — just search for “video” on this blog, or search for my name on YouTube and Channel 9 and you’ll find lots of recorded talks I gave at CppCon, C++ and Beyond, and other events.

  5. Since I can’t get to Stockholm,
    Is there any way to purchase videos and
    Handouts afterwards?
    I assume that it may be a while before
    This gets published.
    Thanks,
    Ihor

  6. Hi ,
    just want toask, for those who cannot attend “High-Performance and Low-Latency C++” seminar, can we get access to your talks?

    thx

Comments are closed.