Abstract serial runner
    
    
              Bases: AbstractRunner
Source code in smac/runner/abstract_runner.py
                    
abstractmethod
  
#
run(
    config: Configuration,
    instance: str | None = None,
    budget: float | None = None,
    seed: int | None = None,
) -> tuple[
    StatusType, float | list[float], float, float, dict
]
Runs the target function with a configuration on a single instance-budget-seed combination (aka trial).
Parameters#
config : Configuration Configuration to be passed to the target function. instance : str | None, defaults to None The Problem instance. budget : float | None, defaults to None A positive, real-valued number representing an arbitrary limit to the target function handled by the target function internally. seed : int, defaults to None
Returns#
status : StatusType Status of the trial. cost : float | list[float] Resulting cost(s) of the trial. runtime : float The time the target function took to run. cpu_time : float The time the target function took on hardware to run. additional_info : dict All further additional trial information.
Source code in smac/runner/abstract_runner.py
              
run_wrapper(
    trial_info: TrialInfo,
    **dask_data_to_scatter: dict[str, Any]
) -> tuple[TrialInfo, TrialValue]
Wrapper around run() to execute and check the execution of a given config. This function encapsulates common handling/processing, so that run() implementation is simplified.
Parameters#
trial_info : RunInfo Object that contains enough information to execute a configuration run in isolation. dask_data_to_scatter: dict[str, Any] When a user scatters data from their local process to the distributed network, this data is distributed in a round-robin fashion grouping by number of cores. Roughly speaking, we can keep this data in memory and then we do not have to (de-)serialize the data every time we would like to execute a target function with a big dataset. For example, when your target function has a big dataset shared across all the target function, this argument is very useful.
Returns#
info : TrialInfo An object containing the configuration launched. value : TrialValue Contains information about the status/performance of config.
Source code in smac/runner/abstract_runner.py
              
submit_trial(trial_info: TrialInfo) -> None
This function submits a trial_info object in a serial fashion. As there is a single
 worker for this task, this interface can be considered a wrapper over the run method.
Both result/exceptions can be completely determined in this step so both lists are properly filled.
Parameters#
trial_info : TrialInfo An object containing the configuration launched.
Source code in smac/runner/abstract_serial_runner.py
              
    The SMBO/intensifier might need to wait for trials to finish before making a decision. For serial runners, no wait is needed as the result is immediately available.