Revolution Analytics Lifts R Language into Terascale Computing
R language booster Revolution Analytics is going after the predictive analytics crowd with its latest Revolution R Enterprise software platform. The company announced this week it will be introducing a package called RevoScaleR to bring the R language into the world of “Big Data,” enabling analytics applications to turbo-charge their performance and scale terabyte-sized mountains of data.
Analytics has increasingly become a way for companies to automate intelligence. Businesses in quantitative finance, life sciences, telecom, manufacturing and retail are all looking to mine their data for profits. Governments are also generating enormous amounts of data, and are looking for ways to make sense of it all. Organizations traditionally looked to SAS and SPSS (now a part of IBM) to provide high-end analytics, but a new ecosystem is growing up around the open-source R language, a framework used for statistical computing and modeling.
Developed in the 1990s by Ross Ihaka and Robert Gentleman in New Zealand, the R language was purpose-built for the needs of statisticians. As such, it is tailor-made for analytics and has become the most popular programming language for such work in academia and, increasingly, in the commercial realm. “It’s really has become the lingua franca of learning statistics at universities,” says Jeff Erhardt, COO at Revolution Analytics.
Because of its open-source nature, R is attracting a lot of innovation from its user community. Erhardt says there are probably close to 2 million users worldwide today, and that number is growing. His company hopes to turn that grassroots popularity into a thriving business by propelling the language into the enterprise.
To accomplish that will require some work. R has two fundamental limitations. First, the language is memory bound. That is, it expects the entire database to be in RAM. For the typical workstation, that becomes a problem for any dataset over a few gigabytes. Second is performance. R executes a single process, so cannot take advantage of the performance inherent in multicore/multithreaded CPUs and cluster architectures. According to Revolution Analytics CTO David Champagne, to make it into the enterprise, both issues have to be addressed. And that’s what Revolution R Enterprise and the new RevoScaleR package aim to do.
Speed is really the big issue here, given that the results of predictive analytics are time-sensitive to one degree or another. For example, a trading desk in the US needs to be ready to execute the optimal trades and arbitrage opportunities when the markets in Tokyo open in the morning. To do that, the trading institution has to be able to churn through its entire portfolio overnight.
Overcoming the memory limitation has been accomplished with what the company calls its “external memory” framework. Essentially, it allows data to be quickly brought into memory in bite-sized chunks so that even terabyte-sized data files with billions of rows can be accommodated. To support this model, Revolution Analytics invented the XDF file format in which data rows and columns can be read and written in arbitrary blocks. In fact, new columns and rows can even be inserted on the fly without having to rewrite the rest of the file. This speeds up data transformations considerably, according to Champagne, and makes the analytics workflow much more efficient.
A lot of the execution speed is the result of good old-fashioned parallelism. The initial RevoScaleR implementation enables R applications to be parallelized across multiple cores (and CPUs) on a laptop, workstation or server. With a dual-socket Intel Xeon 5600 (Westmere) server, that means computation can be distributed across as many as 12 cores. Support for distributing an app across multiple nodes in a datacenter will follow shortly. RevoScaleR provides an interface for a number of common statistical algorithms including linear regression, cross tabulation, logistic regression, and summary statistics, with more on the way.
The company has demonstrated considerable speedups using the RevoScaleR package. On an 8-core Nehalem server, with 8 GB of RAM, they were able to process a 13 GB file in record time. In this case the file contained US airline flight data from 1987 to 2008 and was made up of 123 million rows and 29 columns. They were able to execute a linear regression on two variables (arrival delay and day of the week) in about 1 second. The next best implementation (using a special R package to deal with big data files) took around six minutes.
Specific comparisons against traditional SAS and SPSS implementations are lacking, but according to Champagne, beta customers using RevoScaleR have reported orders of magnitude performance speedup compared to legacy analytics platforms. And although Erhardt claims they are not specifically going after SAS and SPSS accounts, customers looking for a less proprietary solution might be tempted by the Revolution offering. “Clearly they come to us, in particular, when they are looking for cost advantage,” he says.
The company basically has two tiers of pricing for commercial customers (Revolution R Enterprise is free to academic users). For the individual user on a desktop, they’re going to charge in “the low thousands of dollars.” The second tier is for multiple users in a more typical enterprise server-based setup. Depending on the configuration, prices should be in the low-five figure range, with a site license in the six-figure range. According to Erhardt, the goal is to leverage the open-source R software and offer their enterprise product at a fraction of the price of traditional analytics software platforms.
The initial RevoScaleR package will be available in 30 days, but only with multicore/multiprocessor support, and only on Windows. Support for distributed computing across a cluster and on Linux is slated for sometime in the next quarter. Also in the queue is support for C++ users who want to add their home-grown algorithms that take advantage of RevoScaleR’s external memory model. And last on the docket is a Web services product that will make R applications accessible from a browser or some other client interface. For a more detailed look at what’s in store, check out the company’s white paper of its roadmap.