Performance Debugging and Tuning using an Instruction-Set Simulator

Magnusson, Peter S. and Montelius, Johan (1997) Performance Debugging and Tuning using an Instruction-Set Simulator. [SICS Report]



Instruction-set simulators allow programmers a detailed level of insight into, and control over, the execution of a program, including parallel programs and operating systems. In principle, instruction set simulation can model any target computer and gather any statistic. Furthermore, such simulators are usually portable, independent of compiler tools, and deterministic-allowing bugs to be recreated or measurements repeated. Though often viewed as being too slow for use as a general programming tool, in the last several years their performance has improved considerably. We describe SIMICS, an instruction set simulator of SPARC-based multiprocessors developed at SICS, in its rôle as a general programming tool. We discuss some of the benefits of using a tool such as SIMICS to support various tasks in software engineering, including debugging, testing, analysis, and performance tuning. We present in some detail two test cases, where we've used SimICS to support analysis and performance tuning of two applications, Penny and EQNTOTT. This work resulted in improved parallelism in, and understanding of, Penny, as well as a performance improvement for EQNTOTT of over a magnitude. We also present some early work on analyzing SPARC/Linux, demonstrating the ability of tools like SimICS to analyze operating systems.

Item Type:SICS Report
Additional Information:NOTE: A later version of this report was published in ILPS'97
Uncontrolled Keywords:instruction set simulation, profiling, software engineering,performance debugging, SIMICS
ID Code:2235
Deposited By:Vicki Carleson
Deposited On:28 Jul 2009
Last Modified:18 Nov 2009 16:02

Repository Staff Only: item control page