У меня есть задача 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
....