自从最新的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/