May 12 — James Reinders and Herb Sutter, Microsoft software architect, prominent C++ thinker, and best-selling author
Title: “Five Years Since Free Lunches: Making Use of Multicore Parallelism”
Reflecting on the five years since “The Free Lunch is Over” article and the arrival of multicore processors, Sutter and Reinders will talk about the keys to making effective use of multicore parallelism. Programmers are in the midst of an evolution that takes time, and we are still in the early days. Sutter and Reinders share expert advice on how to view this transition, and the keys to getting it right—including a three-pillar model for concurrency, the need to maximize the number of tasks expressed in a program, and how abstractions encourage “many task” programming, while allowing overheads to be driven down under-the-covers.
May 19 — James Reinders and Steve Teixeira, Product Unit Manager of Parallel Computing Platform Developer Division, Microsoft* Corporation
Title: “Intel Parallel Studio and Microsoft Visual Studio*: Using Abstractions to Prepare for Multicore”
Writing threaded code using native threads is like pounding a nail with a screwdriver: There are easier and more efficient ways to take advantage of multicore processors. This discussion will focus on how to create efficient multiprocessing code by utilizing higher level abstractions, including Parallel Pattern Language (PPL), Task Parallel Library (TPL), and Intel® Threading Building Blocks.
May 26 — James Reinders and David Mackay, Manager of Technical Consulting and Support for the Performance, Analysis, and Threading group, Intel Corporation
Title: “Intel Parallel Studio: Creating Fast, Reliable Parallel Programs”
Writing fast, reliable code is a challenge. Being able to determine memory and threading issues along with bottlenecks like hotspots and concurrency issues requires more than print statements or a debugger. This talk will explore how Intel Parallel Studio includes tools for both serial and threaded code to find errors that affect reliability and identify the bottlenecks that limit performance.