【问题标题】:Make python use more resources in calculations让python在计算中使用更多资源
【发布时间】:2013-06-14 09:27:54
【问题描述】:

您好,我正在尝试使用 python 进行一些矩阵计算。问题是进程消耗多少 CPU 似乎是有限制的(大约是我的 Core i7 的 13%)。

有没有办法让它使用更多资源?

【问题讨论】:

  • 我认为没有办法通过 python 做到这一点,尽管我也相信 CPU 使用没有限制。 (尝试进入无限循环,您的 CPU 使用率将达到 100%) 但是,如果您需要更多的功率,请考虑在 Cython 中实现您的算法。
  • 我认为您在单核上运行,并且使用率达到 100%。尝试多线程。
  • 你如何定义 13% 的 CPU 使用率,是 13% 的一个核心还是 13% 的 4+4 核心(因为 1/8 = 0.125...)... python interpeter在一个线程中运行,所以你不能(对我的知识)获得高于 1 个核心的 100%...但是,如果你使用 numpy 进行矩阵计算,你可以获得 10-100 的加速:)
  • @azorius 作为进程资源管理器定义它.. 我刚刚查看了那里的 CPU 列...
  • i7 可能是超线程的四核,相当于 8 核,1 / 8 = 0.125 ~= 13%。你肯定在运行一个单核。如果可能的话,你应该看看多处理。

标签: python performance python-2.7 cpu-usage approximation


【解决方案1】:

正如 cmets 中的人所指出的,您只在 8 个(4 个物理,4 个虚拟)核心之一上运行。

如果您不是为了编程练习而这样做,而是对 Python 中的数值编程或数据分析非常感兴趣,那么您可能需要仔细研究一下 numpy.该包提供了快速的数组/向量/矩阵类型并对其进行操作,并且(据说)可以进行多线程点积(参见multithreaded blas in python/numpy)。

【讨论】:

  • 不应该是“4物理”吗?
  • 为清晰起见进行了编辑。嗯,4 个物理核心,4 个虚拟核心 = 8 个总核心......不确定这是否是正确的命名......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-28
  • 2016-12-14
  • 2016-03-02
  • 1970-01-01
  • 2011-12-15
相关资源
最近更新 更多