You are here

High Performance R

Revolution R Enterprise RevoR

Optimizing Open Source R for Multi-Threaded Performance

RevoR, the distribution of Open Source R included with Revolution R Enterprise, improves performance by using industry-standard compilation techniques and by linking with the multi-threaded Intel Math Kernel Libraries. Unlike the standard build of R, Revolution R Enterprise RevoR automatically uses all available cores and processors to significantly reduce computation times — without the need to change a line of your R code. 




Revolution R Enterprise RevoR Performance Benchmarks

The benchmarks on this page demonstrate the performance of Revolution R Enterprise 6.1 compared to the base version of R-2.14.2, available from the R Project. The test system was an Intel® Xeon® CPU E31240@3.30GHz 3.30 GHz with 16GB System RAM running 64-bit Windows Server 2008 R2 SP1.

One of the differences between Revolution R products and base R is the ability to leverage multithreading and processor capabilities on all x86 platforms to increase performance. Thus, the more cores available to Revolution R, the higher your performance for many operations.

Revolution Analytics has created these tests to simulate common real-world computations.

  Base R 2.14.2 64 Revolution R
Revolution R
(4 core)
Matrix Multiply 124.4 sec 11.4 sec 4.4 sec 27.1x
Cholesky Factorization 18.0 sec 1.8 sec .6 sec 29.8x
Singular Value Decomposition 37.8 sec 8.4 sec 4.6 sec 7.1x
Principal Components Analysis 141.2 sec 22.4 sec 11.0 sec 11.9x
Linear Discriminant Analysis 117.0 sec 39.8 sec 32.0 sec 2.7x

Speedup = Slower time / Faster Time - 1

More information:

Additional performance gains with Revolution R Enteprise ScaleR

Revolution R Enterprise ScaleR, the Big Data predictive analytics library included with Revolution R Enterprise, provides fast and scalable, parallel algorithms for analyzing very large data sets or large models with many independent variables, or both. Designed from first principles to overcome R’s limitations of being memory bound and single threaded, ScaleR functions implement parallel external memory algorithms (PEMAs) that (1) avoid the need to have all of the data in memory at one time and (2) take advantage of all of the computational resources available. RevoScaleR PEMAs automatically run in parallel on all of the cores available on multi-core PC and servers, and on multi-node clusters of servers. Learn more.