标题取通俗一点,其实是BLAS运算速度的测试,BLAS是Basic Linear Algebra Subprograms的缩写。数学软件中矩阵运算的功能,包括R, Matlab, Octave等,都是通过BLAS以及基于它的LAPACK完成的。不同版本的BLAS对运算速度影响很大。
常见的BLAS版本包括ATLAS, Intel MKL和GotoBLAS等等,我这里比较的就这三个。Ubuntu默认的是ATLAS,GPL开源的。同时Ubuntu中有Revolution捐献的Intel MKL,这个是Intel收了钱的。另外神人後藤和茂写的GotoBLAS最近用BSD协议开源了,我自己编译了一份。
我的操作系统是Ubuntu 10.04,硬件是Intel Core i7-740QM + 2*DDR3-1333-4GB(显摆中^O^)。用rnorm随机生成了10个2000x2000的矩阵后,进行crossproduct, qr, svd, eigen四种运算。下面结果中的数字表示在这10个矩阵上完成运算的时间(秒数):

ATLAS 3.6.0
Crossproduct: 12.133
QR Decomposition: 69.038
Singular Value Decomposition: 78.556
Spectral Decomposition: 176.861

Intel MKL 10.2
Crossproduct: 7.362
QR Decomposition: 45.631
Singular Value Decomposition: 78.608
Spectral Decomposition: 165.773

GotoBLAS2 1.13
Crossproduct: 3.861
QR Decomposition: 72.792
Singular Value Decomposition: 82.627
Spectral Decomposition: 205.98

我的CPU是四核八线程的。观察发现三种BLAS在进行QR分解的时候都没有用到多核,而且ATLAS在Crossproduct(矩阵乘法)也没有用到多核。其它都有四核四线程在同时运行。

我的结果与别人报告的结果(http://cran.r-project.org/web/packages/gcbd/vignettes/gcbd.pdf )并不一致,GotoBLAS并没有传说中的那么好。可能是因为我的矩阵规模还不够大的缘故。

由于我最近主要用svd和eigen算diffusion map,矩阵规模也就在几千,决定还是选用Intel MKL作为我机器上的BLAS。

R中矩阵运算速度测试相关推荐

  1. 如何在 R 中执行 Wald 测试

    Wald 检验可用于测试模型中的一个或多个参数是否等于某些值. 此检验通常用于确定回归模型中的一个或多个预测变量是否等于零. 我们对此测试使用以下无效假设和替代假设: H 0:一些预测变量都等于零. ...

  2. 如何在 R 中进行 Sobel 测试

    Sobel 检验 是一种检验中介效应显着性的方法. 根据维基百科: 在中介中,自变量和因变量之间的关系被假设为由于第三个变量(中介)的影响而存在的间接影响.因此,当中介者被包含在带有自变量的回归分析模 ...

  3. rstudio运行python_RStudio 1.2发布,改进对Python chunks,R脚本等的测试和支持

    上周,RStudio背后的团队发布了RStudio 1.2,其中包括数十项新的生产力增强和功能. RStudio 1.2与SQL,Stan,Python和D3中的项目兼容.在此版本中,测试R代码集成, ...

  4. 如何在 R 中使用 Fisher 的最小显着性差异 (LSD)

    单向方差分析用于确定三个或更多独立组的平均值之间是否存在统计学上的显着差异. 单向方差分析中使用的假设如下: H 0:每组的均值相等. H A : 至少其中一种方式与其他方式不同. 如果 ANOVA ...

  5. r语言中矩阵QR分解_从零开始学R语言Day4|向量、矩阵和数组

    从零开始学R语言Day4|向量.矩阵和数组 1.1向量 1.1.1向量 在Day2中我们提及过用和c()函数来构建向量,具体实例如下. 我们还可以采用vector("类型",长度) ...

  6. 分类器评价与在R中的实现:混淆矩阵

    分类模型评价一般有以下几种方法:混淆矩阵(Confusion Matrix).收益图(Gain Chart).提升图(Lift Chart).KS图(KS Chart).接受者操作特性曲线(ROC C ...

  7. r求矩阵某一列的标准偏差_如何在R中找到标准偏差?

    r求矩阵某一列的标准偏差 Being a statistical language, R offers standard function sd(' ') to find the standard d ...

  8. 独家 | 在R中使用LIME解释机器学习模型

    作者:PURVAHUILGOL 翻译:陈丹 校对:欧阳锦 本文约3200字,建议阅读15分钟 本文为大家介绍如何在R中使用LIME来解释机器学习模型,并提供了相关代码. 关键词:机器学习模型解释.R语 ...

  9. 图像梯度增强_使用梯度增强机在R中进行分类

    图像梯度增强 背景 (Background) Purpose of analysis: 分析目的: Understand the factors driving student success so ...

最新文章

  1. android 跳转到应用市场
  2. SQL基础学习总结:3(select语句基础算术运算符比较运算符)
  3. php 自动列,设置自动调整列phpExcel
  4. 序列化对象C++对象的JSON序列化与反序列化探索
  5. Linux各个版本防火墙操作(CentOS Ubuntu)
  6. 18岁华裔准博士生,“杀死了”量子计算大进展
  7. Lucene中的一些基本概念
  8. C# 读写锁 ReaderWriteLock
  9. linux命令:mkfs、mke2fs、blkid、e2label、tune2fs、dumpe2fs、fsck、e2fsck
  10. app软件测试的意义,APP测试用例的作用是什么
  11. 阅读PDF乱码问题简便解决方法教程
  12. C#,数据库,会员积分管理系统
  13. 计算机试卷作文总分,教资考试作文总分50分?!如何拿高分,这篇文章你得看。。...
  14. V4L2 pixel format 格式参考
  15. 3. INTEGER() can only be applied to a 'integer' , not a 'double'
  16. C语言求解黎曼 函数非平凡零点,51、黎曼函数的“非平凡零点 (1/2)z”是什么玩意?...
  17. 空气质量提醒 BMI指数计算 Python123题解
  18. Linux 与 Python编程2021 经典函数实例 educoder实训
  19. 【第五人格设计思路】囚徒“蝰”·时装设计思路
  20. Hibernate简单配置

热门文章

  1. MAC下的word里面照片突然不能在线裁剪,裁剪框变成了灰色;
  2. Vue中设置背景图片和透明度
  3. 针对CPU优化加快 UC阅读器米2专版实测
  4. 奔富葡萄酒全新沉浸式体验馆亮相上海;爱莉安娜-格兰德推出全新个人香水R.E.M. | 美通企业日报...
  5. 怎么解决GIS和CAD之间的坐标与实际距离的问题?
  6. 天正建筑lisp编程接口_用lisp开发博客客户端
  7. Html中CSS常用属性
  8. MongoDB 日志分析工具 mtools
  9. Backspace长按不能删除,按一下只能删除一个字符
  10. java super.getclass_关于java中getClass()和getSuperClass()的讲解