Running experiments with BenchBuild

VaRA-TS provides different preconfigured experiments and projects. In order to execute an experiment on a project we use BenchBuild, an empirical-research toolkit.

Setup: Configuring BenchBuild

First, we need to generate a folder with a configuration file for BenchBuild in the vara root directory. This is done with:

vara-gen-bbconfig

Running BenchBuild experiments

Second, we change into the benchbuild folder and run an experiment that generates BlameReports for provided projects. In this case we use gzip.

cd $VARA_ROOT/benchbuild
benchbuild -vv run -E GenerateBlameReport gzip

The generated result files are place in the vara/results/$PROJECT_NAME folder and can be further visualized with VaRA-TS graph generators.

Running BenchBuild outside the $VARA_ROOT/benchbuild directory

To execute BenchBuild from another directory the VARA_ROOT environment variable must be set, so varats and benchbuild can locate the varats configuration file.

# temporary:
export VARA_ROOT=/path/to/your/vara/root/directory
# permanent:
echo 'export VARA_ROOT=/path/to/your/vara/root/directory' >> ~/.$(basename $0)rc

How-to configure BenchBuild yourself

BenchBuild’s configuration file .benchbuild.yml normally is placed inside the benchbuild folder, which is located in the vara root folder. A default version of this file can be automatically generated with our tool vara-gen-bbconfig. To adapt and tune BenchBuild further, you can moify the different configuration flags in this config file. The following list shows the most important ones:

  • Adding extra paths to the environment

env:
  path:
    value: ["paths from your system that should be included in the PATH variable for experiments"]
  • Other experiments or projects can be loaded similar to python imports

plugins:
experiments:
  default:
    - varats.vara-experiments.CommitAnnotationReport
    - varats.vara-experiments.RegionAnalyser
projects:
  default:
    - varats.vara-projects.git.gzip
    - pythonmodule.projectclass
  • Enable/Disable BenchBuild version support, i.e., let BB consider all revisions from a project or just the latest one.

versions:
  full:
    default: false
    desc: Ignore default sampling and provide full version exploration.
    value: true
  • Adapt the number of threads that should be used for project compilation.

jobs:
  desc: Number of jobs that can be used for building and running.
  value: '4'
  • Adapt the number of parallel running experiment executions.

parallel_processes:
  desc: Proccesses use to work on execution plans.
  value: 4