Facebook C++ Conference
Saturday, June 2, 2012 from 11:00 AM to 7:00 PM (PDT)
Menlo Park, CA
|12:10pm||Scott Meyers: Adventures in Perfect Forwarding|
|2:10pm||Andrei Alexandrescu: Sheer Folly|
|3:30pm||Spencer Ahrens: Why Wait? Building a Synchronized Hash Map for Modern Servers|
|4:50pm||Herb Sutter: Welcome to the Jungle|
Scott Meyers: Adventures in Perfect Forwarding
Scott Meyers is one of the world's foremost authorities on C++. Author of the best-selling Effective C++ series (Effective C++, More Effective C++, and Effective STL), he’s also a founder of C++ and Beyond and the consulting editor for Addison Wesley's Effective Software Development Series. He provides training and consulting services to clients worldwide.
Perfect forwarding is a C++11 technique that enables the use of move semantics in situations where the move’s source travels across function call boundaries to reach its destination. Common usage scenarios include constructors and setter functions that forward arguments they receive to data members they initialize or set. In the C++11 standard library, std::make_shared perfect-forwards its arguments to the constructor of whatever object the to-be-created std::shared_ptr is to point to.
Perfect forwarding has quirks. For example, it’s not perfect: some types can’t be perfect-forwarded. Because perfect forwarding is implemented via function templates with parameters declared in a rigidly-specified manner, the usual approach to treating some kinds of parameter types differently from others (overloading) can’t be employed. Even combining perfect forwarding with the pImpl idiom leads to unexpected hitches.
In this talk, Scott Meyers offers a pragmatic, practical view of perfect forwarding that includes treatment of its quirks. The presentation is aimed at C++11 developers who need to not just understand perfect forwarding, they need to use it to solve real programming problems.
Andrei Alexandrescu: Sheer Folly
Andrei Alexandrescu is a researcher, software engineer, and technical author. He wrote three best-selling books on programming and numerous articles and papers on topics ranging from programming to language design to Machine Learning to Natural Language Processing. Andrei holds a PhD in Computer Science from the University of Washington. He works as a Research Scientist for Facebook.
We will be making an announcement of interest to C++ programmers around the world. Stay tuned.
Spencer Ahrens: Why Wait? Building a Synchronized Hash Map for Modern Servers
Spencer Ahrens is an engineering manager at Facebook where he has worked on several key pieces of graph infrastructure. Past stints from Spencer's career include work on solar energy and helicopter navigation systems. Spencer holds a Master's degree in Mechanical Engineering from MIT.
In today's world of multicore systems with vast available memory, and complex applications operating on heavily interconnected graphs of data updated in real time, mutex-based concurrency leaves a lot of performance on the table. This talk digs into the details of AtomicHashMap, a high performance hash map based on wait-free design principles, plus two supporting technologies that are also useful as stand alone modules—a new thread local implementation, and a high throughput concurrent counter.
Herb Sutter: Welcome to the Jungle
Herb Sutter is the chair of the ISO C++ standards committee and a software architect at Microsoft, where he has been the lead designer of C++/CLI, C++/CX, C++ AMP, and other technologies.
In the twilight of Moore's Law, the transitions to multicore processors, GPU computing, and HaaS cloud computing are not separate trends, but aspects of a single trend—mainstream computers from desktops to 'smartphones' are being permanently transformed into heterogeneous supercomputer clusters. Henceforth, a single compute-intensive application will need to harness different kinds of cores, in immense numbers, to get its job done. -- The free lunch is over. Now welcome to the hardware jungle.