CONCURRENCY AND COMPUTATION: PRACTICE AND EXPERIENCE
Concurrency Computat.: Pract. Exper. 2012; 24:445–462
Published online 19 October 2011 in Wiley Online Library (wileyonlinelibrary.com). DOI: 10.1002/cpe.1882
SPECIAL ISSUE PAPER
Parallel application characterization with quantitative metrics
Alexander S. van Amesfoort
1,
*
,†
, Ana Lucia Varbanescu
1,2
and Henk J. Sips
1
1
Dept. of Software Technology, Delft University of Technology, Mekelweg 4, 2628 CD Delft, The Netherlands
2
Dept. of Computer Science, Vrije Universiteit, De Boelelaan 1081A, 1081 HV Amsterdam, The Netherlands
SUMMARY
When computer architects reinvented parallelism through multi-core processors, application parallelization
became a problem. Now that multi-cores have penetrated from handhelds to supercomputers, paralleliza-
tion 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 program-
ming 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, fol-
lowed 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.
Received 14 February 2011; Revised 21 June 2011; Accepted 28 July 2011
KEY WORDS: application characterization; metric; software design; concurrency; locality
1. INTRODUCTION
After decades of improvements to single-core processors, the amount of effort, power consumption,
and cooling needed to maintain steady performance improvements became infeasible. Processing
demands are still increasing: larger data sets need to be analyzed in a timely manner, legacy applica-
tions need to run faster and use more complex models, and novel applications emerge. In an attempt
to keep pace, processor architects reinvented parallelism, this time at a higher level by integrating
multiple programmable cores onto a single chip. Where existing applications could take advantage
of parallelization within a single core automatically or by using better compilers, it has been known
from programming multi-processor systems that application programming needs to change drasti-
cally to take advantage of multiple cores. Even worse, conventional (symmetric) multi-processor
systems only scaled to four or eight processors, whereas the chip industry now counts on scal-
ing the amount of (heterogeneous) cores far beyond that. To come close to peak performance, all
parallelism layers with different granularities and concurrency levels must be fully used. In addi-
tion, going multi-core does not alleviate the increasing difference between processor and memory
performance, the “memory wall”.
*Correspondence to: Alexander S. van Amesfoort, Dept. of Software Technology, Delft University of Technology,
Mekelweg 4, 2628 CD Delft, The Netherlands.
†
E-mail: a.s.vanamesfoort@tudelft.nl
Copyright © 2011 John Wiley & Sons, Ltd.