Analytical performance prediction of data-parallel programs

A combination of static and dynamic performance prediction techniques can be used effectively to address the problems of performance debugging, architectural improvement, machine selection and compiler optimization for data-parallel programs on multicomputers. This research develops two analytical models which account for the effects of CPU execution time, cache behavior and message passing overhead for multicomputers. These factors have been shown to be significant in determining performance on distributed memory systems. The first model performs static analysis on Dataparallel C source code in order to determine critical algorithmic parameters which can be used to predict performance when the problem size is fixed. The second model uses information obtained at compile time along with a single instrumentation run to generate a symbolic equation for execution time. This model can be used to predict performance even when the problem size varies. By leveraging technology from the Maple symbolic manipulation system (15) and the S-PLUS (89) statistical package we implement a system which presents users with critical performance information necessary for performance debugging, architectural enhancement, and procurement of parallel systems. The usability of these results is improved by specifying confidence intervals as well as predicted execution times for parallel applications. Cost optimal analysis techniques are also developed using the symbolic equations for execution time.