May 2012

It’s time for, not one, but two brand-new, up-to-date talks on the state of the art of concurrency and parallelism in C++. I’m going to put them together especially and only for C++ and Beyond 2012, and I’ll be giving them nowhere else this year:

  • C++ Concurrency – 2012 State of the Art (and Standard)
  • C++ Parallelism – 2012 State of the Art (and Standard)

And there’s a lot to tell. 2012 has already been a busy year for the pushing the boundaries of both “shipping-and-practical” and “proto-standard” concurrency and parallelism in C++:

  • In February, the spring ISO C++ standards meeting saw record attendance at 73 experts (normal is 50-55), and spent the full week primarily on new language and library proposals, with notable emphasis on the area of concurrency and parallelism. There was so much interest that I formed four Study Groups and appointed chairs: the largest on concurrency and parallelism (SG1, Hans Boehm), and three others on modules (SG2, Doug Gregor), filesystem (SG3, Beman Dawes), and networking (SG4, Kyle Kloepper).
  • Three weeks ago, we hosted another three-day face-to-face meeting for SG1 and SG4 – and at nearly 40 people the SG1 attendance rivaled that of a normal full ISO C++ meeting, with a who’s-who of the world’s concurrency and parallelism experts in attendance and further proposal presentations from companies like IBM, Intel, and Microsoft. There was so much interest that I had to form a new Study Group 5 for Transactional Memory (SG5), and appointed Michael Wong of IBM as chair.
  • Over the summer, we’ll all be working on updated proposals for the October ISO C++ meeting in Portland.

Things are heating up, and we’re narrowing down which areas to focus on.

I’ve spoken and written on these topics before. Here’s what’s different about these talks:

  • Brand new: This material goes beyond what I’ve written and taught about before in my Effective Concurrency articles and courses.
  • Cutting-edge current: It covers the best-practices state of the art techniques and shipping tools, and what parts of that are standardized in C++11 already (the answer to that one may surprise you!) and what’s en route to near-term standardization and why, with coverage of the latest discussions.
  • Mainstream hardware – many kinds of parallelism: What’s the relationship among multi-core CPUs, hardware threads, SIMD vector units (Intel SSE and AVX, ARM Neon), and GPGPU (general-purpose computation on GPUs, which I covered at C++ and Beyond 2011)? Which are most interesting, what technologies are available now, and what’s being considered for near-term standardization?
  • Blocking vs. non-blocking: What’s the difference between blocking and non-blocking styles, why on earth would you care, which kinds does C++11 support, and how are we looking at rounding it out in C++1y?
  • Task and data parallelism: What’s the difference between task parallelism and data parallelism, which kind of of hardware does each allow you to exploit, and why?
  • Work stealing: What’s the difference between thread pools and work stealing, what are the major flavors of work stealing, which of these (if any) does C++11 already support and is already shipping on some advanced commercial C++ compilers today (this answer will likely surprise you), and what needs to be done in the next round for a complete state-of-the-art parallelism story in C++1y?

The answers all matter to you – even the ones not yet in the C++ standard – because they are real, available in shipping products, and affect how you design your software today.

This will be a broad and deep dive. At C++ and Beyond 2011, the attendees (audience!) included some of the world’s leading experts on parallelism and compilers. At these sessions of C&B 2012, I expect anyone who wasn’t personally at the SG1 meeting this month, even world-class experts, will learn something new in these talks. I certainly did, and that’s why I’m motivated to turn the information into talks and share. This isn’t just cool stuff – it’s important and useful in production code today.

I hope to see many of you at C&B 2012. I’m excited about these topics, and about Scott’s and Andrei’s new material – you just can’t get this stuff anywhere else.

Asheville is going to be blast. I can’t wait.


P.S.: I haven’t seen this much attention and investment in C++ since last century – C++ conferences at record numbers, C++ compiler investments by the biggest companies in the industry (e.g., Clang), and much more that we’ve seen already…

… and a little bird tells me there’s a lot more major C++ news coming this year. Stay tuned, and fasten your seat belts. 2012 ain’t done yet, not by a long shot, and I’ll be able to say more about C++ as a whole (besides the specific topics mentioned above) for the first time at C&B in August. I hope to see you there.

