Departmental Papers (CIS)

Date of this Version

February 2003

Document Type

Journal Article


Copyright 2003 IEEE. Reprinted from IEEE Computer, Volume 36, Issue 2, Feb 2003, pages 50-57.

This material is posted here with permission of the IEEE. Such permission of the IEEE does not in any way imply IEEE endorsement of any of the University of Pennsylvania's products or services. Internal or personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution must be obtained from the IEEE by writing to By choosing to view this document, you agree to all provisions of the copyright laws protecting it.

NOTE: At the time of publication, author Milo Martin was affiliated with the University of Wisconsin. Currently (March 2007), he is a faculty member in the Department of Computer and Information Science at the University of Pennsylvania.


The Internet has made database management systems and Web servers integral parts of today’s business and communications infrastructure. These and other commercial transaction-processing applications work with critical personal and business data—storing it, providing access to it, and manipulating it. As dependence on these applications increases, so does the need for them to run reliably and efficiently. Our group at the University of Wisconsin ( researches innovative ways to improve the performance of the multiprocessor servers that run these important commercial applications.

Execution-driven simulation is a design evaluation tool that models system hardware. These simulations capture actual program behavior and detailed system interactions. They are more flexible and less expensive than hardware prototypes, and they model important system details more accurately than analytic modeling does. However, the combination of large systems and demanding workloads is difficult to simulate, especially on the inexpensive machines available to most researchers. Commercial workloads, unlike simpler workloads, rely heavily on operating system services such as input/output, process scheduling, and interprocess communication. To run commercial workloads correctly, simulators must model these services. In addition, multiprocessor servers introduce the challenges of interactions among processors, large main memories, and many disks.

To make effective use of limited simulation resources, researchers must balance three goals:

• developing a representative approximation of large workloads,
• achieving tractable simulation times, and
• simulating a sufficient level of timing detail.

We developed a simulation methodology to achieve these goals. Our methodology uses multiple simulations, pays careful attention to scaling effects on workload behavior, and extends VirtutechAB’s Simics full-system functional simulator with detailed timing models.



Date Posted: 26 March 2007

This document has been peer reviewed.