矩阵乘法的性能因不同的R装置而异
我可以访问安装了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
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