Trace-driven and program-driven simulation: a comparison
Brian A. Malloy · 2002
We compare the program-driven and trace-driven approach to simulating the parallel execution of a program on a multiprocessor. To obtain the traces, we used a program-driven simulator that actually executes the instructions in an input program. Our simulator is coded in the process-oriented simulation language SimCal and is guided by a parameterized computational model that describes the target multiprocessor. We have used the program-driven multiprocessor simulator to execute parallel threads produced by our parallelizing compiler and we have validated the simulator by comparing the simulation results to results obtained through execution of the threads on an actual multiprocesser, the AT&T 3B2. To compare the trace-driven and program-driven approaches, we used the program-driven simulator to obtain traces of the execution of the threads. We conclude that the trace-driven approach is faster than the program-driven approach since it doesn't actually execute the threads. However, the trace-driven approach must store the traces and therefore requires more space than the program-driven approach.>