class adaptive.BlockingRunner(learner, goal, *, executor=None, ntasks=None, log=False, shutdown_executor=False, retries=0, raise_if_retries_exceeded=True)[source]#

Bases: adaptive.runner.BaseRunner

Run a learner synchronously in an executor.

  • learner (BaseLearner instance) –

  • goal (callable) – 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.

  • 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 on Linux, and a loky.get_reusable_executor on MacOS and Windows.

  • 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.

  • retries (int, default: 0) – Maximum amount of retries of a certain point x in learner.function(x). After retries is reached for x the point is present in runner.failed.

  • raise_if_retries_exceeded (bool, default: True) – Raise the error after a point x failed retries.


The underlying learner. May be queried for its state.


BaseLearner instance


Record of the method calls made to the learner, in the format (method_name, *args).


list or None


List of (point, n_fails). When a point has failed runner.retries times it is removed but will be present in runner.tracebacks.


list of tuples


List of of (point, tb) for points that failed.


list of tuples


A list of tuples with (concurrent.futures.Future, point).


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()).


Return the total time elapsed since the runner was started.