Manifest of Trend Profiler
Other documents in this directory that you will want to consult.
Points the user to the real documentation.
Lists all the files in the project and explains what each one does.
Documents the structure of a Trend Profile.
Sets up new Trend Profiles, profdirs, via "make
profdir/your_path_here". Runs a simple test via "make test".
Drives the data gathering and analysis. Symlinked into new profdirs as
"Makefile". Contains paths to some programs that trend-prof needs.
Included by Config.mk to drive the various trend-prof
scripts. You can think of this file as containing the bulk of the code in
trend-prof's main() function.
Step 0: Attempts to match gcov metadata in your obj directory to
their corresponding source files. After step 0 is the last place
where user intervention may be required.
Step 1: Runs your workloads. Saves gcov coverage data for each
workload for each source file.
Step 2: Extracts data from the gcov coverage data and stores it in
a more useful format.
Step 3: Fits the data for each basic block to several models.
Step 4: Generates an html view of the results of profiling.
Runs a simple web server that allows on-demand generation of much of
trend-prof's output. The initial run of trend-prof runs all of
your workloads, fits the data to models, and generates a summary page. When you
view the summary page through this server, asking for subsequent pages will cause
this script to generate them.
Creates a workloads file based on the files in a directory
filtered by a perl-style regular expression command-line argument. See the documentation or
schema.html for details on workloads files.
A quick and dirty script that creates a workloads file based on the output of
Some library functions that the different steps share.
Computes "clusters" of locations that exhibit similar execution counts. This
functionality is still under development.
Dumps out execution counts in a matrix form suitable for consumption by such programs
as R or matlab.
If this file is present in the same directory as the perl scripts, then the
scripts will be more verbose about reporting strange situations and more aggressive
about failing with an error message whenever something suspicious happens.
Without this file trend-prof just keeps going and generally
pretends that the strange thing does not exist.
An example Trend Profile
demonstrating trend-prof being used to profile quick sort.
An example use of trend-prof to profile bubble sort. This
example is subtly incorrect use of trend-prof; in particular,
notice that trend-prof predicts that line 19 will be executed
(input size)^1.84 times even though bubble sort is quadratic in the
size of its input. If you understand why, you'll get more out of
trend-prof (hint: what's the input size?).