DaskLSFBackend¶
-
class
openff.evaluator.backends.dask.
DaskLSFBackend
(minimum_number_of_workers=1, maximum_number_of_workers=1, resources_per_worker=<openff.evaluator.backends.backends.QueueWorkerResources object>, queue_name='default', setup_script_commands=None, extra_script_options=None, adaptive_interval='10000ms', disable_nanny_process=False, adaptive_class=None)[source]¶ An openff-evaluator backend which uses a dask_jobqueue.LSFCluster object to run calculations within an existing LSF queue.
See also
-
__init__
(minimum_number_of_workers=1, maximum_number_of_workers=1, resources_per_worker=<openff.evaluator.backends.backends.QueueWorkerResources object>, queue_name='default', setup_script_commands=None, extra_script_options=None, adaptive_interval='10000ms', disable_nanny_process=False, adaptive_class=None)[source]¶ Constructs a new DaskLSFBackend object
Examples
To create an LSF queueing compute backend which will attempt to spin up workers which have access to a single GPU.
>>> # Create a resource object which will request a worker with >>> # one gpu which will stay alive for five hours. >>> from openff.evaluator.backends import QueueWorkerResources >>> >>> resources = QueueWorkerResources(number_of_threads=1, >>> number_of_gpus=1, >>> preferred_gpu_toolkit=QueueWorkerResources.GPUToolkit.CUDA, >>> wallclock_time_limit='05:00') >>> >>> # Define the set of commands which will set up the correct environment >>> # for each of the workers. >>> setup_script_commands = [ >>> 'module load cuda/9.2', >>> ] >>> >>> # Define extra options to only run on certain node groups >>> extra_script_options = [ >>> '-m "ls-gpu lt-gpu"' >>> ] >>> >>> >>> # Create the backend which will adaptively try to spin up between one and >>> # ten workers with the requested resources depending on the calculation load. >>> from openff.evaluator.backends.dask import DaskLSFBackend >>> >>> lsf_backend = DaskLSFBackend(minimum_number_of_workers=1, >>> maximum_number_of_workers=10, >>> resources_per_worker=resources, >>> queue_name='gpuqueue', >>> setup_script_commands=setup_script_commands, >>> extra_script_options=extra_script_options)
Methods
__init__
([minimum_number_of_workers, …])Constructs a new DaskLSFBackend object
Returns the job script that dask will use to submit workers.
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.
Attributes
Returns whether this backend has been started yet.
-
job_script
()¶ Returns the job script that dask will use to submit workers. The backend must be started before calling this function.
- Returns
- Return type
-
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
-