Another Spring Talk

I’m back from the East U.S. / Europe trip, and happy to report that ACCU is just as fun as ever and Lisbon is quite beautiful (for the few hours I was able to see it, mostly through windows). In the next day or three I’ll blog about the spring C++ standards meeting we just concluded last week in Oxford… stay tuned.

In the meantime, here’s a quick note about a talk I’ll be giving close to home. (Any talk that doesn’t involve getting on an airplane gets bonus points.) It’s an instance of the continuously-evolving overview of the concurrency landscape and what it means for software, with a roadmap for our next decade or so. If you’re in the Seattle area, you might be interested in swinging by.

Keynote: Software and the Concurrency Revolution
May 10, 2007
Online Game Development Conference
Seattle, Washington, USA

Although driven by the industry-wide hardware shift to multicore hardware architectures, concurrency is primarily a software revolution. We are now seeing the initial stages of the next major change in software development, as over the next few years the software industry brings concurrency pervasively into mainstream software development, just as it has done in the past for objects, garbage collection, generics and other technologies. This talk summarizes the issues involved, gives an overview of the impact, and describes what to expect over the coming decade.

Talks & Events This Spring

The spring is springing, the birds are singing, and it’s airplane time again (or, still). In the next two months I’m going to be speaking at several events in North America, Europe, and Asia. Here are two public events where I’ll be giving talks — I’m looking forward to seeing many of you there!

Machine Architecture:
Things Your Programming Language Never Told You

April 14, 2007
ACCU 2007, Oxford, United Kingdom

High-level languages insulate the programmer from the machine. That’s a wonderful thing — except when it obscures the answers to the fundamental questions of “What does the program do?” and “How much does it cost?” Programmers are consistently surprised at what simple code actually does and how expensive it can be, because of being unaware of the 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.

Keynote: Software and the Concurrency Revolution
April 17, 2007
Intel EMEA Software Conference, Lisbon, Portugal

Although driven by the industry-wide hardware shift to multicore hardware architectures, concurrency is primarily a software revolution. We are now seeing the initial stages of the next major change in software development, as over the next few years the software industry brings concurrency pervasively into mainstream software development, just as it has done in the past for objects, garbage collection, generics and other technologies. This talk summarizes the issues involved, gives an overview of the impact, and describes what to expect over the coming decade.