Назад | Перейти на главную страницу

Рабочие процессы в сельдерее

У меня есть задача Celery, интенсивно использующая процессор, и в одной из задач ее можно дополнительно распараллелить с помощью joblib. По умолчанию при запуске рабочего с сельдереем создается пул с максимальным количеством одновременных операций, равным количеству процессоров / ядер (в моем случае это 36).

Мой вопрос: при использовании этой конфигурации означает ли это, что каждый рабочий процесс будет использовать только 1 ядро ​​и не получит выгоды от распараллеливания joblib? или он будет использовать все ядра, когда в очереди воркера нет другой задачи.

Например:

@app.task  # picked by celery worker process
def a_task():
    algo = Algo(n_jobs=5)  # further parallelization in the task
    ....