smac.tae.serial_runner¶
Classes
|
Interface to submit and collect a job in a serial fashion. |
- class smac.tae.serial_runner.SerialRunner(ta, stats, multi_objectives=['cost'], run_obj='runtime', par_factor=1, cost_for_crash=2147483647.0, abort_on_first_run_crash=True)[source]¶
Bases:
smac.tae.base.BaseRunner
Interface to submit and collect a job in a serial fashion.
It dictates what a worker should do to convert a configuration/instance/seed to a result.
This class is expected to be extended via the implementation of a run() method for the desired task.
- results¶
- ta¶
- stats¶
- run_obj¶
- par_factor¶
- cost_for_crash¶
- abort_i_first_run_crash¶
- Parameters
ta (list) – target algorithm command line as list of arguments
stats (Stats()) – stats object to collect statistics about runtime and so on
multi_objectives (List[str]) – names of the objectives, by default it is a single objective parameter “cost”
run_obj (str) – run objective of SMAC
par_factor (int) – penalization factor
cost_for_crash (float) – cost that is used in case of crashed runs (including runs that returned NaN or inf)
abort_on_first_run_crash (bool) – if true and first run crashes, raise FirstRunCrashedException
- get_finished_runs()[source]¶
This method returns any finished configuration, and returns a list with the results of exercising the configurations. This class keeps populating results to self.results until a call to get_finished runs is done. In this case, the self.results list is emptied and all RunValues produced by running self.run() are returned.
- pending_runs()[source]¶
Whether or not there are configs still running.
Generally if the runner is serial, launching a run instantly returns it’s result. On parallel runners, there might be pending configurations to complete.
- Return type
bool
- run(config, instance, cutoff=None, seed=12345, budget=None, instance_specific='0')[source]¶
Runs target algorithm <self.ta> with configuration <config> on instance <instance> with instance specifics.
<specifics> for at most.
<cutoff> seconds and random seed <seed>
This method exemplifies how to defined the run() method
- Parameters
config (Configuration) – dictionary param -> value
instance (string) – problem instance
cutoff (float, optional) – Wallclock time limit of the target algorithm. If no value is provided no limit will be enforced.
seed (int) – random seed
budget (float, optional) – A positive, real-valued number representing an arbitrary limit to the target algorithm. Handled by the target algorithm internally
instance_specific (str) – instance specific information (e.g., domain file or solution)
- Return type
Tuple
[StatusType
,float
,float
,Dict
]- Returns
status (enum of StatusType (int)) – {SUCCESS, TIMEOUT, CRASHED, ABORT}
cost (float) – cost/regret/quality (float) (None, if not returned by TA)
runtime (float) – runtime (None if not returned by TA)
additional_info (dict) – all further additional run information
- submit_run(run_info)[source]¶
This function submits a run_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
run_info (RunInfo) – An object containing the configuration and the necessary data to run it
- Return type
None