英特尔® 数据分析加速库

英特尔® 数据分析加速库(英特尔® DAAL)面向所有数据分析阶段(预处理、转换、分析、建模、验证和决策制定)提供高度优化的算法构建模块,有助于提升大数据分析的速度,用于线下、流和分布式分析。它专门用于常见的数据平台(包括 Hadoop*、Spark*、R 和 Matlab*),支持高效地访问数据。

英特尔 DAAL 提供 Linux*、OS X* 和 Windows* 三种版本。 

DAAL 不仅是面向大数据的 MKL

和英特尔® 数序核心函数库(英特尔® MKL)一样,英特尔 DAAL 也是一款高度优化的库,包含了支持英特尔® 至强® 处理器、英特尔® 酷睿® 处理器、英特尔® 凌动处理器、英特尔® 至强融核™ 处理器等英特尔架构的计算密集型例程。

事实上,数据科学家一直在利用英特尔 MKL 解决大数据问题。英特尔 DAAL 中的某些算法许多年前已经存在于英特尔 MKL 中,如矩阵分解和低阶矩。但是,大多数英特尔 MKL 适用于内存能够一次性容纳全部待执行数据的前提。当数据太大,内存无法一次性接收(也称为“核外”算法)时,需要使用英特尔 DAAL。英特尔 DAAL 支持分块处理数据,而不是一次性处理全部数据。英特尔 DAAL 专门用于常见的数据平台,包括 Hadoop、Spark、R、Matlab 等,支持这些平台高效获取数据。英特尔 DAAL 内置数据管理,应用可以直接访问各种来源(包括文件、内存缓冲、SQL、数据库、HDFS 等)的数据。

英特尔® DAAL 支持三种处理模式:

  • 批量处理 – 全部数据进入内存后,调用函数,一次性处理全部数据。
  • 在线处理(也称为流) – 在内存无法容纳全部数据的情况下使用。英特尔® DAAL 能够单独处理数据块,并在最后阶段将所有部分结果结合在一起。
  • 分布式处理 – 英特尔® DAAL 支持和 MapReduce 相似的模型。集群中的 Consumer 处理本地数据(映射阶段),然后 Producer 处理收集的数据,并汇总来自 Consumer 的部分结果(简化阶段)。英特尔 DAAL 为该模式提供较大的灵活性,通信功能完全由开发人员决定。开发人员可以选择在 Hadoop 或 Spark 框架中使用数据移动,也可以使用 MPI 对通信进行明确地编码。 

丰富的算法,以后会越来越多!

英特尔® DAAL 提供丰富的算法,从面向数据集的最基本的描述性统计到更高级的数据挖掘和机器学习算法。

Intel DAAL Flow

英特尔 DAAL 团队期待反馈,并鼓励用户反馈!根据今年的测试版反馈,未来几个月内,英特尔将添加一些客户要求的算法。2015 年 8 月 25 日起,英特尔推出第一版英特尔 DAAL,包括以下算法:

  • 低阶矩 – 包括计算数据集的最小值、最大值、中间值、标准偏差、方差等。这些都是基本的运算,在某种意义上,它们是任何数据分析的基础。
  • 分位数 – 将观测数据分为大小相等的组,由分位数等级定义。我的拼写检查程序想要将“分位数”(quantiles) 改为“四分”(quartiles),四分的意思就是 4 个分位数。
  • 相关矩阵和方差-协方差矩阵 – 一款用于计算变量的统计相关性的基本工具。相关性程度是指一个项目的变化引起另一个项目变化的倾向。例如,我发现室外温度升高后,当地冰淇淋店的销量提高了。
  • 相关距离矩阵 – 利用相关距离测量项目间的成对距离。零意味着真正的独立性,在 Pearson 相关性的基础上进行了改进,后者导致线性关系产生偏差。
  • 余弦距离矩阵 – 余弦距离测量成对距离,经常常用于信息检索,例如,比较两个文本文档是否相似。抄袭者要当心了,大数据正在严查抄袭。
  • 通过矩阵分解进行数据转换 – 英特尔® DAAL 算法执行列表数据(从概念上讲),当数据具有同质性(数据类型相同)时,实际上是 2D 矩阵。许多算法基于矩阵分解。英特尔 DAAL 提供柯列斯基QRSVD 分解算法。柯列斯基用于处理对称线性系统;QR 用来解决最小二乘法和线性回归问题;SVD 主要进行主组件分析。
  • 主组件分析 (PCA),最常见的降维算法,有助于降低数据集的维度(列数),使数据集变得更小,更容易处理和携带。
  • 孤立点检测 – 找出与其它观察的典型分布相距异常遥远的观察。这个算法对检测错误数据、异常事件(如系统故障)或异常行为非常有用。
  • 关联规则挖掘 – 检测共生模式,通常被称为“购物篮挖掘”。Pandora.com 利用这个挖掘方法预测您接下来想听哪首歌,Amazon.com 利用它预测您还需要买什么,Target 利用它预测怀孕客户的优惠券是否需要包含新的项目。
  • 线性回归 – 最简单的回归方法,利用线性方程模拟相关变量(需要预测的事物)和解释变量(已知事物)之间的关系。利用线性模型可以预测城市人口增加所引起的高速公路交通流量增长。
  • 分类 – 创建模型,将项目分为不同的标记组。英特尔 DAAL 提供多种分类算法,包括朴素贝叶斯分类器,支持矢量设备和多类分类器。分类包括将电子邮件讯息分为垃圾非垃圾邮件的“垃圾过滤其”,银行可以利用它将贷款分为高风险中等风险低风险
  • 集群 – 将数据分为未标记的组。这是一项用于“无监督学习”的典型技术,在非监督学习中,无法依赖现成的模型。英特尔 DAAL 针对集群提供两种算法:K-Means 和“面向 GMM 的 EM”。可以利用集群分析来自众多患者的临床数据,我们会发现,某组中胆固醇水平较高的超重男性占多数,另一个组中胆固醇水平较低的瘦弱女性占多数。

