Trace-driven simulation of multithreaded applications

  • Authors:
  • Alejandro Rico;Alejandro Duran;Felipe Cabarcas;Yoav Etsion;Alex Ramirez;Mateo Valero

  • Affiliations:
  • Barcelona Supercomputing Center, Centro Nacional de Supercomputacion, Barcelona, Spain;Barcelona Supercomputing Center, Centro Nacional de Supercomputacion, Barcelona, Spain;Barcelona Supercomputing Center, Centro Nacional de Supercomputacion, Barcelona, Spain;Barcelona Supercomputing Center, Centro Nacional de Supercomputacion, Barcelona, Spain;Barcelona Supercomputing Center, Centro Nacional de Supercomputacion, Barcelona, Spain;Barcelona Supercomputing Center, Centro Nacional de Supercomputacion, Barcelona, Spain

  • Venue:
  • ISPASS '11 Proceedings of the IEEE International Symposium on Performance Analysis of Systems and Software
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Over the past few years, computer architecture research has moved towards execution-driven simulation, due to the inability of traces to capture timing-dependent thread execution interleaving. However, trace-driven simulation has many advantages over execution-driven that are being missed in multithreaded application simulations. We present a methodology to properly simulate multithreaded applications using trace-driven environments. We distinguish the intrinsic application behavior from the computation for managing parallelism. Application traces capture the intrinsic behavior in the sections of code that are independent from the dynamic multithreaded nature, and the points where parallelism-management computation occurs. The simulation framework is composed of a trace-driven simulation engine and a dynamic-behavior component that implements the parallelism-management operations for the application. Then, at simulation time, these operations are reproduced by invoking their implementation in the dynamic-behavior component. The decisions made by these operations are based on the simulated architecture, allowing to dynamically reschedule sections of code taken from the trace to the target simulated components. As the captured sections of code are independent from the parallel state of the application, they can be simulated on the trace-driven engine, while the parallelism-management operations, that require to be re-executed, are carried out by the execution-driven component, thus achieving the best of both trace- and execution-driven worlds. This simulation methodology creates several new research opportunities, including research on scheduling and other parallelism-management techniques for future architectures, and hardware support for programming models.