Benchmarking Revolution R for Data Mining

June 28, 2011
38 Views

The blog Heuristically Andrew puts Revolution R through its paces by running some benchmarks versus open-source R for data mining applications. The benchmarks set out to answer the following question:

The blog Heuristically Andrew puts Revolution R through its paces by running some benchmarks versus open-source R for data mining applications. The benchmarks set out to answer the following question:

I recently upgraded my notebook (where I often use R for data mining) and was faced with two questions: for the fastest speed for building models, do I use the R or Revolution R, and do I enable Hyper-Threading?

The post includes benchmark code for several computations in both R and Revolution R, with and without hyperthreading enabled, and the results are summarized in the following chart:

R_benchmark_revolution_htt_20

The height of each bar is execution time, so a smaller bar is better. First thing to notice is that using hyper-threading or not doesn’t make a whole lot of difference. (In each group, compare bar 1 with bar 2, and bar 3 with bar 4: not much difference.) That’s in line with my experience, too: while hyper-threading can make one processor appear as two processors to the operating system, I’ve never seen it improve the performance of computations that would normally consume nearly 100% of the processor anyway.

As shown by these benchmarks, Revolution R offers a nice performance boost for building tree models with the ctree function. This is a function from a user-written CRAN package (party), and I’d guess that the underlying code makes extensive use of native R operations like those in our R peformance benchmarks that benefit from the parallel MKL math library linked with Revolution R. (It’s also possible that underlying C or C++ code calls level-2 BLAS functions directly, which would also benefit.) If a package doesn’t make much use of such matrix operators (like the earth function for MARS models), you won’t much of a speedup. 

The k function — a simple, tight arithmetic loop that doesn’t do any heavy lifting with matrices — has is of the same class. It was interesting to see the benefits of the new compile function in R 2.13: the lk function is a byte-compiled version of k, and byte-compilation offers some nice benefits. Dirk Eddelbuettel ran some similar tests soon after R 2.13.0 was released. (Byte-compilation isn’t currently available in Revolution R, which will upgrade to R 2.13 after the final 2.13.x patch is released by the Core Group.)

The post concludes:

I already used Revolution R on Amazon EC2, and for now, I plan to switch to Revolution R on Windows too. I’ll leave HTT enabled in case it helps other tasks.

If you’d like to do the same, you can purchase Revolution R Enterprise online, or download it for free if you’re at an academic institution. Check out the post at the Heuristically Andrew blog for the full details and code of this interesting benchmarking exercise.

Heuristically Andrew: Benchmarking R, Revolution R, And HyperThreading For Data Mining

You may be interested

IEEE Big Data Conference 2017 to Highlight Challenges, Opportunities
Big Data
65 shares943 views
Big Data
65 shares943 views

IEEE Big Data Conference 2017 to Highlight Challenges, Opportunities

Ryan Kade - June 23, 2017

Since 2013, the Institute of Electrical and Electronics Engineers has held annual big data conferences to highlight changes and opportunities…

10 of the Top Marketing BI Software Options
Business Intelligence
117 shares1,359 views
Business Intelligence
117 shares1,359 views

10 of the Top Marketing BI Software Options

Hayden B. - June 23, 2017

Business can be complicated sometimes. It’s not always easy to keep track of all the data and information we deal…

The Race for 5G Is the Race for Data Dominance
Big Data
80 shares1,102 views
Big Data
80 shares1,102 views

The Race for 5G Is the Race for Data Dominance

Daniel Matthews - June 22, 2017

Have you noticed how often the phrase “by the year 2020” comes up? In the tech sphere, many are heralding…