Intel® Data Analytics Acceleration Library

The Intel® Data Analytics Acceleration Library (Intel® DAAL) helps speed big data analytics by providing highly optimized algorithmic building blocks for all data analysis stages (Pre-processing, Transformation, Analysis, Modeling, Validation, and Decision Making) for offline, streaming and distributed analytics usages. It’s designed for use with popular data platforms including Hadoop*, Spark*, R, and Matlab*. for highly efficient data access.

Intel DAAL is available for Linux*, OS X* and Windows*. 

DAAL is more than MKL for Big Data

Like the Intel® Math Kernel Library (Intel® MKL), Intel DAAL is a highly optimized library of computationally intensive routines supporting Intel architecture including Intel® Xeon® processors, Intel® Core processors, Intel® Atom processors and Intel® Xeon Phi™ processors.

Indeed, Data Scientists have been using Intel MKL to help with Big Data problems for some time. There are algorithms in Intel DAAL that have been in Intel MKL for years such matrix decomposition and low order moments. However, most of Intel MKL was designed for when all the data to operate upon fits in memory at once. Intel DAAL can handle situations when data is too big to fit in memory all at once, which can be referred to as having an ‘out of core’ algorithm. Intel DAAL provides for data to be available in chunks rather than all at once. Intel DAAL is designed for use with popular data platforms including Hadoop, Spark, R, Matlab, etc. for highly efficient data access. Intel DAAL has data management built in so that applications can directly access data from various kind for sources including files, in-memory buffer, SQL database, HDFS, etc.

Intel® DAAL supported three processing modes:

  • Batch processing – When all data fits in the memory, a function is called to process the data all at once.
  • Online processing (also called Streaming) – when all data does not fit in memory. Intel® DAAL can process data chunks individually and combine all partial results at the finalizing stage.
  • Distributed processing – Intel® DAAL supports a model similar to MapReduce. Consumers in a cluster process local data (map stage), and then the Producer process collects and combines partial results from Consumers (reduce stage). Intel DAAL offers flexibility in this mode by leaving the communication functions completely to the developer. Developers can choose to use the data movement in a framework such as Hadoop or Spark, or explicitly coding communications most likely with MPI

Rich Set of Algorithms, with more to come!

Intel® DAAL provides a rich set of algorithms, ranging from the most basic descriptive statistics for datasets to more advanced data mining and machine learning algorithms.

Intel DAAL Flow

The Intel DAAL team loves feedback, and encourages it! Feedback from the beta this year means Intel will be adding more customer-requested algorithms in the upcoming months. The initial release, available as of August 25, 2015, of Intel DAAL includes the following algorithms:

  • Low Order Moments – Includes computing min, max, mean, standard deviation, variance, etc. for a dataset. These are fundamental, in a sense they are the bread and butter in any data analysis.
  • Quantiles – splitting observations into equal-sized groups defined by quantile orders. My spell checker wants to correct ‘quantiles’ to ‘quartiles’ which is simply a 4-quantile.
  • Correlation matrix and variance-covariance matrix – A basic tool in understanding statistical dependence among variables. The degree of correlation indicates the tendency of one change to indicate the likely change in another. For instance, I notice that as the temperature rises outside that sales increase at our local ice cream shop.
  • Correlation distance matrix – Measuring pairwise distance between items using correlation distance. Zero means true independence, an improvement over Pearson's correlation which is biased to linear relationships.
  • Cosine distance matrix – Measuring pairwise distance using cosine distance. Very commonly used in information retrieval, for example, comparing if two text documents are similar to each other. Plagiarists beware, big data is watching.
  • Data transformation through matrix decomposition – Intel® DAAL algorithms operate on tabular data (conceptually), and when the data is homogeneous (of the same data type) then it is essentially 2D matrices. A lot of algorithms depend on matrix decomposition. Intel DAAL provides Cholesky, QR, and SVD decomposition algorithms. Cholesky is used to solve symmetric linear systems; QR is used in least squares problems and linear regression; SVD is used for principle component analysis.
  • Principle Component Analysis (PCA), the most popular algorithm for dimensionality reduction. Useful to reduce dimensions (the number of columns) of a dataset such that it is easier to handle and smaller to be carried around.
  • Outlier detection – Identifying observations that are abnormally distant from typical distribution of other observations. This can be useful to detect erroneous data; abnormal events such as system failures, or erratic behaviors.
  • Association rules mining – Detecting co-occurrence patterns. Commonly known as “shopping basket mining.” It’s the type of mining method that Pandora.com uses to predict what song you want to listen to next, or Amazon.com uses to predict know what else you are likely to buy, and Target may use to predict if your coupon book should include items because you are pregnant.
  • Linear regression – The simplest regression method. Fitting a linear equation to model the relationship between dependent variables (things to be predicted) and explanatory variables (things known). A linear model might be used to predict highway traffic growth as a result of the population increase of a city.
  • Classification – Building a model to assign items into different labeled groups. Intel DAAL provides multiple algorithms in this area, including Naïve Bayes classifier, Support Vector Machine, and multi-class classifiers. Classifications include “junk filters” that analyze an email message to be spam or not spam, or a bank analyzing a loan to be high, medium or low risk.
  • Clustering – Grouping data into unlabeled groups. This is a typical technique used in “unsupervised learning” where there is not established model to rely on. Intel DAAL provides 2 algorithms for clustering: K-Means and “EM for GMM.” Clustering might be used in the analysis of clinical data from many patients where we may discover that one group might be predominated by overweight male with high cholesterol levels, and another group that is predominated by slim female with low cholesterol,

