Microsoft+R:Microsoft R Open (MRO)安装和多核运作
每每以为攀得众山小,可、每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~
———————————————————————————
本文转载于公众号大猫的R语言课堂,公众号作者使用这个MRO+Visual Studio 2015来运行。
文中介绍了下载方法以及设置多线程。
传统的RGui是单线程运行,此时microsoft收购之后实现了多线程,在高效上跨出了一大步。
同时,笔者在使用的时候有一个非常大的困惑:
里面的函数包是不是跟原来的一样?
——从包的数量上来看,应该是一致的。但是不再是原来的R的社区。现在是MRAN社区。
链接是:https://mran.revolutionanalytics.com/packages/
——————————————————————————————————————————————————————————————
写在前面上次关于MRO的文章推送之后,许多小伙伴表示对于Microsoft R这个增强版本的R相当有兴趣,希望大猫快点更新,所以大猫加班加点(最近要投Paper,时间有点紧啊),经过若干小时的奋战,新一期的大猫课堂又和大家见面啦!
性能测试(一):甩了社区版R几条街话说上回提到RevolutionAnalytics和Microsoft携手后推出了免费版的Microsoft R Open (MRO)以及企业版的Microsoft R Server (MRS)。依靠着BLAS/LAPACK库以及英特尔的多线程鸡血大补丸,微软宣称和社区版CRAN R相比,MRO在矩阵运算上的效率可谓有着恐怖的提高。然而口说无凭,为了服众,微软公布了基准测试成绩(Performance Benchmark):
基准测试代码可以从github下载,有兴趣的小伙伴们请戳:https://github.com/andrie/version.compare
整个基准测试分成了6大部分,分别为矩阵相乘、Cholesky分解、QR分解、奇异值分解、主成分分析、线性判别分析。这六大任务覆盖了常见的所有矩阵密集型运算,具有相当的代表性。那MRO的成绩如何?以矩阵相乘为例,我们发现,CRAN R在单线程下需要运行140.63秒,而同样在单线程下,MRO只需要14.11秒,速度是原来的近10倍!然而这里的提高仅仅是由BLAS/LAPCAK库所带来的,在多线程下面MRO有着怎样的表现呢?上面的表格告诉我们,在4线程(大多数的超极本都有2核2线程或者2核4线程)以及8线程(大多数台式PC的情况)的条件下,MRO只花了3.27秒以及1.89秒就跑完测试,性能分别是CRAN R的43倍及74倍!Intel大补丸见效之快、药效之好实在是令人咋舌!
在其他项目的测试中,MRO相比CRAN R都有着2x~50x的提高。可能有小伙伴会问,那CRAN R在多线程形况下性能有多少提高呢?大猫提醒大家,CRAN R执行命令是单线程的,因此哪怕在多核CPU上跑CRAN R,性能也不会比单核有多大提高!
为了更加直观反映性能提高,微软在下图中把CRAN R的成绩标准化为1,这样“27.41”就表示性能是基准的27.41倍:
注:MRO的性能提高主要体现在矩阵运算与多线程上。如果你的代码/包本身几乎不包含任何矩阵运算,那么使用MRO并不会带来太多性能上的提高。
性能测试(二):SAS也不在话下!在被Microsoft收购之前,初生牛犊不怕虎的RevolutionAnalytics还做过一件相当嚣张的事:为了宣传他们的企业版R,RevolutionAnalytics发布了一本白皮书,书名相当直言不讳,叫做Revolution R Enterprise: Faster than SAS。在白皮书中,RA团队宣称他们“想方设法保证了测试的公平”。首先,他们特地设计了一个“最贴近商业应用环境”的基准测试。不仅如此,为了尽可能消除争议,他们特地邀请了一个企业SAS顾问来帮助他们优化作为比较的SAS代码,使之最大可能体现SAS的语法优势。最后,他们还大费周章部署了分布式SAS Grid,使之也能使用多线程(在SAS中部署分布式要比R中复杂得多,大猫曾经有尝试,最终放弃……)。一切准备妥当,RA公布了一个难以置信的结果:
ScaleR ran the analysis tasks 42 times FASTER than SAS!!
这个结果自然令R阵营欢呼雀跃,但也难免引起了广泛的争议。大猫也没有仔细读完白皮书,故暂时不好发表意见。不过作为一个7年的SAS使用者,大猫在这里中肯地说:即使速度的确不如R,但是SAS在稳定性上仍旧是R无法企及的。一个很常见的例子是:在SAS中,无论你的程序陷入了怎样的死循环,按一个terminate键立马就能退出,而且程序从来不崩溃;但是在R中,一旦陷入死循环或者假死状态,想要退出只能重启R进程,而且working space里的数据需要重新加载!这是相当令人痛苦的。打个比方,SAS就好像AK47,R就好比M4A1,后者先进,但是前者——耐操啊!
白皮书中对R vs. SAS大战的总结。想要更多了解这场R和SAS的大战,请访问以下链接:http://www.revolutionanalytics.com/sites/default/files/revolution-analytics-sas-benchmark-whitepaper-mar2014.pdf
如何安装说了那么多MRO的引人入胜之处,小伙伴们一定希望马上体验。其实MRO的安装非常简单:
1)首先,进入MRO下载页面:https://mran.revolutionanalytics.com/download/
2)在下载页面中,我们能够看到针对多个系统的MRO版本下载,从Windows、MacOS一直到Ubantu、Red Hat等各种Linux发行版。因为大猫用的是Win10,所以直接点击Windows-Microsoft R Open这个链接就可以了。
注:只有64bit系统才能运行MRO!
3)最重要的一步来啦,接下来我们就要安装MRO的灵魂——来自英特尔的鸡血多线程补丁MKL。我们只要点击对应MRO版本的MKL进行下载即可。注意,需要先安装MRO再安装MKL库,否则会安装失败。
4)大功告成!这时启动MRO,会在启动界面中发现MRO已经自动侦测到你的多核CPU并且自动设置线程数:
由于大猫用的是Surface Pro 4,所以在这里MRO显示自动开启了双线程。
当然,你也可以手动查看并且设置所用的核心数。其中,查看使用核心数的的语句是getMKLthreads(),设置核心数的语句是setMKLthreads(<value>)。例如:
本期总结本期大猫带领大家领略了MRO在矩阵运算上相对于CRAN R的巨大提高,同时还介绍了MRO的安装方法。但是,除了多线程运算,MRO还有其他杀手锏!比如TimeMachine——可以把你加载的包返回到任意时间以及任意版本。此外,俗话说好马配好鞍,在安装了MRO之后,你需要一个能最大程度上发挥MRO潜力的开发工具——那就是同样来自于Microsoft、这个星球上当之无愧的最强大的集成开发环境——Visual Studio。在这里大猫先放两张自己所用的开发环境截图,在下一期中,大猫带你继续领略Microsoft R的无限魅力!
Microsoft R Open + R Tools for Visual Studio开发环境截图
每每以为攀得众山小,可、每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~
———————————————————————————
Microsoft+R:Microsoft R Open (MRO)安装和多核运作的更多相关文章
- Microsoft Visual Studio Web 创作组件安装失败的解决方法
在网上查一下说是Office2007的问题.我把Office2007卸载了还是不行. 然后用Windows Install Clean Up工具清理,还是不行. 郁闷了.然后在安装包中的下面路径下找到 ...
- 4步解决“Microsoft Office Professional Plus 2013在安装过程中出错”
公司新搭建了AD域,公司内使用了1年多的电脑,现在要加入域,加域过程问题错综复杂. 其中一台电脑上,反应说Excel经常卡住,严重影响使用,所以考虑重装office2013.在控制面板卸载了: 卸载完 ...
- Ubuntu安装R及R包
安装R $sudo apt-get update $sudo apt-get install r-base $sudo apt-get install r-base-dev 安装一些可能的依赖包 $s ...
- mac远程桌面Microsoft Remote Desktop for Mac的安装与使用
mac远程桌面Microsoft Remote Desktop for Mac的安装与使用 学习了:https://blog.csdn.net/ytangdigl/article/details/78 ...
- conda清华源 pip 清华源ubuntu 清华镜像 R代理以及包的安装
vim ~/.condarc channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/ - https:// ...
- R语言入门1:安装R和RStudio
R语言入门1:安装R和RStudio 曹务强 中科院遗传学博士研究生 9 人赞同了该文章 1. Windows安装R 在Windows系统上,安装R语言比较简单,直接从R的官方网站下载,按照正常的软件 ...
- Linux环境下R和R包安装及其管理
前言 R对windows使用很友好,对Linux来说充满了敌意.小数据可以在windows下交互操作,效果很好很棒.可是当我们要处理大数据,或者要在集群上搭建pipeline时,不得不面对在Linux ...
- R(四): R开发实例-map分布图
前几章对R语言的运行原理.基本语法.数据类型.环境部署等基础知识作了简单介绍,本节将结合具体案例进行验证测试. 案例场景:从互联网下载全国三甲医院数据,以地图作为背景,展现各医院在地图上的分布图.全国 ...
- R(一): R基础知识
R 是一门拥有统计分析及作图功能的免费软件,主要用于数学建模.统计计算.数据处理.可视化等方向.据 IEEE Spectrum发布的2016年编程语言前10位排名来看,R语言由2015年排名第6位上升 ...
随机推荐
- ASP.NET Core Web APi获取原始请求内容
前言 我们讲过ASP.NET Core Web APi路由绑定,本节我们来讲讲如何获取客户端请求过来的内容. ASP.NET Core Web APi捕获Request.Body内容 [HttpPos ...
- 面试中的DNS
DNS 当DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称.客户机发送的每条查询信息包括三条信息:指定的DNS域名,指定的查询类型,DNS域名的指定类别. DNS基于UDP服务,端 ...
- 关键字voltale
***volatile在多线程用的最多.*** #include<stdio.h> #include<stdlib.h> int main() { ; i < ; i++ ...
- 康盛(discuz )牛逼的PHP加解密算法函数
1.前言 康盛的 authcode 函数很牛叉,是一个具有有效期的加解密函数,同一个字符每次加密所产生的结果都是不一致的,并且可以自定义设置过期时间. 设计原理:authcode 是使用异或运算进行加 ...
- Cypher查询语言--Neo4j 综合(四)
目录 返回节点 返回关系 返回属性 带特殊字符的标识符 列的别名 可选属性 特别的结果 查询中的返回部分,返回途中定义的感兴趣的部分.可以为节点.关系或其上的属性. 图 返回节点 返回一个节点,在 ...
- Mysql基础安装,初视篇
mysql 跟所有的数据库软件一样分为 服务端和客户端: 下载:在官网里面选择 download 社区版本,mysql,社区版本 安装: win环境下: 第一步:解压文件出来 第二步:在bin文件下 ...
- bzoj 4873: [Shoi2017]寿司餐厅 [最小割]
4873: [Shoi2017]寿司餐厅 题意:略 唯一会做的... 一眼最小割 就是最大权闭合子图呀 \(s\rightarrow d_{positive} \rightarrow -d_{negt ...
- POJ 1704 Georgia and Bob [阶梯Nim]
题意: 每次可以向左移动一个棋子任意步,不能跨过棋子 很巧妙的转化,把棋子间的空隙看成石子堆 然后裸阶梯Nim #include <iostream> #include <cstdi ...
- pip install 提示"no previously-included directories found matching"及"no previously-included files matching found anywhere in distribution",且偶发无法关联安装 PyPI 库的故障
环境描述: Python 2.7.5 CentOS-7.2 报错现象: (1).在虚拟环境下运行 pip install 命令安装 PyPI 第三方库,出现类似如下告警. Running setu ...
- 基于layui和bootstrap搭建极简后台管理框架
年前无聊,想自己搭建一个后台管理框架,对比了easyui.Extjs.H-ui.H+UI.layui几个框架,easyui和Extjs虽然功能强大但是界面实在是接受不了,H+UI和layuiAdmin ...