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!
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.