Skip to content

Experiments

Listing Experiments

From the Web-UI

Click on the Experiments tab. This will display all available experiments that the user has access to view or edit.

From the Command Line Binary

This will display a list of all available experiments: it is run as a root user.

$> phenix exp list

Starting / Stopping Experiments

From the Web-UI

Clicking the stopped button will start the experiment; similarly the started button will stop the experiment. A progress bar is used to update the progress of starting an experiment. During the update to the experiment -- starting or stopping -- it will not be accessible or available to delete.

From the Command Line Binary

$> phenix exp start <experiment name>
Or ...
$> phenix exp stop <experiment name>
Or ...
$> phenix exp restart <experiment name>

Optionally, you can use the --dry-run flag to do everything except call out to minimega.

The phenix exp --help command will output:

Experiment management

Usage:
  phenix experiment [flags]
  phenix experiment [command]

Aliases:
  experiment, exp

Available Commands:
  apps            List of available apps to assign an experiment
  create          Create an experiment
  delete          Delete an experiment
  edit            Edit an experiment
  list            Display a table of available experiments
  reconfigure     Reconfigure an experiment
  restart         Restart an experiment
  schedule        Schedule an experiment
  schedulers      List of available schedulers to assign an experiment
  scorch          Start a Scorch run for experiment
  start           Start an experiment
  stop            Stop an experiment
  trigger-running Trigger running stage for app(s) in experiment

Flags:
  -h, --help   help for experiment

Global Flags:
      --base-dir.minimega string     base minimega directory (default "/tmp/minimega")
      --base-dir.phenix string       base phenix directory (default "/phenix")
      --bridge-mode string           bridge naming mode for experiments ('auto' uses experiment name for bridge; 'manual' uses user-specified bridge name, or 'phenix' if not specified) (options: manual | auto)
      --deploy-mode string           deploy mode for minimega VMs (options: all | no-headnode | only-headnode)
      --hostname-suffixes string     hostname suffixes to strip (default "-minimega,-phenix")
      --log.console string           output for console logs (text format) (stderr, stdout, or file path) (default "stderr")
      --log.level string             level to log messages at (default "info")
      --log.system.max-age int       maximum number of days to retain old log files (default 90)
      --log.system.max-backups int   maximum number of old log files to retain (default 3)
      --log.system.max-size int      maximum size in megabytes of the log file before it gets rotated (default 100)
      --log.system.path string       path to system log (JSON format) (default "/var/log/phenix/phenix.log")
      --store.endpoint string        endpoint for storage service (default "bolt:///etc/phenix/store.bdb")
      --unix-socket string           phēnix unix socket to listen on (ui subcommand) or connect to (default "/tmp/phenix.sock")
      --use-gre-mesh                 use GRE tunnels between mesh nodes for VLAN trunking

Use "phenix experiment [command] --help" for more information about a command.

Create a New Experiment

From the Web-UI

screenshot

Click the + button to the right of the filter field.

screenshot

Enter Experiment Name and Experiment Topology, the remaining selection are optional. In this example, bennu is an example topology and is not included by default. You will need to create your own topology(ies).

From the Command Line Binary

Three options are available from the command line. The only requirements are for an experiment and topology name; scenario and base directory are optional.

$> phenix experiment create <experiment name> -t <topology name>
$> phenix experiment create <experiment name> -t <topology name> -s <scenario name>
$> phenix experiment create <experiment name> -t <topology name> -s <scenario name> -d </path/to/dir/>`

The phenix exp create --help command will output:

Create an experiment

  Used to create an experiment from an existing configuration; can be a 
  topology, or topology and scenario. (Optional are the arguments for scenario 
  or base directory.)

Usage:
  phenix experiment create <experiment name> [flags]

Examples:

  phenix experiment create <experiment name> -t <topology name>
  phenix experiment create <experiment name> -t <topology name> -s <scenario name>
  phenix experiment create <experiment name> -t <topology name> -s <scenario name> -d </path/to/dir/>

Flags:
  -d, --base-dir string   Base directory to use for experiment (optional)
  -h, --help              help for create
  -s, --scenario string   Name of an existing scenario to use (optional)
  -t, --topology string   Name of an existing topology to use

Global Flags:
      --base-dir.minimega string   base minimega directory (default "/tmp/minimega")
      --base-dir.phenix string     base phenix directory (default "/phenix")
      --hostname-suffixes string   hostname suffixes to strip
      --log.error-file string      log fatal errors to file (default "/root/.phenix.err")
      --log.error-stderr           log fatal errors to STDERR
      --store.endpoint string      endpoint for storage service (default "bolt:///root/.phenix.bdb")

Scheduling an Experiment

From Web-UI

The experiment must be stopped; click on the experiment name to enter the Stopped Experiment component. Click on the hamburger menu to the right of the filter field and start button to select a desired schedule.

screenshot

From the Command Line Binary

The list of available schedules can be found by running the following command.

$> phenix exp schedulers

Then apply the desired schedule with the following command.

$> phenix experiment schedule <experiment name> <algorithm>