In what IBM is characterizing as a “breakthrough,” researchers have developed an algorithm that cuts the computational costs of assessing data quality by two orders of magnitude. The idea is to bring uncertainty quantification within reach of present-day supercomputers and even much more computationally-modest machines. The new algorithm has potentially far-reaching applicability, extending to nearly all types of analytics applications as well as scientific modeling and simulation.
The development of the algorithm was performed at IBM Research – Zurich and was presented on Thursday at the Society for Industrial and Applied Mathematics conference in Seattle. The Zurich team has been working on the software for the last year-and-a-half and they were able to patent it at the end of 2009, prior to publishing the results. The announcement this week followed a demonstration on JuGene, the Blue Gene/P system at the Jülich Supercomputing Center in Germany.
In that experiment, 72 Blue Gene racks were used to validate nine terabytes of data in less than 20 minutes. According to IBM researchers, using conventional techniques, that analysis would have consumed more than a day, and in the process, used 100 times as much energy. A sustained performance of 730 teraflops, representing 73 percent of theoretical peak, was demonstrated on the Blue Gene/P machine, and similar or even better efficiencies would be expected on smaller clusters and workstations.
The impetus behind this work is the flood of data that is fed to computers to solve real-world problems — everything from stock portfolio management to computational fluid dynamics. The data can be generated from physical sources, like financial market feeds, weather sensors, electrical grid measurement devices, and Internet streams, as well as from synthetic sources like computer models. “Essentially we live in an ocean of bits and bytes,” says Costas Bekas of IBM Research – Zurich.
The idea, of course, is to employ computers to transform all this raw data into valuable knowledge. But before that, you have to figure out how good the data is, so that the results are trustworthy. And since the collection and generation of all this information is never error-free, one must find a way to quantify all the noise and anomalies in the data.
Statistical techniques to characterize data quality have been around for a while and come under the general term uncertainty quantification, or UQ, for short. There are a number of methods employed for UQ analysis, including the well-known Monte Carlo technique. But one of the most powerful ones uses something called inverse covariance matrix analysis. The problem with this method is that as data sizes grow, the computational cost becomes impractical, even for the most powerful systems. For example, Bekas says a sample of one million data samples would require an exaflop of compute power. That’s roughly 1,000 times the performance of the top petaflop supercomputing systems that exist today. To compensate, people have been manually “remodeling” the data and reducing the size of the problem, but this introduces the element of human bias into the analysis.
The overarching goal of the research was to make UQ practical, not just for elite scientists on supercomputers, but for average users on computing clusters and even personal computers. And because they wanted to cover the whole range of hardware platforms, they needed to design the algorithm so that it would be highly scalable as well as fault tolerant.
The solution the IBM’ers came up with was to replace the inverse covariance matrix method with one using stochastic estimation and iterative refinement. This enabled the researchers to cast the problem as a linear system. “The key is that the number of linear systems that we solve is small,” explains Bekas. “So if you have, say, one million data samples, then you only have to solve 100 linear systems.”
According to Bekas, this model not only enabled them to parallelize the technique, but to reduce the computational cost by a factor of 100. In addition, the algorithm employs a mixed precision scheme such that the main computation can take place in single precision (or even lower), but generate results in double precision (or even higher). While most modern CPUs can’t take advantage of this particular trick, computational accelerators, like Cell processors, GPUs, and presumably even FPGAs, can use this feature to optimal effect.
Fault tolerance is a by-product of the stochastic estimation model. “If for example something goes wrong in your machine while it is solving one of the linear systems, you can safely ignore it and you can go on to the next one,” says Bekas. “On the other hand, if you were to do full matrix inversion [and] something went wrong at the end of a very large matrix calculation, then your data is destroyed.” The technique maintains accuracies of three, four, or even five digits, which according to him, far exceeds what is required for applications.
Now that IBM’s intellectual property related to the algorithm has been patented and the technology is out of the experimental stage, the next step is to begin commercialization. There is no dearth of potential applications: weather forecasting, supply chain management, nuclear weapons simulation, astrophysics, magnetic resonance imaging, and all kinds of business intelligence — essentially any analytics or modeling application where data quality is a driving issue. Perhaps the lowest-hanging fruit is financial portfolio analysis, where exposure to risk is at the very heart of the application. IBM has a Business Analytics and Optimization group within their consulting organization ready to start client engagements.
“You’d be surprised to see how many different disciplines rely on the same basic mathematical problems,” says Bekas. “And this uncertainty quantification is one of them.”