英特尔 DAAL 包括 C++ 和 Java 接口。为了实现最佳性能,实际上利用 C++ 实施了英特尔 DAAL 中的所有计算内核。通过高性能 C++ 实施周围的包装支持 Java Java 接口通过 JNI(Java 原生接口)与 C++ 内核交互。用户不需要编写任何 JNI 代码,代码包含在英特尔 DAAL 中。

易用性和性能

英特尔® DAAL 有巨大的性能优势。英特尔 DAAL 和 Spark + MLLib 主组件分析对比如下所示:

Intel DAAL PCA benchmarking

基于具体性能指标评测得出了性能提升 4 倍 – 7 倍的结果。当然,您的结果可能会有所差异。如一位顾客所说:

“使用预发布版英特尔® 数据分析加速库,我们的性能提升了高达 200 倍,和最新的开源 Spark + MLlib 基准相比,交替最小二乘法预测算法为推荐引擎提供了更强大的支持。 在第一资本金融公司™,通过个性化和有意义的互动,我们实现了改善客户财务管理方式的愿景。”

- Ilya Ganelin,第一资本数据创新实验室高级数据工程师。

我怀疑是否有“典型的”速度提升 - 因此,强烈建议您使用英特尔 DAAL 解决您的大数据问题。 这套工具是免费的!

进一步了解英特尔® DAAL

现在,您可以下载英特尔 DAAL 评估版

2015 年 9 月开始,将举办一系列网络研讨会,涵盖与英特尔 Parallel Studio XE 2016 相关的许多主题。 2015 年 9 月 29 日(太平洋时间上午 9 点至 10 点),举办了一个名为“利用英特尔® 数据分析加速库提升大数据分析速度”的网络研讨会。可以观看网络研讨会的直播,为您提供了互动问答时间。直播结束后,也可以观看 重播

如果您对英特尔 DAAL 的结构感兴趣,可以查看英特尔 DAAL 代码示例,包含了许多集成示例(发布于英特尔网站上的英特尔 DAAL 论坛),从面向 Apache Spark(与 Spark* RDD(弹性分布式数据集)交互)和 Apache Hadoop (通过 Hadoop MapReduce 使用 DAAL 函数,包括与 HDFS 的交互)的 C++ 和 Java 代码示例的基本用法入手。英特尔 DAAL 代码示例包含三个代码示例:

  1. 主组件分析 (PCA) - 这种 C++ 代码展示了 DAAL API 的基本用法。
  2. Apache Spark 示例 - 这种 Java 代码展示了如何与 Spark* RDD 交互(弹性分布式数据集)。
  3. Apache Hadoop 示例 - 这种 Java 代码展示了如何通过 Hadoop MapReduce 使用 DAAL 函数,以及如何与 HDFS 交互。

机器学习/深度学习

英特尔 MKL 优化了许多例程,这些例程对机器学习/深度学习至关重要。英特尔院士,Pradeep Dubey 在英特尔信息技术峰会(2015 年 8 月 18 - 20 日在旧金山举办)上做过一次精彩的演讲,他在博文中这样总结“英特尔® 至强® 和英特尔至强融核™ 处理器将机器学习提升至全新的水平”。他的演示文稿“技术解析:数据分析和机器学习”涵盖了这个主题。 如 Pradeep 所言,尽管今天的结果显示英特尔 DAAL 提供前所未有的性能,英特尔 MKL 和英特尔 DAAL 的未来版本仍将面向 CNN/DNN 进一步改进。

您可能感兴趣的另一个演示文稿是“利用英特尔® 工具和库提升机器学习的速度”,由英特尔公司的 Fred Magnotta、Zhang Zhang 和 Vikram Saletore 与第一资本金融公司的高级数据工程师 Ilya Ganelin 共同制作。

立即下载英特尔 DAAL

英特尔 DAAL 提供面向 Linux、OS X 和 Windows 的三种版本。

通过请求评估版英特尔® Parallel Studio XE 2016,可以获取英特尔 DAAL 评估版。可以以 独立库的形式在全球范围内购买英特尔 DAAL,或作为英特尔® Parallel Studio XE 2016 的一个组件购买。

也可以通过 面向英特尔性能库的社区许可获取英特尔 DAAL。通过这个渠道获取库时,完成注册的任何人均可免费获取,不收取版税,对公司和项目的规模没有限制。社区许可计划提供最新版英特尔 DAAL,无需通过英特尔卓越支持的允许(英特尔卓越支持提供一对一专享支持,您可以通过安全的互动网站提交您的问题,还可以查看之前提交的问题。英特尔® 卓越支持需要购买软件后注册,并为学生、教育工作者、学术研究人员和开源工作者提供特别认证)。当然,任何人均可在英特尔 DAAL 论坛上公开提问。

Para obter informações mais completas sobre otimizações do compilador, consulte nosso aviso de otimização.