mlos_bench.environments.script_env

Base scriptable benchmark environment.

TODO: Document how variable propogation works in the script environments using shell_env_params, required_args, const_args, etc.

Classes

ScriptEnv

Base Environment that runs scripts for the different phases (e.g.,

Module Contents

class mlos_bench.environments.script_env.ScriptEnv(*, name: str, config: dict, global_config: dict | None = None, tunables: mlos_bench.tunables.tunable_groups.TunableGroups | None = None, service: mlos_bench.services.base_service.Service | None = None)[source]

Bases: mlos_bench.environments.base_environment.Environment

Base Environment that runs scripts for the different phases (e.g., Environment.setup(), Environment.run(), Environment.teardown(), etc.)

Create a new environment for script execution.

Parameters:
  • name (str) – Human-readable name of the environment.

  • config (dict) –

    Free-format dictionary that contains the benchmark environment configuration. Each config must have at least the tunable_params and the const_args sections. It must also have at least one of the following parameters: {setup, run, teardown}. Additional parameters:

    • shell_env_params - an array of parameters to pass to the script

      as shell environment variables, and

    • shell_env_params_rename - a dictionary of {to: from} mappings

      of the script parameters. If not specified, replace all non-alphanumeric characters with underscores.

    If neither shell_env_params nor shell_env_params_rename are specified, no additional shell parameters will be passed to the script.

  • global_config (dict) – Free-format dictionary of global parameters (e.g., security credentials) to be mixed in into the “const_args” section of the local config.

  • tunables (TunableGroups) – A collection of tunable parameters for all environments.

  • service (Service) – An optional service object (e.g., providing methods to deploy or reboot a VM, etc.).