next up previous
Next: Use of Hardware Modeling Up: Estimation of Performance Cost Previous: General Approach

Analytic Estimation and Compiler Generation

The cost modeling for individual components requires either user insight or the simple measurements described earlier or symbolic inference through use of compilation of appropriate application emulators. For example, average program cost estimations are studied in [55]. Computation and communication cost estimation for a loop program is studied in [14], based on symbolic integer point counting techniques. None of this work has addressed the impact of multi-level caching and further research will be needed. For some parts of the applications, it may be difficult for a compiler or a user to provide accurate prediction. As described in the following section, runtime profiling and full simulation for some critical parts of code will lead to a relatively accurate performance abstraction for these parts to improve the accuracy of the overall performance prediction. Sometimes the worst case performance estimate from a static compiler analysis can be overly pessimistic in predicting performance in practice. On the other hand, average performance can be very difficult to obtain using symbolic analysis. Runtime profiling based on a set of carefully selected instances can be used to study the average-case performance of components where symbolic analysis is unduly pessimistic.

As shown in Figure 1, we will also use runtime compilation to generate input to PetaSIM. This will help both in defining appropriate aggregates and in estimating the associated cost functions. For this activity we will use results from the ARPA sponsored Parallel Compiler Runtime Consortium in which both Maryland and Syracuse participate. This effort has generated a set of libraries implementing essential data movement and computation primitives used by parallel C++, HPF and also preliminary versions of parallel Java compilers. These libraries include those for both regular (HPF1) and adaptive irregular problems (HPF2 extensions). We intend to use the PCRC libraries in the application emulation path of Figure 1 to both motivate the data movement primitives in HLAM and provide cost functions by runtime profiling of their execution.


next up previous
Next: Use of Hardware Modeling Up: Estimation of Performance Cost Previous: General Approach

Wes Stevens
Fri Jul 11 15:07:44 EDT 1997