Named queues#

Workers can have different capabilities. You can have workers with specific hardware

ewoksjob worker -Q cpuworker
ewoksjob worker -Q gpuworker --pool=solo
ewoksjob worker -Q slurmworker --pool=slurm

Or you can have workers with different environments

conda activate xrf; ewoksjob worker -Q xrf
conda activate xrpd; ewoksjob worker -Q xrpd

The client can then select a specific worker

submit(..., queue="xrf")

If you don’t have workers without a queue

ewoksjob worker

you can add a default queue to the celery configuration

task_default_queue = 'cpuworker'

By default a worker is identified by the name celery@<hostname>. When multiple workers run on the same host you need to provide the name yourself to avoid name collision or celery will raise a warning. For example

ewoksjob worker -Q worker1 -n worker1@mypcname
ewoksjob worker -Q worker2 -n worker2@mypcname