【发布时间】:2019-09-26 07:05:16
【问题描述】:
我有一个 CPU 密集型 Celery 任务,在其中一项任务中,它可以使用 joblib 进一步并行化。默认情况下,使用 celery 启动 worker,将创建一个最大并发数等于 CPU/核心数(在我的情况下为 36)的池。
我的问题是,使用这种配置,是否意味着每个工作进程将只有 1 个核心可以使用,并且不会从 joblib 的并行化中受益?或者当worker队列中没有其他任务时它会使用所有核心。
例如:
@app.task # picked by celery worker process
def a_task():
algo = Algo(n_jobs=5) # further parallelization in the task
....
【问题讨论】: