【问题标题】:Python Multiprocessing: How to set up the number of max_workers properly?Python Multiprocessing:如何正确设置 max_workers 的数量?
【发布时间】:2020-10-08 00:15:55
【问题描述】:

背景:我有一个包含 4000 万行的巨大 DataFrame。我必须在某些列上运行一些功能。循环花费的时间太长,所以我决定使用 Multiprocessing。 CPU:8核16线程 内存:128 GB

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

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

谢谢!

【问题讨论】:

  • 没关系,我猜的线程号对应的worker号。

标签: python multiprocessing large-data


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 2023-03-23
    • 2020-09-04
    • 1970-01-01
    • 2012-11-07
    • 2017-03-22
    • 1970-01-01
    相关资源
    最近更新 更多