posted on 2016-12-22, 15:55authored byRoman Atachiants, Gavin Doherty, David Gregg
The shift towards multicore processing has led to a much
wider population of developers being faced with the challenge of exploiting
parallel cores to improve software performance. Debugging and
optimizing parallel programs is a complex and demanding task. Tools
which support development of parallel programs should provide salient
information to allow programmers of multicore systems to diagnose
and distinguish performance problems. Appropriate design of such tools
requires a systematic analysis of the problems which might be identified,
and the information used to diagnose them. Building on the literature,
we put forward a potential taxonomy of parallel performance problems,
and an observational model which links measurable performance data
to these problems. We present a validation of this model carried out
with parallel programming experts, identifying areas of agreement and
disagreement. This is accompanied with a survey of the prevalence
of these problems in software development. From this we can identify
contentious areas worthy of further exploration, as well as those with
high prevalence and strong agreement, which are natural candidates for
initial moves towards better tool support.
History
Publication
IEEE Transactions on Software Engineering;42 (8), pp. 764-785