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.