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



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

问:我应该将数据分解为多少个块?有多少工人适合这个数据集?

附言我发现当我设置 max_workers = 15 时,所有线程都在 100% 运行。但是如果我将max_workers更改为 40,它们就会下降到 40%。

谢谢!

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

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

您可以使用 GPS 或 AWS 上的 Hadoop 来完成这项工作。

相关内容

  • 没有找到相关文章

最新更新