- Concurrency and isolation. Making active objects almost seamless to write compared to plain classes, and much simpler than using OO-style and function<>-style implementations.
- Parallelism and scalability. Making divide-and-conquer and spin-off-chunks-as-tasks code much easier to understand, whether using thread pools or modern ‘task pools’ via work stealing runtimes like TBB/PPL/Cilk.
- STL programming. This has two aspects — usability, and efficiency. For usability, lambdas make common and important cases incredibly more usable and actually enables following some of Scott’s advice from Effective STL far more often than is practical today. For efficiency and optimization, lambdas can make using std::for_each with a lambda both simpler and more efficient than a screaming fast hand-rolled pointer-chasing for loop. (Don’t just believe my slideware claims; I can do live demonstrations of the code and we can all measure its performance together in real time.)
- Local functions. Done. They’re as good as in the language.
- Other small conveniences. For example, making const local variable initialization easy and simple in cases that are inconvenient today.
May 29, 2010
May 23, 2010
I’ve put together a few tips on public speaking, with an emphasis on tech talks. Scott and Herb encouraged me to share the link here. Hope you like the talks you’ll hear at C++ and Beyond! (But don’t forget: it’s do as I say, not as I do!)
May 5, 2010
I’m interested in offering a technical session focusing on CPU caches and why they are important for people interested in developing performance-sensitive software. My idea is to talk about things like the following:
- Instruction caches vs. data caches vs. TLBs
- Cache lines, cache line prefetching, and false sharing
- Cache hierarchies
- Shared and unshared caches
- Interactions among caches, multithreading, hyperthreading, and speculative execution.
- Interactions among C++ language features and instruction caches (e.g., macros, inlining, templates)
- Cache-friendly algorithms and data structures
Please use the comment feature of this blog to discuss your thoughts on this prospective session topic.