mlos_bench.environments.local.local_env module

Scheduler-side benchmark environment to run scripts locally.

class mlos_bench.environments.local.local_env.LocalEnv(*, name: str, config: dict, global_config: dict | None = None, tunables: TunableGroups | None = None, service: Service | None = None)

Bases: ScriptEnv

Scheduler-side Environment that runs scripts locally.

Attributes:
parameters

Key/value pairs of all environment parameters (i.e., const_args and tunable_params).

tunable_params

Get the configuration space of the given environment.

Methods

new(*, env_name, class_name, config[, ...])

Factory method for a new environment with a given config.

pprint([indent, level])

Pretty-print the environment configuration.

run()

Run a script in the local scheduler environment.

setup(tunables[, global_config])

Check if the environment is ready and set up the application and benchmarks, if necessary.

status()

Check the status of the benchmark environment.

teardown()

Clean up the local environment.

run() Tuple[Status, datetime, Dict[str, int | float | str | None] | None]

Run a script in the local scheduler environment.

Returns:
(status, timestamp, output)(Status, datetime, dict)

3-tuple of (Status, timestamp, output) values, where output is a dict with the results or None if the status is not COMPLETED. If run script is a benchmark, then the score is usually expected to be in the score field.

setup(tunables: TunableGroups, global_config: dict | None = None) bool

Check if the environment is ready and set up the application and benchmarks, if necessary.

Parameters:
tunablesTunableGroups

A collection of tunable OS and application parameters along with their values. In a local environment these could be used to prepare a config file on the scheduler prior to transferring it to the remote environment, for instance.

global_configdict

Free-format dictionary of global parameters of the environment that are not used in the optimization process.

Returns:
is_successbool

True if operation is successful, false otherwise.

status() Tuple[Status, datetime, List[Tuple[datetime, str, Any]]]

Check the status of the benchmark environment.

Returns:
(benchmark_status, timestamp, telemetry)(Status, datetime, list)

3-tuple of (benchmark status, timestamp, telemetry) values. timestamp is UTC time stamp of the status; it’s current time by default. telemetry is a list (maybe empty) of (timestamp, metric, value) triplets.

teardown() None

Clean up the local environment.