# PropertyEstimatorBackend

class `propertyestimator.backends.``PropertyEstimatorBackend`(number_of_workers=1, resources_per_worker=<propertyestimator.backends.backends.ComputeResources object>)

  An abstract base representation of a property estimator backend. A backend is responsible for coordinating, distributing and running calculations on the available hardware. This may range from a single machine to a multinode cluster, but not accross multiple cluster or physical locations.

  Notes

  All estimator backend classes must inherit from this class, and must implement the start, stop, and submit_task method.

  `__init__`(number_of_workers=1, resources_per_worker=<propertyestimator.backends.backends.ComputeResources object>)

    Constructs a new PropertyEstimatorBackend object.

    Parameters

      - number_of_workers (int) – The number of works to run the calculations on. One worker can perform a single task (e.g run a simulation) at once.

      - resources_per_worker (ComputeResources) – The number of resources to request per worker.

  Methods

  `__init__`([number_of_workers, …]) | Constructs a new PropertyEstimatorBackend object.
  `start`() | Start the calculation backend.
  `stop`() | Stop the calculation backend.
  `submit_task`(function, *args, **kwargs) | Submit a task to the compute resources managed by this backend.

  `start`()

    Start the calculation backend.

  `stop`()

    Stop the calculation backend.

  `submit_task`(function, *args, **kwargs)

    Submit a task to the compute resources managed by this backend.

    Parameters

      function (function) – The function to run.

    Returns

      Returns a future object which will eventually point to the results of the submitted task.

    Return type

      Future