Chapter 17. Profiling Parallel Programs
Since
the raison d'être for a cluster is higher
performance, it stands to reason that if you really need a cluster,
writing efficient code should be important to you. The key to
improving the efficiency of your code is knowing where your code
spends its time. Thus, the astute cluster user will want to master
code profiling. This chapter provides an introduction to profiling in
general, to the problems you'll face with parallel
programs, and to some of the tools you can use.
We'll begin by looking briefly at issues that impact
program efficiency. Next, we'll look at ways you can
time programs (and parts of programs) using readily available tools
and the special features of MPI. Finally, we'll look
at the MPE library, a library that extends MPI and is particularly
useful for profiling program performance. Where appropriate,
we'll look first at techniques typically used with
serial programs to put the techniques in context, and then at
extending them to parallel programs.
|