Parallel application characterization with quantitative metrics


Alexander S. van Amesfoort, Dept. of Software Technology, Delft University of Technology, Mekelweg 4, 2628 CD Delft, The Netherlands.



When computer architects reinvented parallelism through multi-core processors, application parallelization became a problem. Now that multi-cores have penetrated from handhelds to supercomputers, parallelization becomes a large-scale challenge. A lot of research is going into compiler improvements, language extensions, frameworks and application/platform case studies. Whereas fairly successful, these solutions are based on experimental tools, trial-and-error, and expert knowledge, and do not bring multi-core programming into reach for the whole software industry. We believe that the challenge of “mass parallelization” must be tackled more systematically. Development begins at application specification and algorithm design, followed by application characterization with trade-offs in parallelization strategies and data layouts. Only with a proper software design, implementation and optimization can start. In this article, we focus on quantitative application characterization for such a systematic approach. We introduce a set of metrics to characterize applications and show how they can be used. We present our interpretation of the results and suggest ways to use them to guide design decisions. We conclude that metrics can be used to understand applications and design decisions early on. Therefore, this characterization brings us closer to effective parallel applications development for multi-core processors. Copyright © 2011 John Wiley & Sons, Ltd.