R-revolution与MATLAB的矩阵运算性能测试

科普:

1.R语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R),现在由“R开发核心团队”负责开发。

2.R-revolution经过了一些加强,使得他能运用到更多的领域:

  • 高性能,R-revolution使用intel的数学核心函数库来进行大部分数学计算任务,使得它的运算速度比R-Base有显著提高
  • 高可靠性,R-revolution建立在最新的稳定发行版之上,使得你不用担心关键更新和bug。

一句话,R-revolution是更换了intel数学引擎的R语言版本,据其官方说性能有很大提高,而且支持并行处理。于是我就进行了一个测试。

测试平台:win7旗舰版 sp1,64bit

处理器:AMD Phenom(tm) II N830 Triple-core Processor 2.10GHz

内存:6GB

使用的R版本为:R-X64-3.0.1

使用的R-revolution版本为:Community 6.2 X64

matlab为:R 2013a X64

 

测试的主要目的是为了检测其矩阵运算性能,因此我选取了四个函数进行测试,分别是:

eigen(特征分解),svd(奇异值分解),qr(QR分解),*(矩阵乘法)

矩阵的来源是方差为0,方差为1随机生成的1000*1000的方阵

测试的结果如下:

矩阵运算性能测试RR-revolutionMATLAB
eigen16.014.992.50
svd10.201.780.85
qr1.601.190.10
*2.560.140.08

所有单位均为秒。

看来,运算性能上差别还是非常大的。测试的目的不是为了争论语言,而是为了让好钢用在刀刃上,所以,大量矩阵运算的算法还是用matlab比较合适。

再来看看CPU的使用情况。

 

这是我从录制出来的视频中截出来的一张图片,CPU占用率在45%左右,稳定不变,多核都在运算,但是利用率不一。(群里也有其他人反应说他们只有一个核心在运算,这个我是没有遇到就是了)。再来看看R-revolution,看看究竟革了多少命。

三个CPU都是间歇性跑满,中间有些许波动。总体来说利用率很高。然后再看以矩阵运算出门的matlab

matlab是将CPU一直压榨在慢负荷运转,看来矩阵运算对于计算机资源的利用也是matlab技高一筹。

//在本文写完之后,群里面有同学提醒我官方有一种改进R矩阵运算能力低下的方案。针对CPU优化的动态链接库,替换官方的通用DLL。

由于我的机器装的版本没有对应的DLL可以替换,所以测试结果暂时无法提供,但是我已经委托朋友去进行测试了。过几天再写个续集吧。

所有的中间数据和CPU运行视频均在这里

转载于:https://www.cnblogs.com/mathecoer/p/3245538.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值