r - 不同 R 安装的矩阵乘法性能各不相同

标签 r

我可以访问两个已安装 R 的集群。我一直在一台机器上编码和测试我的东西。当我将代码移动到新集群时,突然所有矩阵乘法都变得非常慢。以下是一些数字:

Cluster-1:
> a <- matrix(0, nrow=2000, ncol=2000)
> b <- matrix(0, nrow=2000, ncol=2000)
> system.time(c <- a %*% b)
   user  system elapsed 
   0.07    0.03    0.10

Cluster-2:
> a <- matrix(0, nrow=2000, ncol=2000)
> b <- matrix(0, nrow=2000, ncol=2000)
> system.time(c <- a%*% b)
   user  system elapsed 
 13.682   0.014  13.695

请注意,我没有使用任何稀疏矩阵。

Cluster-1 使用 R 版本 2.12.1,Cluster-2 使用 R 版本 2.15.0。第二个簇是否缺少任何特殊的库?我如何找到哪一个?谢谢。

编辑: 添加有关集群的更多详细信息:

集群1:

> sessionInfo()
R version 2.12.1 (2010-12-16)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] LC_MONETARY=C              LC_MESSAGES=en_US.UTF-8
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C
 [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

集群 2:

> sessionInfo()
R version 2.15.0 (2012-03-30)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.iso885915       LC_NUMERIC=C                  
 [3] LC_TIME=en_US.iso885915        LC_COLLATE=en_US.iso885915    
 [5] LC_MONETARY=en_US.iso885915    LC_MESSAGES=en_US.iso885915   
 [7] LC_PAPER=C                     LC_NAME=C                     
 [9] LC_ADDRESS=C                   LC_TELEPHONE=C                
[11] LC_MEASUREMENT=en_US.iso885915 LC_IDENTIFICATION=C           

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

最佳答案

您可能正在使用未优化的 BLAS。请参阅此处的示例: http://www.cybaea.net/Blogs/Data/Faster-R-through-better-BLAS.html

如果是这样,修复起来很简单。

您还可以尝试编译和其他技巧: Speed up the loop operation in R

关于r - 不同 R 安装的矩阵乘法性能各不相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10139797/

相关文章:

r - 当数据库名称全部为大写字母时,使用 rPostgreSQL 将表写入 Postgresql

r - 在 ggplot 中使用四个图在图表下方添加标题

r - 通过另一列的成对组合计算一列的唯一值并按R中的第三列分组

r - 我如何做一个只在特定日期标准之间查找的条件总和

r - 条件键连接/更新_and_更新匹配的标志列

r - 将脚注添加到 gtsummary 表中的单行标签

r - TensorFlow 将函数应用于矩阵变量的每一行

r - 如何使用多列作为键合并两个数据框?

r - 计算嵌套小标题 R 中的比例?

r - 如何在 R 中模拟词袋模型以适应 SVM