【问题标题】:Multiprocessing a python script多处理 python 脚本
【发布时间】:2015-06-15 09:19:31
【问题描述】:

我了解了python中的多处理工具:https://docs.python.org/2/library/multiprocessing.html

假设我有一个复杂且充实的 python 程序,但它在运行时并没有耗尽我所有的内核。所以它使用 100% 的一个核心并且需要很长时间才能完成。我很难进入程序代码并弄清楚如何手动拆分进程,只是程序太复杂了。

是否可以编写一个简单的 python 脚本,在我指定的任何 python 程序上启用多处理?确切地说,我想要这样简单的东西:

from multiprocessing import Process

Process(myprogram.py)

如果没有,是否有次优方法?

【问题讨论】:

  • 是否可以同时运行多个实例?它是读取还是写入数据?
  • 如果有问题的程序在某些数据集上进行处理,并且无法通知程序处理较小的数据集块;答案是否定的。(软件开发几乎从来没有灵丹妙药!)。
  • @JamesMills 好吧,所以我肯定需要指定块。这令人失望,但也是我的实际预期。
  • 程序做什么并不重要;但是您需要能够启动 N 个不同的进程,这些进程开始处理 M 个不同的输入数据块。
  • 那么不可能同时运行多个程序实例。读取或写入数据时迟早会发生冲突。

标签: python parallel-processing multiprocessing python-multiprocessing


【解决方案1】:

经过讨论,直接的答案是:

没有。

仅仅是因为多处理并不是什么神奇的技巧,可以自动将一个处理器的负担转移到另一个处理器上。开发人员需要知道程序应该如何拆分任务,并指定每个任务应该占用一个新进程。

因此,最终,您必须控制自己的代码才能产生适当且高效的多处理。

【讨论】:

    猜你喜欢
    • 2019-07-01
    • 2017-11-17
    • 1970-01-01
    • 2019-08-14
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    相关资源
    最近更新 更多