前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python性能提升20倍居然不是标题党?

Python性能提升20倍居然不是标题党?

作者头像
不二小段
发布2018-04-08 10:52:08
1.3K0
发布2018-04-08 10:52:08
举报
文章被收录于专栏:不二小段不二小段

前两天有小伙伴发了篇文章给我,让我验证一下靠不靠谱,标题写着《如何在 i5 上实现 20 倍的 Python 运行速度?》,我看了不以为然,八成又是个标题党。看了看发现是篇译文,歪果仁原文标题是 How Does a 20X Speed-Up in Python Grab You? 似乎有点意思,于是我按照文章给出的方法做了一些验证性的尝试。

首先给出大家结论,今年2月份,Intel Python发布了第二版更新,其优化主要针对科学计算(后面会详细说),日常使用(比如我这种写爬虫的)就不用凑热闹了,在我的机器上(i7 6700k/Windows 10 x64)性能提升为5-15倍。环境不同,提升性能可能不同,所以那篇文章说的20倍加速也不算耸人听闻。而且中文社区对Intel® Distribution for Python的讨论的确比较少,所以虽然干货不多,还是抛砖引玉地写一篇笔记出来。

我们都知道,Anaconda是一个Python的科学计算发行版本,里面除了有原生Python以外,还自带了numpy、scipy等科学计算常用的库。那么同样,Intel Distribution则是其另一个发行版本,对某些特定类型运算和内存管理做了优化,而且可以通过Anaconda的conda直接进行安装和管理。

那么效果究竟如何?以下是我在本地电脑按照原文作者方法的实测。

PS 由于网络问题,我没能成功按照原文的方法直接使用conda安装,后面会给出其他办法。

首先是Anaconda Python 3.6

然后是Intel Python 3.5

的确可以看到5~12倍运行速度上的提升。

下面具体来说安装。

安装有两种办法:

一种是本机已有Anaconda,通过conda来安装,这样可以通过新建环境来方便多版本的Python管理,但是我自己通过这种办法一直失败,报错是time out,应该是国内的网络原因,大家可以尝试一下。

另一种办法,适用于本地没有装Anaconda,或者像我一样因为网络原因没办法直接通过命令行安装,可以利用官方提供的安装包来安装,其中也附带了conda,可以像Anaconda一样使用和管理。

先说方法一的步骤,以下是官方说明,我自己没有亲测成功:

https://software.intel.com/en-us/articles/using-intel-distribution-for-python-with-anaconda

代码语言:javascript
复制
1、conda update conda
2、conda config –add channels intel

在这里解释一下conda中channel的作用。利用conda install命令时,程序会到我们设定好的路径(channel)中寻找相应的包。之前说过的通过修改为国内镜像加速下载也是这个院里。这边呢是因为Intel在conda上有自己单独的channel,所以要修改为intel。

代码语言:javascript
复制
3、conda create -n idp intelpython3_core python=3

或者

代码语言:javascript
复制
conda create -n idp intelpython3_full python=3

区别在于一个只装核心部分,另一个是装全部的。

如果想要Python 2.x,则为

代码语言:javascript
复制
conda create -n idp intelpython2_core python=2

这里的话,新建了一个名为idp的env,在后续可以直接激活环境。

代码语言:javascript
复制
4、activate idp

激活环境,后续就是正常的使用了。

如果要在原有的环境中,单独更新某一个包为Intel版本,可以使用

代码语言:javascript
复制
conda install numpy -c intel --no-update-deps

# 我试了几次都遇到了timeout报错。而且由于要修改channel为intel,也没办法用清华大学的镜像加速下载。

方法二:

https://software.intel.com/en-us/intel-distribution-for-python/try-buy

在这边下载相应版本的免费社区版本,然后进行安装。

这边提供一个我下载好的Python 3版本安装包 http://pan.baidu.com/s/1o89FjWQ

之后按照正常的Python路径管理就可以了。

由于我自己不做机器学习,用科学计算也比较少,所以就在这里打住了。有需求的小伙伴可以自己尝试一下性能提升的具体效果。对加速原理感兴趣的可以继续看下面的参考链接。

参考:

http://www.infoworld.com/article/3187484/software/how-does-a-20x-speed-up-in-python-grab-you.html

https://software.intel.com/en-us/articles/intelr-distribution-for-python-2017-update-2

https://software.intel.com/en-us/articles/using-intel-distribution-for-python-with-anaconda

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 不二小段 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档