FYI, C&B is already over 60% full, and early bird registration ends this Friday, June 1 – so register today.

The Early Bird registration discounts expire in just one week.  In fact, they were originally slated to expire on May 31 (this coming Thursday), but I decided to push the deadline back a day, because (1) I didn’t get around to posting this one-week warning until today, (2) Monday is a holiday in the USA, so the coming work week is short here, and (3) I ultimately decided that having Early Bird conclude at the end of a week was more aesthetically satisfying than having it conclude at the end of a month :-)  This will be the only extension for the Early Bird period, so if you’re not registered by the end of the day Pacific Time (GMT-8) on Friday, June 1, you’ll miss out on the opportunity to save 10% off the standard registration rates.

Incidentally, we haven’t yet awarded a free registration to anybody from Antarctica (details here), and we’d really like to, so if you think you can make a case for why you should qualify, please let us know.  Antarcticans need not worry about the end of the Early Bird period, because getting 10% off a free registration isn’t that valuable, but for everybody else, it’s worth several hundred dollars, so if you can, it’s worth registering no later than June 1!


In the final “from the archive” video, this is the  “Ask Us Anything!” panel which was recorded from the final session of C++ and Beyond 2011 in Banff, Canada.

Charles Torre at Channel 9 included the following table of contents in his post announcing the video:

[00:10] On strings, UTF-8 vs UTF-16, etc…
[03:08] How does the ISO C++ standards committee work?
[04:34] On shared_ptr performance and correctness
[11:30] What C++ work do you guys do outside of your real jobs?
[14:51] Implementations of atomic…
[17:07] Memory consistency model…
[22:13] Favorite C++11 features…
[24:23] What’s next for the standard’s committee?
[25:55] How to convince your company it’s OK to use templates now (C++11)…
[28:30] Favorite feature that’s not in the C++11 standard…
[30:44] What’s the deal with systematic and principled thread termination and program termination?
[36:22] Concepts…
[36:55] What’s going on with constexpr?
[41:51] When will we see Effective/Exceptional C++ books for C++11?

Great Q&A session!

I hope you enjoyed the videos and my trip down memory lane. Don’t forget to register for C++ and Beyond, coming to my beautiful state of North Carolina August 5-8. I would love to see you there!


In the third installment of “from the archive,” this panel discussion held by Herb, Andrei, and Scott focused on concurrency and parallelism.  Enjoy!

In this next installment of “from the archive,” this is a C++ and Beyond 2011 panel discussion among Scott, Herb, and Andrei talking about C++11.

Last year, we were very lucky to have Charles Torre from Microsoft’s Channel 9 attend our C++ and Beyond conference and record the talks and discussion panels. I thought that since we have so many new followers and first-time attendees, it would be fun to share a few of the videos as they are great examples of what you can expect from attending C++ and Beyond (coming August 5 in Asheville, NC).

Stay tuned! Over the next week and a half, I’ll be posting videos from the archives…

In this first video, Herb Sutter answers the question “Why C++?” He shares his perspectives on C++11 and the C++ Renaissance as well as why C++ still matters and will continue to matter far into the future. It’s a keynote-y talk, not a technical talk, but we felt it was important to address an important trend involving the language.



This is a reminder that May marks the final month for early-bird registration for C&B.  Registrations that take place by the end of this month benefit from the 10% discount for individuals and 20% discount for groups of three or more.  If you’ve been procrastinating about getting authorization to attend or have been putting off the necessary paperwork, now would be a good time to tackle those tasks.  The early-bird period will not be extended, so you’ll want to get in under the May 31 deadline if you possibly can.  Or you can wait until afterwards and pay us more.  We’re happy either way :-)


PS - One of the benefits of choosing clipart to accompany posts is the odd things one finds in them.  In the image accompanying this post, I was amused to see that among the depicted currencies is German Marks, which have been out of circulation since 2002. The U.S. penny atop the stack of coins that is on top of the 100-Mark bill was last issued in 1958.