自从最新的Ubuntu版本(karmic树袋熊)发布以来,我注意到内部R软件包在启动REvolution软件包时会做广告。
它似乎是用于高性能矩阵计算的库集合。显然,它似乎确实有效。例如,在具有REvolution的矩阵转置上:

> system.time(t(matrix(rnorm(10000000),ncol=1000)))
   user  system elapsed
  1.280   0.150   1.556

如果没有革命:
> system.time(t(matrix(rnorm(10000000),ncol=1000)))
   user  system elapsed
  1.320   0.170   1.725

有人在用吗?真的有效吗?它会改进哪些特定类型的计算,以及如何改进?有什么缺点吗?

谢谢 :-)

最佳答案

是的,在多核计算机上,实现BLAS的Intel MKL库(由revolution-mkl软件包提供,并由r-revolution-revobase软件包打开)将并行处理线性代数问题,您应该会发现与使用的基本情况有所不同只是libblas *软件包。

但是,您上面的示例并不重要,我经常做类似的事情

 mean(replicate(N, system.time( someStuffHere() )["elapsed"]), trim=0.05)

计算多次重复的均值。

更重要的是,请注意,您的示例中包含RNG抽签的时间
i)昂贵,并且ii)使用的方法不变,因此您应该在system.time()之外生成该方法。

除了MKL之外,revolution-r还从CRAN引入了一些REvolution编写的软件包,可用于并行执行。

(免责声明:我帮助REvo将它们整合到了Ubuntu 9.10中)

关于R的革命,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1748590/

10-10 00:17