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)

An enumeration of the different precision for GPU calculations.

class GPUToolkit(value)

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