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