矩阵乘法的性能因不同的R装置而异

矩阵乘法的性能因不同的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

我可以访问安装了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
第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。有关示例,请参见此处:

如果是这样,这是一个简单的解决办法

您还可以尝试编译和其他技巧:

我本以为还有别的事情发生,13秒的运行速度非常慢,即使是常规RBLA。集群上还会运行其他东西吗?@Hansi,在我的机器上(几年前),
c我没有集群的root访问权限。所以我不能从repo安装任何东西。此外,我在论坛上看到,汇编Atlas并不是一项简单的任务。也许我应该和系统管理员谈谈,看看能做些什么。@Hansi该群集上不能运行其他任何东西。我专门租用节点供自己使用。它不与任何其他人共享。@BenBarnes我已经编辑了我的问题并添加了两个集群的sessionInfo信息。
> 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