【问题标题】:Assigning Multiple Cores to a Python Program为 Python 程序分配多个内核
【发布时间】:2011-05-30 00:42:38
【问题描述】:

我注意到,当我运行高度依赖 CPU 的 Python 程序时,它只使用一个内核。运行时是否可以为程序分配多个内核?

【问题讨论】:

    标签: python parallel-processing cpu-cores


    【解决方案1】:

    您必须针对多个内核进行显式编程。有关 Python 中的许多并行处理解决方案,请参阅 this page 上的对称多处理选项。如果您不想比较选项,Parallel Python 是一个不错的选择,请查看示例 here

    虽然有些问题不能利用多核。想一想如何在三个朋友的帮助下更快地跑上楼梯。不会发生的!

    【讨论】:

      【解决方案2】:

      如果您的问题的任何部分可以并行运行,您应该查看multiprocessing module

      【讨论】:

        【解决方案3】:

        我想知道为什么还没有人提到 CPython 的 GIL(全局解释器锁)。这基本上意味着一个 Python 解释器中的多个线程不能使用多核的功能,因为许多操作都受到全局锁的保护,以实现线程安全。这仅适用于少量应用程序——CPU 密集型应用程序。更多信息,只要搜索“GIL”这个词,已经有很多问题了(比如that one)。

        这个答案当然假设您实际上正在使用多个线程,否则您将无法使用多个内核(multiprocessing 是另一种可能性)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多