since the latest Ubuntu release (karmic koala), I noticed that the internal R package advertises on start-up the REvolution package.
It seems to be a library collection for high-performance matrix calculations. And it seems to really work, apparently. For example on a matrix transposition with REvolution:
> system.time(t(matrix(rnorm(10000000),ncol=1000)))
user system elapsed
1.280 0.150 1.556
And without REvolution:
> system.time(t(matrix(rnorm(10000000),ncol=1000)))
user system elapsed
1.320 0.170 1.725
Is anyone using it? Is it really working? Which specific types of calculation is it improving and how? Any drawback?
Thanks 🙂
Yes, on a multicore machine, the Intel MKL libraries implementing the BLAS — and provided by the package
revolution-mkland turned-on by packager-revolution-revobasewill work in parallel for linear algebra problems, and you should see a difference to the base case of using just the libblas* packages.However, your example above is not that significant, I often do something like
to compute a trimmed mean over a number of replications.
More importantly, note that your example includes the RNG draws in the timings which are
i) expensive, and ii) invariant to the method used so you should generated that outside of
system.time().Besides the MKL,
revolution-ralso brings in some of the REvolution-authored packages from CRAN that can be used for parallel execution.(Disclaimer: I helped REvo in putting this together for Ubuntu 9.10)