Python多处理:如何正确设置max_worker的数量?

2024-05-06 07:30:25 发布

您现在位置:Python中文网/ 问答频道 /正文

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

问题:我应该将数据分成多少块?对于这个数据集,有多少工人是合适的

另外,我发现当我设置max_workers=15时,所有线程都在100%运行。但是如果我把最高工人数改为40,他们就会下降到40%

谢谢大家!


Tags: 数据函数内存时间cpu线程max背景
1条回答
网友
1楼 · 发布于 2024-05-06 07:30:25

并行计算有三种类型。这些是io密集型、cpu密集型和io cpu密集型计算。 若您的线程运行在cpu密集型任务上,那个么您可以增加工作线程的数量,以获得更好的性能。 但是如果它是在io密集型上运行的,那么增加它们将没有任何效果

您似乎正在处理io cpu密集型任务。 所以,如果您增加工作人员数量,您可以获得良好的结果,直到没有竞争使用io资源(硬盘) 所以在本地机器中。增加工人人数不是一个好的选择

您可以在GPS或AWS上使用Hadoop进行此项工作

相关问题 更多 >