Wednesday

Sans Titre

Main Links

Sans Titre

Quick Links


Computer Systems Performance Engineering

Performance engineering takes a proactive approach to designing and building systems that meet stated performance requirements. This stands in sharp contrast to the reactive approach of "build it and then fix it".

Performance engineering has evolved over the last 40 years as a collection of tools, techniques, methodologies, and best practices, all of which are the subject of this course.

Intended Audience

The course is intended for people who are becoming performance engineers, for people working as performance engineers and interested in learning new techniques, for people who want to develop a greater appreciation of the importance of system performance and how to achieve good performance, and for people who will be working closely with performance engineers and need to understand how they do their jobs.

Prerequisites

This course attempts to be self-contained. We will deal with some mathematical notation and formulas, but no math beyond elementary algebra will be used. Basic familiarity with computer systems is expected. Some programming experience will make the commercial tool demonstrations more meaningful.

Course Content

This course is designed to have breadth. Many of the topics covered could easily be expanded into entire courses by themselves.

We begin with an overview of ways to quantify the performance of systems and create meaningful performance requirements and goals. We then focus on meeting those requirements using bottleneck identification, capacity planning, simulation and analytic modeling, data gathering and analysis, workload characterization, and experimental design.

This course takes a somewhat holistic view of systems, which considers hardware, software, and workloads to be intimately related in determining system performance. The ideas we discuss will apply to a wide range of system types and should be useful for decades to come.

The course will feature demonstrations of several commercial performance engineering tools that support the concepts presented in the lectures.


  • Introduction to Performance Engineering
  • Measures of System Performance
  • Developing Performance Goals and Requirements
  • Methodologies for Successful Performance Projects
  • Graphical Descriptions of System Designs
  • Workload Characterization
  • Relationships Among Performance Measures
  • Bottlenecks and System Capacity
  • Summarizing Measured Data
  • Understanding Software Performance
  • An Overview of Queueing Theory
  • Analytic Solution of Queueing Models
  • The Mechanics of Simulation
  • Confidence Intervals and Experimental Run Length
  • Performance Instrumentation
  • Design of Performance Experiments
  • Tools for the Performance Analyst
  • Tips on Building Good Models
  • Distributions Used in Modeling and Load Testing
  • Validating a Performance Model
  • Presentation of Results
The Instructor


Software Engineering Jeff Brumfield is Associate Dean for Information Technology at the University of Texas at Austin.
In the past 20 years, Dr. Brumfield has taught more than 200 industry courses, served as a consultant to major corporations, and developed performance measurement and modeling tools.
Dr. Brumfield hold a PhD from Purdue University and the is recipient of six teaching excellence awards. His research interests include bottleneck analysis, analytic modeling, and simulation.





Software Engineering Requirements

Related Links

 

Design & Concept by Djordjo Vasic