Herb Sutter

Home Blog Talks Books & Articles Training & Consulting

On the
RSS feed March 25: We Have FDIS! (Trip Report: March 2011 C++ Standards Meeting)
March 24:
Book on PPL Is Now Available
January 14: Interview on Channel 9
December 31: 2010: Cyberpunk World

Herb Sutter is an influential authority on software development using C++ and concurrency. He is the best selling author of Exceptional C++ and three other books, along with hundreds of technical papers and articles including the widely-cited essay "The Free Lunch Is Over" which described the software sea change now in progress to exploit increasingly parallel hardware. He is chair of the ISO C++ standards committee and chief native languages architect at Microsoft.

Herb regularly gives invited talks and has some limited availability for private corporate training and mentoring.


Current Talks & Courses

Current Articles




C++ and Beyond 2011
August 7-10, 2011
Banff, Alberta, Canada

A followup to last fall's sold-out event with Scott Meyers and Andrei Alexandrescu. I'll be giving all new talks debuting at C&B, which will appear here soon. For now, let me just guarantee that they'll focus on high performance material you've never seen before, and exquisitely Exceptional C++0x...


Classic Talks Online

Machine Architecture: Things Your Programming Language Never Told You
  (Google video)  (pdf slides)
September 19, 2007
Northwest C++ Users Group,
Seattle, Washington, USA

Programmers are routinely surprised at what simple code actually does and how expensive it can be, because so many of us are unaware of the increasing complexity of the machine on which the program actually runs. This talk examines the “real meanings” and “true costs” of the code we write and run especially on commodity and server systems, by delving into the performance effects of bandwidth vs. latency limitations, the ever-deepening memory hierarchy, the changing costs arising from the hardware concurrency explosion, memory model effects all the way from the compiler to the CPU to the chipset to the cache, and more -- and what you can do about them.

Effective Concurrency: Know When to Use an Active Object Instead of a Mutex
Dr. Dobb's Report
, September 2010.

From the article: "Let’s say that your program has a shared log file object. The log file is likely to be a popular object; lots of different threads must be able to write to the file; and to avoid corruption, we need to ensure that only one thread may be writing to the file at any given time. Quick: How would you serialize access to the log file? Before reading on, please think about the question and pencil in some pseudocode to vet your design. More importantly, especially if you think this is an easy question with an easy answer, try to think of at least two completely different ways to satisfy the problem requirements, and jot down a bullet list of the advantages and disadvantages they trade off. Ready? Then let’s begin."


Classic Articles Online
The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software,
Dr. Dobb's Journal, 30(3), March 2005.
The biggest sea change in software development since the OO revolution is knocking at the door, and its name is Concurrency. This is the widely-cited landmark article that first coined the term "concurrency revolution" to describe the turn to parallel hardware and its impact on the future of software.

Software and the Concurrency Revolution (with Jim Larus),
ACM Queue, September 2005.
The concurrency revolution is primarily a software revolution. Soon all new machines will be multicore, and the difficult problem is programming this hardware so that mainstream applications benefit from the continued exponential growth in CPU performance.

Copyright © 2011 Herb Sutter