Why Parallel Performance Results Don't Matter...much

Let me state up front that the opinions expressed here do not necessarily reflect the views of Intel Software Network or the editorial policies of the ISN Parallel Programming Community.  It's just me and my bias.

I was reading a paper a few days ago that described how the author took 4 numeric computations, parallelized them, and ran them on different numbers of cores.  Three of the seven pages were taken up by speedup and other performance graphs. One whole page of text described the parallel execution results and how they compared. 

Ho hum.

The article was written well and the justification for the choice of the four algorithms to be parallelized was well defended. However, I was more interested to know how the parallelization of the code was accomplished. Beyond a paragraph or so talking about this, there was nothing.

I hope that by now we all "get" that parallel codes are going to run faster on multi-core processors. I don't need to see those kinds of performance gains as the focus of an article anymore. What I want to know is how it was done.  What programming methodology/library did you choose and why?  Were there any problems that you didn't anticipate?  How did you solve them?  Did you try a different method of parallelization and how did that turn out?  Show me some of the parallelized code from your application (but describe it in enough detail that I might recreate it if the code weren't included). Parallel speedup/performance results are still needed, but don't let them hog the spotlight.

There are exceptions to this latter piece of advice, of course.  If you get some unexpected results and can explain why (and better still how to fix it) or you've been able to test the application on lots of cores/threads and are interested in why the app does (or why it doesn't) scale as anticipated or you're testing different approaches to the parallelism, then I'd be more interested in hearing about the performance you achieved with your parallel code(s). Otherwise, for me, I would much rather learn from your coding experience about what works, how you thought up your approach, and what it was like to implement that approach in code. Seeing something new or a twist on an old method is how we all learn.

Back in the day, when NP-Complete theory was shiny and new, you could publish articles in conferences and journals that were simply proofs of the NP-Complete nature of a defined problem.  After a while, when more people became familiar with concepts and the proof methods, the luster wore off and these papers weren't published much. For me the luster of showing off the speedup of parallel applications has worn off.

As I stated at the outset, this is just my preference for what I read in articles about parallel programming. I'm not trying to change the way you or any other author writes up their scholarly results for ISN or any other outlet. But, if you get back review comments asking for more time on methodology and less on results, it might have come from me. I hope you'll seriously consider taking the advice.
如需更全面地了解编译器优化,请参阅优化注意事项