next up previous contents
Next: 3 Source Code Instrumentation Up: ADAPTOR Profiling Guide Previous: 1 Introduction   Contents


2 Related Work

In the first place, ADAPTOR supports event counting and does not any statistical event sampling. The later method causes periodic events to result in interrupts that record the current program counter. These program counters are then converted to the source code line number. As the sampling method would produce high overhead if every event caused an interrupt, only every n'th event causes an interrupt and thus the method becomes statistical. Though the statistical behavior has proven to be accurate enough, the sampling method can have the disadvantage that the interrupts might occur much later than the event itself. ADAPTOR uses sampling only for data profiling but then relies on a hardware support that provides precise event-based sampling.

Intel©VTune$^TM$ Performance Analyzer provides sampling technology, using processor interrupts, that identifies performance bottlenecks with negligible overhead. Call graph technology provides a high-level, algorithmic view of program execution using binary instrumentation. VTUNE comes with a graphical user interface that displays the performance data.

PAPI (Performance Application Programming Interface) [Muc01] and PCL (Performance Counter Library) [BM03] are two software packages that provide an unified access to performance counters on different platforms. These packages provide for a tool like ADAPTOR a consistent interface and methodology to use the performance counter hardware found in most major microprocessors.

Perfctr (Performance Counter) (see http://www.csd.uu.se/ mikpe/linux/perfctr/) is a package that adds support to the Linux kernel for using the Performance-Monitoring Counters (PMCs) found in many modern x86-class processors. Each Linux process has its own set of "virtual" PMCs. That is, to a process the PMCs appear to be private and unrelated to the activities of other processes in the system. On most machines, the virtual PMCs can be sampled entirely in user-space without incurring the overhead of a system call.


next up previous contents
Next: 3 Source Code Instrumentation Up: ADAPTOR Profiling Guide Previous: 1 Introduction   Contents
Thomas Brandes 2004-03-19