Trace Alignment

Trace alignment enables reasoning across traces of performance metrics collected in multiple executions.

Traces of system behavior are a common artifact used to analyze the performance of computer systems. Due to the many sources of non-determinism in today's systems, running the same experiment twice will usually lead to significantly different traces. Trace alignment is a technique that allows the reasoning between multiple such traces. It overcomes the time dilation between two traces by aligning the traces along their time axes.

The above figure shows three traces of the execution of a Java application (SPEC JVM98 db). The x axis represents time, while the y axis shows the IPC (instructions-per-cycle, a hardware performance metric). Given the shaded time interval in the top trace, trace alignment is capable of finding the corresponding time intervals in the other traces, even though they are considerably shifted along the time axis.