Python多处理。如何正确设置max_workers的数量?

问题描述 投票:0回答:1

背景:我有一个巨大的DataFrame,有4000万行。我有一个巨大的DataFrame,有4000万行。我必须在一些列上运行一些函数。循环的时间太长了,所以我决定采用多进程。CPU:8核16线程 8核16线程 内存: 128GB

问题:我应该把数据分成几块?我应该把数据分成多少块?而对于这个数据集来说,多少个worker是合适的?

p.s. 我发现当我设置max_workers = 15时,所有线程都是100%运行。但如果我把max_workers改成40,它们就会下降到40%。

谢谢你

python multiprocessing large-data
1个回答
0
投票

并行计算有三种类型。如果你的线程运行在cpu密集型的任务上,那么你可以增加你的worker数量,因为你想获得更好的性能,但如果它运行在io密集型上,增加它们就没有效果了。

你似乎是在做io-cpu密集型的任务,所以如果你增加工人数量,你可以得到很好的结果,直到没有竞争使用io资源(硬盘),所以在本地机器上,增加工人数量不是一个好的选择。

你可以使用Hadoop on GPS或AWS来完成这项工作。

© www.soinside.com 2019 - 2024. All rights reserved.