返回信息流我用 python 做数据处理(矩阵运算), 操作系统 ubuntu 14.04。使用原版 python 2.7.10 的时候,程序运行时只使用了一个 CPU 线程。我用 anaconda acclerate的 python 之后,无需更改任何代码,就可以使用 4 个 CPU 线程。
但是我的 CPU 是 i7 3770, 有 4核 8 线程。怎么才能让我的程序运行的时候,能够跑满 8 个 线程呢?
这是一条镜像帖。来源:北邮人论坛 / python / #7372同步于 2015/6/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
anaconda 里如何更改程序运行所使用的 CPU 核心数?
coldmoon
2015/6/12镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
【 在 nuanyangyang 的大作中提到: 】
: anaconda的文档怎么说的?
文档里这样说的。然后我找到 anaconda 里的 numbapro 目录下的 vectorizers 目录。里面有个 parallel.pyc 文件,但已经不是明文了。
下面的链接是在线文档,但都没有说明如何指定 CPU 线程数
http://docs.continuum.io/numbapro/ufuncs.html
import mkl
mkl.set_num_threads(8)
注意文档:This is only a hint, and no guaranteed is made this number of threads will actually be used.
出处:http://docs.continuum.io/mkl-service/index.html
在我的 mbp 15 上设置了8 过后是没用的。但是往小于4的值设置是有效的。
【 在 coldmoon 的大作中提到: 】
: 我用 python 做数据处理(矩阵运算), 操作系统 ubuntu 14.04。使用原版 python 2.7.10 的时候,程序运行时只使用了一个 CPU 线程。我用 anaconda acclerate的 python 之后,无需更改任何代码,就可以使用 4 个 CPU 线程。
: 但是我的 CPU 是 i7 3770, 有 4核 8 线程。怎么才能让我的程序运行的时候,能够跑满 8 个 线程呢?
【 在 golifang123 的大作中提到: 】
: import mkl
: mkl.set_num_threads(8)
: 注意文档:This is only a hint, and no guaranteed is made this number of threads will actually be used.
: ...................
谢谢,我刚在我的 mbp 13' 上试了下。
mkl.set_num_threads(4) 的话
mkl.get_max_threads() 输出是 2
只能用到两个线程.
看来 anaconda 只能用到 CPU 的核心数,用不到最大线程数。