PERFORMANCE ENGINEERING:ESTABLISHING AND MAINTAINING PERFORMANCE BASELINES
Jay K. Strosnider
Department of Electrical and Computer Engineering
Carnegie Mellon University
It is not uncommon to have serious performance problems when developing
complex real-time/multimedia systems. Part of the problem is the lack of
a simple, scaleable technique for accurately modeling the performance
properties of large, complex systems. Discrete event simulation
techniques, which are commonly used, scale poorly with system size and complexity. In this talk we outline a performance engineering strategy based upon
simple, yet accurate analytic models. Our performance engineering
approach which will enable practitioners with little training to establish and
maintain performance baselines for complex real-time/multimedia systems.
The approach has four key components: a unified engineering framework for
reasoning about timing correctness on shared system resources (OS/CPUs,
buses, networks and disks), a systems integration framework (Distributed
Pipelining) which supports the composition of arbitrarily large systems
with fully predictable timing properties, a Performance Engineering toolset
that hides the complexity while exposing the power and utility of our approach,
and a Performance Engineering process that integrates the methodology into
the systems development process. We will summarize each of these key
components and then go through a set of design and evaluation
demonstration using the SEW tool set. The methodology has been and is being applied at IBM, Loral, IBM, Texas Instruments and Siemens for desktop DSP subsystems, accoustic suites for submarines, air traffic control systems, and patient
monitoring systems.