Intel DAAL includes C++ and Java interfaces. In order to maximize performance, all the compute kernels in Intel DAAL are actually implemented using C++. Java is supported via wrappers around the high performance C++ implementation. The Java interface interacts with C++ kernel through the JNI (Java Native Interface). Users do not need to write any JNI code, it’s included with Intel DAAL.

Ease of use and Performance

The performance advantages of Intel® DAAL can be substantial. A comparison of the Principle Component Analysis in Intel DAAL vs. Spark + MLLib is shown here:

Intel DAAL PCA benchmarking

The 4X – 7X result is based on this very specific benchmark. Of course, your results may vary. For instance, consider this quote from a customer:

“Using a pre-release version of Intel® Data Analytics Acceleration Library, we’ve seen an up to 200x improved performance for the Alternating Least Square prediction algorithm powering our recommendation engine compared with the latest open source Spark + MLlib baseline.  At Capital One™, this lets us realize our vision of transforming the way our customers manage their finances through personalized and meaningful interaction.”

- Ilya Ganelin, Senior Data Engineer, Capital One Data Innovation Lab

I doubt there is a "typical" speed-up to expect - so I highly recommend trying Intel DAAL with your own Big Data needs.  It's free to try!

Learn more about Intel® DAAL

You can download an evaluation copy of Intel DAAL today.

There is a series of webinars being held starting in September 2015 which cover many topics related to Intel Parallel Studio XE 2016.  On September 29, 2015 (9am-10am Pacific Time) there is one entitled "Faster Big Data Analytics Using New Intel® Data Analytics Acceleration Library." The webinars can be attended live, and offer interactive question and answer time. The webinars will also be available for replay after the live webinar is held.

If you want to look at the mechanics of using Intel DAAL, you might want to take a look at Intel DAAL Code Samples showing some integration examples (which were posted to the Intel DAAL Forum on the Intel website), starting with a basic usage in C++ and Java code examples for both Apache Spark (interacting with Spark* RDD (Resilient Distributed Datasets)) and Apache Hadoop (using DAAL functions with Hadoop MapReduce including interacting with HDFS). Included in the Intel DAAL Code Samples are three code samples:

  1. Principle Component Analysis (PCA) - This C++ code illustrate the basic usage of DAAL API.
  2. Apache Spark example - This Java code shows how to interact with Spark* RDD (Resilient Distributed Datasets).
  3. Apache Hadoop example - This Java code shows how to use DAAL functions with Hadoop MapReduce and how to interact with HDFS.

Machine learning/deep learning

The Intel MKL optimizes many routines critical for Machine learning/deep learning. Intel fellow, Pradeep Dubey, had an excellent talk at Intel’s Developer Forum in San Francisco (August 18-20, 2015) which he summarizes in his blog “Pushing Machine Learning to a New Level with Intel® Xeon® and Intel® Xeon Phi™ Processors.” His presentation “Technology Insight: Data Analytics and Machine Learning” covers this topic.  As Pradeep notes, even though results today offer record breaking performance, future releases of both Intel MKL and Intel DAAL will feature additional improvements for CNN/DNN.

Another presentation you may want to examine is “Accelerating Machine Learning with Intel® Tools and Libraries” created by Fred Magnotta, Zhang Zhang, and Vikram Saletore of Intel with Ilya Ganelin, Sr. Data Engineer, Capital One.

Download Intel DAAL today

Intel DAAL is available for Linux, OS X and Windows.

An evaluation copy of Intel DAAL can be obtained by requesting an evaluation copy of Intel® Parallel Studio XE 2016. It is available for purchase worldwide as stand-alone library, or as part of an Intel® Parallel Studio XE 2016.

The Intel DAAL is also available via the Community Licensing for Intel Performance Libraries. Under this option, the library is free for any one who registers, with no royalties, and no restrictions on company or project size. The community licensing program offers the current versions of Intel DAAL without Online Service Center access (the Online Service Center offers exclusive 1-on-1 support via an interactive and secure web site where you can submit questions or problems and monitor previously submitted issues. It requires registration after purchase of the software, or special qualification offered to students, educators, academic researchers and open source contributors.). Of course, anyone can ask questions on the public Intel DAAL Forum.

For more complete information about compiler optimizations, see our Optimization Notice.