This paper describes a methodology that provides detailed predictive perfor
mance information throughout the software design and implementation cycles.
It is structured around a hierarchy of performance models that describe th
e computing system in terms of its software, parallelization, and hardware
components. The methodology is illustrated with an implementation, the perf
ormance analysis and characterization environment (PACE) system, which prov
ides information concerning execution time, scalability, and resource use.
A principal aim of the work is to provide a capability for rapid calculatio
n of relevant performance numbers without sacrificing accuracy. The predict
ive nature of the approach provides both pre- and postimplementation analys
es and allows implementation alternatives to be explored prior to the commi
tment of an application to a system. Because of the relatively fast analysi
s times, these techniques can be used at runtime to assist in application s
teering and scheduling with reference to dynamically changing systems and m
etacomputing.