QueueWorkerResources

class openff.evaluator.backends.QueueWorkerResources(number_of_threads=1, number_of_gpus=0, preferred_gpu_toolkit=None, preferred_gpu_precision=None, per_thread_memory_limit=1 * unit.gigabytes, wallclock_time_limit='01:00')[source]

An extended resource object with properties specific to calculations which will run on queue based resources, such as LSF, PBS or SLURM.

__init__(number_of_threads=1, number_of_gpus=0, preferred_gpu_toolkit=None, preferred_gpu_precision=None, per_thread_memory_limit=1 * unit.gigabytes, wallclock_time_limit='01:00')[source]

Constructs a new ComputeResources object.

Notes

Both the requested number_of_threads and the number_of_gpus must be less than or equal to the number of threads (/cpus/cores) and GPUs available to each compute node in the cluster respectively, such that a single worker is able to be accommodated by a single compute node.

Parameters
  • per_thread_memory_limit (openmm.unit.Quantity) – The maximum amount of memory available to each thread.

  • wallclock_time_limit (str) – The maximum amount of wall clock time that a worker can run for. This should be a string of the form HH:MM where HH is the number of hours and MM the number of minutes

Methods

__init__([number_of_threads, ...])

Constructs a new ComputeResources object.

Attributes

gpu_device_indices

The indices of the GPUs to run on.

number_of_gpus

The number of GPUs available to a calculation worker.

number_of_threads

The number of threads available to a calculation worker.

per_thread_memory_limit

The maximum amount of memory available to each thread, such that the total memory limit will be per_cpu_memory_limit * number_of_threads.

preferred_gpu_precision

The preferred precision level to use when running on GPUs.

preferred_gpu_toolkit

The preferred toolkit to use when running on GPUs.

wallclock_time_limit

The maximum amount of wall clock time that a worker can run for.

property per_thread_memory_limit

The maximum amount of memory available to each thread, such that the total memory limit will be per_cpu_memory_limit * number_of_threads.

Type

openmm.unit.Quantity

property wallclock_time_limit

The maximum amount of wall clock time that a worker can run for. This should be a string of the form HH:MM where HH is the number of hours and MM the number of minutes

Type

str

class GPUPrecision(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

An enumeration of the different precision for GPU calculations.

class GPUToolkit(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

An enumeration of the different GPU toolkits to make available to different calculations.

property gpu_device_indices

The indices of the GPUs to run on. This is purely an internal implementation detail and should not be relied upon externally.

Type

str

property number_of_gpus

The number of GPUs available to a calculation worker.

Type

int

property number_of_threads

The number of threads available to a calculation worker.

Type

int

property preferred_gpu_precision

The preferred precision level to use when running on GPUs.

Type

GPUPrecision

property preferred_gpu_toolkit

The preferred toolkit to use when running on GPUs.

Type

GPUToolkit