首页 > 解决方案 > 如何并行化每次迭代都是并行化作业的for循环

问题描述

我想知道是否有人有并行化 for 循环的经验,其中每次迭代都是使用 python 中的多处理库的并行化函数。我试图再次使用多处理库并行化循环,但似乎该库不允许子工作者创建多处理作业。我应该考虑python中的其他并行库吗?以下是每次迭代的代码。训练数据框将在迭代之间变化。谢谢。

params = {}
pool = Pool(64)
print('---start params calculation--')
train_parallel = train[parallel_cols].copy()
start = time.time()
params = pool.starmap(proc.cal_params, zip(repeat(train_parallel), repeat(policy_segs), repeat(day_to_cum), daily_limits))  # process data_inputs iterable with pool
print(time.time() - start)
params = {key:value for element in params for key, value in element.items()}
print('---end params calculation--')
pool.close()

标签: pythonparallel-processingmultiprocessingdask

解决方案


推荐阅读