Portrayal of parallel applications for performance evaluation and prediction
Abstract
Performance analysis and estimations play a central role in the design and development of parallel application software. In parallel environments, the performance related parameter space is much larger than that in the sequential case. As a result, simple "paper and pencil" type analysis is not always a viable option. Numerous efforts have gone into developing tools to help users understand the performance of their parallel applications. Typically these tools tend to be used at run-time or as post-processors [5, 61. Performance data is gathered by monitoring the program execution and/or by collecting execution trace. These tools serve a useful purpose as performance tuning aids after an application has been parallelized. As such, these tools are not directly useful in designing and developing parallel applications. In this paper, we introduce a new notion called performance portrayal of a parallel application program for Performance Specification. The portrayal captures the speed characteristics of the rate determining segments, the control flow, and dataflow of an application as well as the parameters of the parallel environment in which it is executed. The specification is expressed as a program in a Portrayal Specification Language (PSL), which we introduce in this paper. A PSL program has close resemblance to the parent application program. It has all the relevant application program variables and their structural information, but actual computations are not performed. Only timing information is computed.