adaptive.AsyncRunner¶
-
class
adaptive.runner.AsyncRunner(learner, goal=None, *, executor=None, ntasks=None, log=False, shutdown_executor=False, ioloop=None, retries=0, raise_if_retries_exceeded=True)[source]¶ Bases:
adaptive.runner.BaseRunnerRun a learner asynchronously in an executor using
asyncio.- Parameters
learner (
BaseLearnerinstance) –goal (callable, optional) – The end condition for the calculation. This function must take the learner as its sole argument, and return True when we should stop requesting more points. If not provided, the runner will run forever, or until
self.task.cancel()is called.executor (
concurrent.futures.Executor, distributed.Client,) –- mpi4py.futures.MPIPoolExecutor, ipyparallel.Client or
loky.get_reusable_executor, optional
The executor in which to evaluate the function to be learned. If not provided, a new
ProcessPoolExecutor.ntasks (int, optional) – The number of concurrent function evaluations. Defaults to the number of cores available in executor.
log (bool, default: False) – If True, record the method calls made to the learner by this runner.
shutdown_executor (bool, default: False) – If True, shutdown the executor when the runner has completed. If executor is not provided then the executor created internally by the runner is shut down, regardless of this parameter.
ioloop (
asyncio.AbstractEventLoop, optional) – The ioloop in which to run the learning algorithm. If not provided, the default event loop is used.retries (int, default: 0) – Maximum amount of retries of a certain point
xinlearner.function(x). After retries is reached forxthe point is present inrunner.failed.raise_if_retries_exceeded (bool, default: True) – Raise the error after a point
xfailed retries.
-
task¶ The underlying task. May be cancelled in order to stop the runner.
- Type
-
learner¶ The underlying learner. May be queried for its state.
- Type
BaseLearnerinstance
-
log¶ Record of the method calls made to the learner, in the format
(method_name, *args).
-
to_retry¶ List of
(point, n_fails). When a point has failedrunner.retriestimes it is removed but will be present inrunner.tracebacks.- Type
list of tuples
-
tracebacks¶ List of of
(point, tb)for points that failed.- Type
list of tuples
-
pending_points¶ A list of tuples with
(concurrent.futures.Future, point).- Type
list of tuples
-
elapsed_time : callable A method that returns the time elapsed since the runner was started.
-
overhead : callable The overhead in percent of using Adaptive. This includes the overhead of the executor. Essentially, this is
100 * (1 - total_elapsed_function_time / self.elapsed_time()).
Notes
This runner can be used when an async function (defined with
async def) has to be learned. In this case the function will be run directly on the event loop (and not in the executor).-
live_info(*, update_interval=0.1)[source]¶ Display live information about the runner.
Returns an interactive ipywidget that can be visualized in a Jupyter notebook.
-
live_plot(*, plotter=None, update_interval=2, name=None, normalize=True)[source]¶ Live plotting of the learner’s data.
- Parameters
runner (
Runner) –plotter (function) – A function that takes the learner as a argument and returns a holoviews object. By default
learner.plot()will be called.update_interval (int) – Number of second between the updates of the plot.
name (hasable) – Name for the
live_plottask inadaptive.active_plotting_tasks. By default the name is None and if another task with the same name already exists that otherlive_plotis canceled.normalize (bool) – Normalize (scale to fit) the frame upon each update.
- Returns
dm – The plot that automatically updates every update_interval.
- Return type