Steve Leibson’s blog entry on a paper talking about Roofline Model at HotChips 08 conference.
Sam Williams, a PhD student working under UC Berkeley’s Professor and Processor Guru Dave Patterson, gave a polished Hot Chips talk on a metric that allows undergrads (and, in my mind, overly busy design engineers) to determine when they’ve sufficiently optimized software to run on multicore parallel processors. Note that this model is about optimization, not writing correct parallel programs. “If you can’t write a correct parallel program,” said Williams, “you shouldn’t be worried about optimizing it.”
William’s concept is called the “Roofline Model” and I though about summarizing it here, but I’d need a blog entry the length of the presentation to do it. So go get a copy yourself on Williams’ Web page.
Essentially, the Roofline model tries to pair information about a multicore processors maximum FLOPS performance with information about the “arithmetic intensity” of the problem at hand. The arithmetic intensity is simply the number of FLOPS needed divided by the number of bytes that must be transferred to solve the problem. It’s a measure of the problem’s balance between computation and data movement. Different problems have different algorithmic intensities.


