@-Variables

@-variables are placeholder variables that can be used in the experiments.yml file. They are enclosed by at signs, i.e. @...@ and get resolved during runtime.

For example: In order to avoid the duplication of command line arguments of experiments for each instance, e.g. experiment.py /path/to/instance1, experiment.py /path/to/instance2, … we use the @INSTANCE@ variable that resolves to the respective paths of the instances. Then, we only need to specify experiments.py @INSTANCE@ as experiment arguments.

Below, we list all @-variables and where they can be used.

  • @BASE_DIR@: path of the directory containing the experiments.yml
  • @COMPILE_DIR_FOR:<build_name>@: compilation directory of <build_name> in the same revision
  • @EXTRA_ARGS@: extra arguments of all variants and the instance of an experiment
  • @INSTANCE@: path of a local/remote instance, i.e. /instance_directory/<instance_name>
  • @INSTANCE_DIR@: path of the Instance Directory
  • @INSTANCE:<ext>@: path of a Multiple Extensions instance with extension <ext>, i.e. /instance_directory/<instance_name>.<ext>
  • @INSTANCE:<idx>@: path of an Arbitrary Input Files instance with index <idx> in the files key, i.e. /instance_directory/files[<idx>]
  • @INSTANCE_FILENAME@: filename of the instance
  • @OUTPUT@: path to the output file of an experiment
  • @OUTPUT:<ext>@: path to the output file with extension <ext> of an experiment
  • @OUTPUT_SUBDIR@: output subdirectory of the experiment where the output and status files are stored, i.e. /path_to_experiments_yml/output/
  • @PARALLELISM@: number of available CPUs
  • @PREFIX_DIR_FOR:<build_name>@: installation directory of <build_name> in the same revision
  • @REPETITION@: repetition number of this experiment
  • @SOURCE_DIR_FOR:<build_name>@: source directory of <build_name> in the same revision
  • @THIS_CLONE_DIR@: Deprecated for @THIS_SOURCE_DIR@
  • @THIS_COMPILE_DIR@: compilation directory of this build
  • @THIS_PREFIX_DIR@: installation directory of this build
  • @THIS_SOURCE_DIR@: source directory of this build

Builds

compile

The following @-variables can be used in the compile key:

  • @BASE_DIR@
  • @COMPILE_DIR_FOR:<build_name>@
  • @INSTANCE_DIR@
  • @PARALLELISM@
  • @PREFIX_DIR_FOR:<build_name>@
  • @SOURCE_DIR_FOR:<build_name>@
  • @THIS_CLONE_DIR@ (deprecated for @THIS_SOURCE_DIR@)
  • @THIS_COMPILE_DIR@
  • @THIS_PREFIX_DIR@
  • @THIS_SOURCE_DIR@

configure

Same as for the compile key.

environ

The values of the environ key will be substituted and the @-variables are the same as for the compile key.

extra_paths

Same as for the compile key without the @PARALLELISM@ variable.

install

Same as for the compile key.

regenerate

Same as for the compile key.

workdir

Same as for the compile key.

Experiments

args

The following @-variables can be used in the args key:

  • @BASE_DIR@
  • @COMPILE_DIR_FOR:<build_name>@ (<build> has to be in used_builds or be required by a build in it)
  • @EXTRA_ARGS@
  • @INSTANCE@
  • @INSTANCE_DIR@
  • @INSTANCE:<ext>@
  • @INSTANCE:<idx>@
  • @OUTPUT@
  • @OUTPUT:<ext>@
  • @OUTPUT_SUBDIR@
  • @PREFIX_DIR_FOR:<build_name>@ (<build_name> has to be in used_builds or be required by a build in it)
  • @REPETITION@
  • @SOURCE_DIR_FOR:<build_name>@ (<build_name> has to be in used_builds or be required by a build in it)

workdir

Same as for the args key without the @EXTRA_ARGS@ variable.

Instances

url

The following @-variables can be used in the url key:

  • @INSTANCE_FILENAME@