Thesis Proposal for the Degree Doctor of Philosophy
Supervised by Thomas J. LeBlanc
Department of Computer Science
The College of Arts and Sciences
1996
Compressed postscript (single space - 66 pages)
Understanding the performance of parallel applications is a ha rd task, since a programmer has to consider machine resources, application characteristics, and many dynamic interactions, correlating implementation decisions to performance phenomena. This correlation process, which we call performance understanding, can be performed at two levels: (1) intra-execution - performance phenomena particular to an execution, and (2) inter-execution - trends across multiple executions. In the first case we want to know the causes of performance phenomena; in the second case we seek explanations for any trends that correlate performance phenomena and execution parameters. We can organize the understanding process as a set of questions that we pose about the application. By answering these questions, we get information about the application's behavior and its internals, up to the point where we identify implementation decisions that are causing performance problems and should be reevaluated (e.g., data distribution, loop parallelization). Most of this process, however, is performed by the programmer, since current performance tools are very focused and do not provide any support for automatically linking performance phenomena to implementation decisions. The thesis we intend to demonstrate is that it is possible to understand performance phenomena automatically. There are two main efforts to be pursued in accomplishing this thesis: (1) provide support for performance understanding, and (2) design techniques that correlate implementation decisions to performance phenomena. In this proposal, we present work in both directions. Regarding support for understanding, we present Carnival and the Lost Cycles Toolkit. Carnival is a performance understanding framework, that serves not only as a valuable profiling tool, but also supports the development of explanation techniques. The Lost Cycles Toolkit automates the generation of performance models. We also present an automated technique for understanding waiting times (where one processor is blocked while waiting for another) called Waiting Time Analysis, which was developed using Carnival resources. We conclude the proposal by presenting future work directions and a schedule.