DaskLSFBackend
- class openff.evaluator.backends.dask.DaskLSFBackend(minimum_number_of_workers=1, maximum_number_of_workers=1, resources_per_worker=QueueWorkerResources(), 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=QueueWorkerResources(), 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, >>> preferred_gpu_precision=QueueWorkerResources.GPUPrecision.mixed, >>> 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.
- Return type