【问题标题】:Python2.7 Only Using 25% of CPU MacBook ProPython2.7 仅使用 25% 的 CPU MacBook Pro
【发布时间】:2016-02-14 01:27:22
【问题描述】:

我正在运行 MacBook Pro:

我正在通过 Anaconda 安装 python2.7。

Last login: Wed Nov 11 21:41:33 on ttys002
Matthews-MacBook-Pro:~ matthewdunn$ python
Python 2.7.10 |Anaconda 2.4.0 (x86_64)| (default, Oct 19 2015, 18:31:17) 
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> 

我的程序在 Jupyter Notebook Viewer 中,并且正在通过活动监视器确认安装 Anaconda 运行。

当我尝试从 http://scikit-learn.org/stable/ 训练一个 SVM 模型时,我需要几个小时和其他同学 15 分钟,而且没有人为他们的程序构建多处理/线程。

我认为我的代码不是问题,因为当我将 SVM 模型拟合到 2000 条记录时,仍然需要很长时间来处理。

问题:

  1. 有没有办法默认和安装 python 总是 默认使用所有可用的 CPU 还是总是需要 在程序中定义?
  2. MacBook Pro 有什么变化吗 硬件,因为我买了我的电脑,这将确保 python 消耗所有可用的 CPU 资源?

【问题讨论】:

  • Python 默认是单线程的,所以只会使用一个核心的处理器能力。你有没有试过在你的机器上运行你同学的代码,反之亦然,以验证它确实不是你的代码?
  • @jonrsharpe - 我今天要去上课做这件事。我只是想把这个贴出来。我认为我关于如何默认多处理的问题很有趣,我想知道这是否可能......
  • 你会如何“默认多处理”?由开发人员决定何时拆分和合并计算的额外开销值得由于并行化而可能减少整体运行时间。

标签: python-2.7 numpy scikit-learn anaconda


【解决方案1】:

您已经得到答案,python 仅限于 CPU 的一个核心。使用四核 CPU,您最终会获得 25% 的整体 CPU 负载。

如果您想同时使用多个内核,则需要使用并行 python 等模块。

这是允许并行处理的库列表 https://wiki.python.org/moin/ParallelProcessing

【讨论】:

  • 我同意你的回答。有一些 scikit-learn 包包含并行实现。这些将允许您传递关键字参数 n_jobs=-1 以使用所有 CPU,通常在构造函数中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 2013-10-11
  • 1970-01-01
  • 1970-01-01
  • 2011-04-17
相关资源
最近更新 更多