0 Coz Starter Task 1 (GSoC 2015)
Charlie Curtsinger edited this page 2015-03-12 09:06:07 -04:00

Starter Task

Collect a causal profile for pbzip2. You will need to find an appropriate place to insert a progress point, compile the program from source (be sure to include debug symbols), run the program with coz a few times, and produce a profile graph. You can add a progress point by including causal.h from the coz repository and inserting CAUSAL_PROGRESS into the program's code. You should put this point somewhere in the program that you would like to happen more frequently, like just after pbzip2 finishes compressing a block of data.

You should experiment with coz's command line options for profiling scope to control where coz will try virtual speedups (see coz run --help). By default, coz will evaluate the effect of optimizations only in pbzip2 itself. You can tell coz to evaluate potential optimizations in libbz2 using profiler scope. Be sure to install debug symbols for libbz2 on your machine (on Ubuntu/Debian the command is apt-get install libbz2-dbg).

To complete this task:

  1. Build coz on your machine
  2. Insert a progress point in pbzip2
  3. Build pbzip2 with debug information
  4. Collect a causal profile from pbzip2 (may take quite a few runs)
  5. Graph the causal profile results using coz
  6. (BONUS) Collect and graph another causal profile for pbzip2, this time including potential optimizations in libbz2 instead of just the pbzip2 executable.

Keep me posted on your progress, and let me know if you run into any issues.