- This event has passed.
Threads and Shared Variables in C++11 and elsewhere
April 18, 2012 @ 6:30 pm
Venue HP Oak Room 19111 Pruneridge Avenue Cupertino, CA 95014 See map: Google Maps Speaker: Hans Boehm Event Details
In spite of over 40 years of shared memory parallel programming, there has been a surprising amount of confusion surrounding the basic meaning of shared variables. For example, an assignment to one structure field might interfere with a concurrent assignment to a field “too close” to it under poorly defined, and potentially hard to avoid, circumstances. This often left the basic ground rules for parallel programming fuzzy, and contributed to its perceived difficulty. C++11 finally integrates threads into the language, in part to address this issue. As in many other languages, the C++11 approach is based on a simple interleaving-based semantics for data-race-free programs. However, we define much more precisely what that means, often resolving prior controversies about embarrassingly simple programs, and exposing flaws in prior approaches.I’ll explain the C++11 approach to shared variables (its “memory model”) and some of its consequences. I’ll conclude by briefly contrasting it to Java, which poses a more challenging problem, with currently a much less satisfactory solution.
Hans Boehm is a research manager at HP Labs. He is probably best known as the primary author of a commonly used garbage collection library. Experiences with threads in that project eventually led him to initiate the effort to properly define threads and shared variables in C++11. He is an ACM Distinguished Scientist and a former Chair of ACM SIGPLAN. He holds a B.S. degree from the University of Washington, and M.S. and Ph.D. degrees from Cornell University.