You are on page 1of 9

Computer Engineering and Applications 计算机工程与应用 2017,53(11) 31

并行机器学习算法基础体系前沿进展综述
刘 斌 1,
何进荣 1 ,
耿耀君 1 ,
王 最2
LIU Bin1, HE Jinrong1, GENG Yaojun1, WANG Zui2

1. 西北农林科技大学 信息工程学院,陕西 杨凌 712100


2. 西北农林科技大学 图书馆,陕西 杨凌 712100
1.College of Information Engineering, Northwest A&F University, Yangling, Shaanxi 712100, China
2.Library, Northwest A&F University, Yangling, Shaanxi 712100, China

LIU Bin, HE Jinrong, GENG Yaojun, et al. Recent advances in infrastructure architecture of parallel machine
learning algorithms. Computer Engineering and Applications, 2017, 53(11):31-38.

Abstract: With the development of big data, machine learning algorithms have received unprecedented attention. This
paper makes a summary and analysis of several problems about parallel machine learning algorithms in big data, then
provides an overview of the recent advances in parallel machine learning algorithms based on modern parallel computers.
This paper also concludes and summarizes the existing problem in infrastructure architecture of parallel machine learning
algorithms. The paper highlights the recent progress and challenges in parallel machine algorithms for big data and
discusses on some future directions.
Key words: parallel computing; machine learning algorithm; multi-core; cluster; hybrid architecture

摘 要:大数据环境下,
机器学习算法受到前所未有的重视。总结和分析了传统机器学习算法在海量数据场景下出
现的若干问题,
基于当代并行机分类回顾了国内外并行机器学习算法的研究现状,
并归纳总结了并行机器学习算法
在各种基础体系下存在的问题。针对大数据环境下并行机器学习算法进行了简要的总结,
并对其发展趋势作了展
望。
关键词:并行计算 ;
机器学习算法 ;
多核 ;
集群 ;
混合体系
文献标志码:A 中图分类号:TP391 doi:10.3778/j.issn.1002-8331.1702-0002

1 引言 能力提升为国家的综合实力。2013 年,澳大利亚政府发
近年来,随着产业界数据以爆炸性的形式增长 ,催 [1]
布了《大数据战略报告》,将大数据发展列为重大研究领
生了大数据时代的到来,大数据研究已经成为学术界和 域。针对海量数据研究,全球 IT 公司纷纷推出自己的
产业界研究的热点问题 。大数据具有大量化、快速化、[2]
Amazon 公司的 EC2 和 EMR、
大数据平台, Google 公司的
多样化、大价值和高准确性等特点,蕴含着巨大的社会 Google Apps Engine、Microsoft 公司的 Windows Azure、
价值、经济价值和科研价值,已引起了产业界、学术界、 百度公司的百度云以及阿里巴巴的阿里云等。面对商
政府部门和其他组织的高度关注和重视 。2011 年,欧 [3]
业智能分析、天气预测、粒子物理学、生物学等领域爆炸
盟为了促进本地区经济的增长,提出了开放数据战略, 式增长的数据信息,同时这些数据具有多变、复杂、无模
并于次年举办了大数据和欧盟数据论坛。2012 年,美国 式等特性,如何从这些凌乱、真实的海量数据中应用机
政府耗资两亿美元开展大数据研究与发展计划,同时认 器学习技术快速处理并及时挖掘出人们感兴趣的信息
为大数据是未来的“新石油”,并将拥有和运用大数据的 成为迫在眉睫的科学任务,不仅是数据挖掘领域、同时

基金项目:国家自然科学基金(No.61602388);陕西省博士后基金(No.2016BSHEDZZ121);中央高校基本科研业务费专项资金
(No.2452015194,No.2452016081)。
作者简介:刘斌(1981—),男,博士研究生,讲师,CCF 会员,研究领域为并行计算,机器学习;何进荣(1984—),男,博士研究生,讲
师,研究领域为机器学习,机器视觉;耿耀君(1982—),男,博士研究生,讲师,研究领域为机器学习,生物信息学;王最
(1983—),通讯作者,女,助理馆员,研究领域为机器学习,信息检索,E-mail:wangzui2010@gmail.com。
收稿日期:2017-02-06 修回日期:2017-04-05 文章编号:1002-8331(2017)11-0031-08

万方数据
32 2017,53(11) Computer Engineering and Applications 计算机工程与应用

也是并行计算和高性能计算领域最重要的研究方向[4]。 数据载入内存进行迭代计算。
(3)由于单节点计算机处
数据挖掘是指从大量数据中通过算法挖掘出隐藏 理能力受限、可扩展性低等特点,传统的机器学习算法
在其中对用户有价值的信息。作为数据挖掘的核心技 无法适应大数据的进一步发展。
术,机器学习算法能够通过已有经验不断改善算法性
能。因此,近年来,机器学习算法受到前所未有的重视, 3 并行机器学习算法
在个性化推荐、语音识别、垃圾邮件过滤、人脸检测、蛋 为了解决机器学习算法在处理海量数据时所面临
白质结构预测、车辆控制以及医疗诊断等领域得到广泛 的处理速度过慢和存储容量不足等问题,降低机器学习
的应用。然而,传统机器学习算法在海量数据的场景下 算法的计算复杂度,国内外研究者基于当代并行机提出
受到了新的挑战,导致了计算代价高、延迟性大、无法处 了诸多并行机器学习算法。目前主要存在三类并行处
理所有数据等问题,从根本上无法处理大规模海量数 理方式。
据。因此,大多数机器学习算法已经不再适用,大数据 3.1 基于多核与众核的并行机器学习算法
环境下的机器学习算法并行化研究成为产业界和学术 多核/众核是指在一颗处理器中集成两个或者多个
界共同关注的挑战性问题。与此同时,当代计算机并行 完整的计算内核,这些内核独立并行运行程序的多条指
体系结构蕴含着大量的并行性,如何充分有效地利用当 令,加快程序的运行速度。基于多核/众核处理器编程
代并行机设计和实现低复杂度、并行度高的机器学习算 会引起激发线程的开销,因此一般采用中粒度与细粒度
法,成为机器学习领域、并行计算和高性能计算领域面 的任务划分策略,
将计算任务分配到多个处理器上并行执
临的一个亟待解决且极富挑战性的关键科学问题。 行。目前面向多核/众核的并行编程模型,比如 POSIX
本文首先总结了传统机器学习算法的分类及其在 threads(Pthreads)[5]、OpenMP[6]、Threading Building Block
大数据环境下存在的主要问题;然后基于当代并行机分 (TBB)[7]、CUDA[8] 和 Open CL[9] 有效地减轻了程序员并
类回顾了当前并行机器学习算法的研究现状,并分析总 行编程的难度,使得多核/众核编程平台成为主流并行
结了并行机器学习算法存在的问题;最后,针对大数据 机。目前,采用共享内存的多核/众核实现了一些机器
环境下并行机器学习算法进行了简要的总结,并对其发 学习算法[10-14],在国外,斯坦福大学计算机系 Chu 等提出
展趋势进行了展望。 一种“求和”形式的并行编程方法,将常见的 10 种机器
学习算法在多核平台中并行实现[13]。Chu 等针对各种机
2 机器学习算法分类及其在大数据环境下存在 器学习算法进行分析,将算法以“求和”的形式进行改
的问题 写,并将计算任务分成 map 和 reduce 阶段在多核结构中
传统的机器学习算法针对数据集进行预处理、构建 并行执行。实验结果表明所有并行化的机器学习算法
模型,最后使用模型挖掘有价值的信息,机器学习的经 加速比在多核平台上得到不同程度的提升。伊朗科
典算法主要有五种类型,分别为:
(1)聚类算法,采用各 技大学计算机工程系 Hadian 等基于多核平台提出并行
种距离度量技术将一系列的数据点划分到 K 类中,划 K -means 算法 [12]。该研究将大数据集分成多个较小的
分后的聚类结构具有类内相似、类间差距最大的特点。 数据块,并利用并行线程分别对数据块进行局部聚类。
(2)分类算法,事先按照一定的标准给一组对象集合进 然后,将局部聚类结果进行归并处理。实验结果表明该
行分类,并赋予类标签,训练出学习模型,利用该模型对 算法能够在多核平台上更加快速地处理大数据集。斯
未知对象进行分类。
(3)回归算法,综合考虑整个数据集 坦福大学计算机科学系 Raina 等基于 GPU 平台针对无
中因变量和自变量之间的关系进行建模,进而利用模型 监督深度学习算法深度信念网和稀疏编码提出并行化
对给定的自变量进行计算得到预测值。
(4)关联规则算 算法 [10]。实验结果表明深度信念网并行算法加速比提
法,在整个事务型数据中分析同时出现次数较多的频繁 升了近 70 倍,稀疏编码加速比提升了 5~15 倍。在国内,
项集,并将出现次数满足一定阈值的频繁项集作为关联 西北农林科技大学信息工程学院 Huo 等基于 GPU 体系
项集。
(5)降维算法,在机器学习过程中由于对象属性较 结构提出一种并行 K -means 算法 [11]。该研究分析现有
多,为了降低计算复杂度利用各种度量技术将高维空间 的 K -means 算法并识别出算法中蕴含的并行性,充分利
中的数据转换成低维空间中的数据。 用 GPU 体系结构的特点采用分块并行、合并访问、多级
随着大数据时代的到来,面对海量数据的应用场 规约求和与负载均衡等策略设计和优化并行 K -means
景,现有机器学习算法主要存在以下问题:
(1)机器学习 算法。实验结果表明并行 K -means 算法相比串行算法
算法大多都是串行执行的,当数据量较大时算法的整个 加速比最高达 560 倍。南京大学计算机科学与技术系
执行时间在单台计算机上需要很长的时间,导致计算代 Jin 等基于 Intel Xeon Phi 众核协处理器平台提出和实
价高,无法实时响应。
(2)在海量数据场景下,由于单台 现了深度学习的并行算法 [14]。该算法通过减少主机和
计算机存储容量不足,导致存储墙问题,无法将所有的 协处理器之间的数据传递,降低系统开销,同时使用专

万方数据
刘 斌,何进荣,耿耀君,等:并行机器学习算法基础体系前沿进展综述 2017,53(11) 33

门线程从主机向协处理器载入数据来保证所有的处理 集群中,同时在该集群中并行执行特征选择算法。实验
器处于计算状态。实验结果表明该论文提出的方法相 结果表明并行特征选择算法在大规模数据集中处理性
比串行算法其加速比提升了近 300 倍。 能表现优越。在国内,合肥工业大学计算机与信息学院
基于多核/众核的并行机器学习算法存在以下问 Zhang 等基于 MPI 提出了并行化聚类算法[18]。该研究利
题:
(1)为了快速处理较大规模的数据,基于多核与众核 用数据并行策略将较大的数据集拆分成多个小数据集
的处理机制需要厂商构建更多核、更大内存及硬盘的特 并行局部聚类,在局部聚类结束之后同步产生全局聚类
制服务器,这种服务器一般比较昂贵,同时容量较低。 中心。实验结果显示并行聚类算法在大规模数据聚类
(2)由于各个行业不断的发展催生了海量数据,多核/众 过程中时间开销较短。辽宁工程技术大学 Pan 等基于
核平台最终还是很难将大规模数据全部放置在内存中 MPI 编程模型提出一种并行关联规则算法 [22]。该研究
处理,会碰到存储墙问题。因此,由于单节点处理能力 使用 master-slave 体系结构,master 节点负责与 slave 节
受限、可扩展性低等缺点,导致机器学习算法无法适应 点通信和产生全局频繁项集,而 slave 节点负责产生局
大数据的进一步发展,所以研究者提出了线性可扩展性 部候选项集。实验结果显示并行 Apriori 算法在 MPI 集
的集群计算解决方案。 群中具有较好的可扩展性和较高的并行性。浙江工业
3.2 基于集群的并行机器学习算法 大学 Li 等基于 MPI 编程模型提出一种针对遥感图像进
集群是指将地域上互相独立的计算机,通过高速网 行分类的 K -means 算法 [24]。该算法将巨量遥感图像划
络互连起来解决较大的计算任务,具有可扩展性和可靠 分成不相交的子集并发送至不同的工作节点,每个工作
性。由于采用分布式计算会增加节点之间的通信开销 节点聚类该子集中的数据块,最后由主节点将结果分类
和数据迁移延迟,所以一般采用粗粒度的任务划分策 合并。实验结果表明并行 K -means 算法在分类大规模
略,将计算任务分配到各个集群节点并行执行。基于 遥感图像方面加速比性能大幅度提升。
消 息传递的面向集群计算的编程模型主要有 MPI , [15]
然而,基于 MPI 的分布式计算存在开发复杂、扩展
MapReduce 等。基于集群形式实现并行化机器学习
[16]
性不好等问题,已经无法满足日益增长的互联网大规模
算法主要用三种形式: 数据处理的要求。面对调整,基于 MapReduce 分布式计
(1)消息传递接口(Message Passing Interface,
MPI) 算框架的云计算应运而生。
是一种基于消息传递的被广泛采用的并行编程接口 , [17]
(2)MapReduce 是 Google 公司在 2004 年面向大数
近年来,国内外学者基于 MPI 并行计算框架提出了诸多 据提出的并行编程模型和分布式计算框架,并先后发表
并行机器学习算法 [18-24]
。在国外,马来西亚国家能源大 了关于分布式计算 MapReduce[16]、分布式存储 GFS[25] 和
学系统网络系 Salleh 等采用 MPI 提出一种基于分布式 BigTable[26] 三篇论文,奠定了大数据分布式计算框架的
计 算 的 并 行 支 持 向 量 机(Support Vector Machine, 核心基础。随后,Doug Cutting 基于这三篇论文开发了
SVM)算法 。该算法将初始数据集划分成多个子集,
[23]
开源分布式计算平台 Hadoop,Hadoop 不仅是一种编程
并将各子集分散在集群各工作节点中并行训练分类器, 模型,也是在大规模集群中并行处理大数据的相关实
同时通过 MPI 在各工作节点中传递需要通信的数据。 现 ,它 主 要 由 分 布 式 存 储 和 分 布 式 计 算 框 架(Hadoop
实验结果表明并行化的 SVM 算法相比串行 SVM 算法 MapReduce)两 部 分 组 成 ,分 布 式 存 储 系 统(Hadoop
其加速比获得较大的提升。美国 SAS 软件研究所 Zhao Distributed File System,
HDFS)可以让用户方便地存储、
等基于 MPI 编程模型提出一种分布式并行特征选择算 管理和处理海量数据。如图 1 所示,Hadoop MapReduce
法 。该算法通过数据划分策略将数据集分发至 MPI
[21]
的基本工作原理是首先将大数据集划分成若干等份小

数据集 1 Map 函数 Reduce 函数

数据集 2 Map 函数 Reduce 函数



数据 据 HDFS
大数据 分
分区策略
片 Map 函数 Reduce 函数
数据集…

数据集 N Map 函数 Reduce 函数

分布式存储 中间结果 聚合结果

图1 Hadoop MapReduce 工作机制

万方数据
34 2017,53(11) Computer Engineering and Applications 计算机工程与应用

数据集,同时每个任务的执行过程分为 map 和 reduce 阶 理大数据集,同时能将串行机器学习算法很好地扩展到


段。在 map 阶段,分布式并行执行节点 Worker 读取一 集群计算中。中科院计算机研究所 Li 等基于 Hadoop
个数据块,调用 map 函数进行处理,并将结果写到本地 MapReduce 分布式计算框架提出一种并行化的 Apriori
磁 盘 。 在 reduce 阶 段 ,reduce 子 任 务 远 程 读 取 相 关 数 算法 [41]。该算法由 map 和 reduce 函数组成,map 函数以
据,并调用 reduce 函数进行数据合并,并将结果写回到 一种并行方式统计 K -频繁候选项中每一项出现次数,
HDFS 文件系统中。Hadoop 的优点主要有:① 使用廉 然后,reduce 函数同样以并行方式扫描所有事务性数据
价的台式机构建集群,具有较高的计算性能,同时费用 计算具有相同主键的项出现的次数产生 K -频繁项集。
较低;② 程序运行时当节点失效时,具有较好的容错性 实验结果表明并行 Apriori 算法在集群中能有效地处理
能;③ 由于集群的松耦合性,随着问题规模变大,解决 大规模数据集。
方案具有线性可扩展性;④ 底层针对自动并行处理、任 然而,国内外学者研究证明 [44],Hadoop MapReduce
务调度和负载均衡提供了运行时支持库,降低了并行编 计算模型仅适合于数据密集型计算,很难支持具有多次
程难度。 迭代运算的机器学习算法。从 Hadoop MapReduce 工
面 临 大 数 据 的 挑 战 ,一 些 基 于 HadoopMapReduce 作原理可以看出,将机器学习算法用 MapReduce 实现并
框架的并行机器学习算法包括聚类 [27- 32]
、分 类 [33- 35]
、回 存在的系统开销主要有:① Hadoop MapReduce
运行时,
归 [36] 和关联规则 [37-42] 相续被提出。在国外,韩国首尔国 将算法中的每次迭代作为独立的作业执行,在主进程
立大学 Shim 探讨了基于 MapReduce 框架如何设计有效 中 编 写 多 个 独 立 作 业 实 现 其 迭 代 功 能 ,由 于 Hadoop
的并行算法,并且针对大数据时代出现的机器学习和数 MapReduce 中的作业之间彼此是隔离的,作业每次执行
据挖掘算法进行了总结 。斯坦福大学 Chu 等首次基 [43]
时都需要从 HDFS 中读取数据,并且每次运算的结果均
于 MapReduce 编程模型提出适合大数据的机器学习算 要写回磁盘,这会增加系统的 IO 开销,降低系统的整体
[13]
法的通用框架 。Chu 等通过对改造后的经典机器学习 性能;② 迭代型 MapReduce 作业在本次作业结束后,下
算法理论分析发现,新算法并不是原算法的近似解,而 次作业才能开始,这会导致 CPU 和网络带宽等资源处
是精确解,同时分布式实现技术能够随着集群的规模增 于空闲状态,同样会大幅度降低系统的整体性能。因此
大而具有线性可扩展能力。在这篇论文的启示下,力图 Hadoop 平台难以高效地支持需要大量迭代计算的机器
解决大数据环境下机器学习算法并行化的开源算法库 学习算法,会导致机器学习算法的性能低下。为了解决
Mahout 被开发,Mahout 主要解决了聚类、分类和推荐
[36]
此类问题,基于内存计算模型的 Spark[45]被提出,能够很
辽宁工程技术大学 Wang
三个领域的并行算法。在国内, 好地解决迭代算法性能低下的问题。
等基于 Hadoop MapReduce 提出一种改进的 K -medoids (3)Spark 是 UC Berkeley AMP Lab 开发的基于内
算法。该研究团队首先分析了 K -medoids 算法在大数 存计算的大数据并行计算框架 [45]。它是一种更加高效
据环境下遇到收敛速度慢等问题,识别其多层并行性并 的计算框架,以一种容错的方式在大规模集群中执行内
基于 Hadoop 分布式计算平台实现并行 K -medoids 算 存计算[46]。如图 2 所示,Spark 的特性主要是利用了分布
法。实验结果表明并行 K -medoids 算法具有更好的加 式内存,针对机器学习和数据挖掘中的迭代算法,Spark
速比性能 。中科院计算技术研究所 He 等基于 Hadoop
[31]
允许将常用数据及中间结果缓存在内存中进行迭代运
高性能平台提出 K 近邻、朴素贝叶斯和决策树等多种 算,相比 Hadoop,基于 Spark 的聚类算法性能要高出 100
[33]
并行算法 。针对三种机器学习分类算法,挖掘串行算 倍,并且代码长度只有 Hadoop 系统的百分之一。同时,
法中的并行性,并设计了相对应的并行 map 和 reduce 函 Spark 编程模型提供了更为丰富的 API,便于程序员高
数。实验结果表明提出的并行分类算法既能较好地处 效地编写并行算法。相比 Hadoop MapReduce 框架,保
磁盘 MAP 磁盘 REDUCE 磁盘 磁盘 MAP 内存 REDUCE 内存

迭代 迭代

(a)Hadoop Mapreduce 执行流程 (b)Spark 执行流程


图2 Hadoop MapReduce 与 Spark 执行流程

万方数据
刘 斌,何进荣,耿耀君,等:并行机器学习算法基础体系前沿进展综述 2017,53(11) 35

留了线性扩展、容错性和数据局部性等特点。但不同于 核数有限,性能不佳。同时,均为同构体系结构,未能挖
MapReduce 的是作业的中间结果保存在分布式内存中, 掘出算法中蕴含的多层次并行性。因此,近年来,国内
无需频繁读写磁盘,因此,Spark 能更好地支持较多迭代 外研究者从混合体系结构的角度提升机器学习算法的
运算的机器学习和数据挖掘算法,Spark 已经逐渐成为 并行性。
Hadoop MapReduce 的替代方案。 3.3 基于混合体系结构的并行机器学习算法
目前,由于 Spark 平台较新,基于 Spark 的机器学习 由于采用混合计算平台实现机器学习算法并行化
算法的并行化研究还未全部展开,但国内外研究者已经 研究[55-62],并行性会存在于各层并行体系结构,同时也会
在高度关注 Spark 平台并开发出一些并行机器学习算 造成节点之间、节点内部的通信开销,所以一般采用粗
法 [45,47-54]
。在国外,由于 Hadoop MapReduce 计算框架难 粒度和细粒度相结合的任务划分策略,将计算任务分配
以支持较多迭代计算的机器学习算法,Apache 开源的 到各个集群节点及节点内部各层体系结构并行执行。
可扩展计算机器算法库 MLlib 被研发 [49],Spark 提供的 基 于 混 合 计 算 平 台 的 编 程 模 型 主 要 有 MPI/OpenMP、
MLlib 算法库实现的机器学习算法主要包括聚类、回 MPI/GPU、
OpenMP/GPU 等。在国外,
爱丁堡大学 Wood-
归、分类、协同过滤和维度约减,该算法库目前正处于初 send 等基于多核处理器 SMP 组成的 MPI 集群提出了一
期,实现的机器学习算法非常少,无法满足企业界的需 种并行 SVM 算法 [63]。该算法在集群节点之间挖掘出增
求,所以国内外学者基于 Spark 平台在可扩展机器学习 广系统矩阵块的并行性,将数据和线性代数运算分布在
算法方面展开了广泛的研究。法国 ALTIC 公司 Sarazin 多个集群节点中并行执行,同时在集群节点内部利用多
等 基 于 Spark 平 台 提 出 自 组 织 映 射(Self- Organizing 线程体系结构基于数据局部性原理将主要运算映射为
Map,SOM)聚类并行化算法 。该研究将 SOM 算法分 [48]
矩阵乘法运算并行计算。实验结果表明基于混合体系
解成 Spark 中的 map 和 reduce 函数,map 函数用于将输 结构的并行算法实现相比单纯的 MPI 实现运算速度要
入数据匹配到最佳的聚类中心并针对每个原型计算其 更快。斯坦福大学计算机科学系 Coates 等基于 GPU 和
领域因子,而 reduce 函数用于归并每个原型的总和。实 MPI 混合编程模型提出并行深度学习算法 [61]。该算法
验结果表明该研究提出的并行算法在准确率、加速比和 利用 GPU 体系并行执行细粒度的矩阵操作,同时使用
可扩展性方面具有较好的性能。加州大学伯克利分校 MPI 在集群之间进行数据通信。实验结果表明该混合
Zaharia 等基于 Spark 平台提出一种并行化逻辑回归算 体系结构利用 3 台 GPU 集群可以在两天内训练出具有
法 。该研究通过 Spark 平台将逻辑回归中重复使用
[45]
10 亿个参数的深度学习网络,此外利用 16 台 GPU 集群
的数据集缓存在内存中,并通过分布式计算梯度下降的 可以训练出具有 110 亿个参数的学习模型。波兰弗罗
方式优化参数。实验结果表明基于 Spark 平台的并行化 茨瓦夫理工大学 Gajewski 等基于分布式计算 GPU 集群
机器学习算法加速比性能超出 Hadoop 实现的 10 倍以 提出并行 SVM 算法 [62]。该研究将较大的训练数据集划
南京大学 Liu 等基于 Spark 平台利用 SparkR
上。在国内, 分成无依赖的训练子集在分布式节点中计算,当分布式
SVM 和 Logistic
语言包设计并实现了多项式贝叶斯分类、 节点计算结束后利用 MPI 进行数据同步及归并。实验
Regress 并行化算法[50]。Liu 等针对这三种分类算法进行 结果表明基于混合体系结构实现的并行 SVM 算法相比
分析,识别出各机器学习算法中的运算并行性,采用分 串行 SVM 算法及单节点 GPU 实现的 SVM 算法能大幅
而治之的策略将训练学习模型的任务分布在集群中各 度缩减计算时间。在国内,西安交通大学人工智能与机
个节点并行执行。实验结果表明相比 Hadoop 的并行 器人研究所 Mei 等基于 MPI 及 OpenMP 编程模型提出
化,基于 Spark 平台实现的并行化分类算法加速比提升 一种并行 SVM 算法用于图像识别 [58]。该算法利用 MPI
了 8 倍左右。南京大学 Qiu 等基于 Spark 的 RDD 编程模 模型将大任务划分成多个进程任务并部署到分布式节
型提出一种并行的 Apriori 算法 。该算法分为两个阶 [47]
点中,同时利用 OpenMP 模型将每个节点中的进程任务
段,在第一阶段首先将所有事务数据从 HDFS 文件系统 拆分成多个线程任务在共享内存的多核处理器中并行
中 读 入 分 布 式 内 存 构 建 弹 性 分 布 式 数 据 集(Resilient 执行。实验结果表明该研究能够大幅度降低分类器的
Distributed Datasets,RDD),同时产生 1-频繁项集。在 训练时间、缩短存储和内存的访问时间。中国科学院软
第 二 阶 段 利 用 K -频 繁 项 集 迭 代 产 生 (K + 1) -频 繁 项 件研究所 Wang 等基于 MPI 及 OpenMP 提出一种并行
集。相比基于 Hadoop MapReduce 的并行 Apriori 算法, KNN 图构建算法,并将该算法应用到图聚类[57]。该研究
该算法充分利用内存计算减少 IO 操作,实验结果表明 将数据集读入到分布式计算节点中,并在各节点中并行
该算法相比 Hadoop MapReduce 算法加速比提升了 18 构建 KNN 图,最终通过 MPI 通信机制将结果合并。实
倍以上。 验结果表明该研究能够极大地缩短算法运行时间。
综上所述,基于集群计算的并行化机器学习算法优 混合体系结构平台的优势是获得了较佳的数据并
点是易于扩展、可编程性较好。不足之处是单节点由于 行性。同时,基于混合体系结构的并行机器学习算法能

万方数据
36 2017,53(11) Computer Engineering and Applications 计算机工程与应用

挖掘出算法中粗粒度和细粒度两层并行性。然而,存在 框架,可以快速地处理大数据环境下的机器学习算法。
(1)由于采用了 MPI 和 OpenMP 编程模
的问题主要有: 在产业界,百度公司开发了面向 Spark 的异构分布式深
型在数据划分时比较复杂;
(2)未采用基于内存的计算 度学习平台,基于 CPU、GPU 和 FPGA 异构计算提升了
模式,磁盘读写和通信开销较大,系统整体性能不高。 每台计算机的数据处理能力,支持自然语言处理、图像
识别、语音识别和无人驾驶汽车等不同领域的业务应
4 总结与展望 用 [64]。Skymind 公司基于 Spark 异构平台开发了商业级
4.1 总结 分布式机器学习框架 DeepLearning4j,在分布式异构集
大数据环境下,针对机器学习算法面临如何基于当 群(GPU 和 CPU)下支持计算机视觉、模式识别、图像/视
代并行机降低计算复杂度这一关键科学问题,国内外学 频识别和自然语言等应用的处理[65]。此外,Intel 和 NEC
者主要基于多核/众核平台、集群计算和混合计算平台 等公司也分别提出了基于 Spark 的分布式机器学习框
三个方面展开研究,并各自取得了显著的进展。然而, 架[66-67]。在学术界,马萨诸塞大学 Li 等将 CPU/GPU 异构
现有的机器学习算法并行化研究仍然存在一些关键问 平台和 Spark 进行集成提出一种分布式机器学习算法异
题亟待解决,主要问题如下: 构平台 HeteroSpark[68]。南京信息信息工程大学周等构
(1)机器学习算法中蕴含多层并行性,并行度有待 建了 CPU 和 GPU 的 Spark 分布式计算框架 [69]。此外,诸
提高。大多数机器学习算法中具有不同层次的迭代操 多学者在整合 spark 异构云平台上的 CPU 和 GPU 资源
作,每次迭代包含大量并行子过程。因此,机器学习算 方面取得了突出成果 [69- 70],实现了 CPU 和 GPU 混合计
法中蕴含不同层次的并行性。然而,现有的机器学习算 算,广泛用于机器学习、数据挖掘和图像检索领域。
法并行化研究大多都是基于同构体系结构,仅挖掘出算 综上所述,以 Spark 异构云平台作为机器学习算法
法中某一层的并行性,未能挖掘出算法的多层并行性, 并行化的计算平台,为针对大规模数据处理的机器学习
并行度有待提高。 算法并行化创造了有利的条件。然而,由于 Spark 集群
(2)大数据环境下机器学习算法高计算代价有待 的新颖性,基于 Spark 异构云平台的机器学习算法并行
降低。虽有少数前瞻性研究探索基于混合计算平台进 化研究较少,这将是以后研究的一个重要方向。
行机器学习算法并行化的研究,但目前的研究仅局限
于单节点内的异构平台以及基于 MPI 异构集群,其编 参考文献:
程比较复杂,通信及磁盘读写开销较大,扩展性不佳, [1] 李国杰,程学旗 . 大数据研究未来科技及经济社会发展的
重大战略领域[J]. 中国科学院院刊,2012,27(6):647-657.
无法解决大数据环境下可扩展机器学习算法的高计算
[2] 何清,李宁,罗文娟,等 . 大数据下的机器学习算法综述[J].
代价问题。
模式识别与人工智能,2014(4):327-336.
(3)未依照各层并行机计算能力进行任务划分以及
[3] 李国杰 . 大数据研究的科学价值[J]. 中国计算机学会通讯,
缺乏多级任务动态调度机制。已有研究在任务分解时,
2012,8(9):8-15.
没有考虑混合体系结构环境下各种异构并行机的计算
[4] Dobre C,Xhafa F.Parallel programming paradigms and
处理能力,只是将任务分解成大致相同的并行粒度,没 frameworks in big data era[J].International Journal of
有根据计算能力的大小分配并行任务。同时,在任务调 Parallel Programming,2014,42(5):710-738.
度时只考虑单级调度,未考虑集群级、处理器级、GPGPU [5] Awile O,Sbalzarini I F.A pthreads wrapper for fortran
级动态任务调度策略。 2003[J].ACM Transactions on Mathematical Software,
4.2 展望 2014,40(3):1-15.
近年来,基于 Spark 异构云平台逐渐成为主流并行 [6] Schmidl D,Cramer T,Terboven C,et al.AnOpenMP ex-
体系架构,在计算、并行编程模型等方面带来了众多创 tension library for memory affinity[J].Lecture Notes in
Computer Science,2014,8766:103-114.
新模式,为面向异构集群的机器学习算法并行化研究提
[7] Apostolakis J,Belogurov S,Brun R,et al.Parallelization
供了契机。首先,集群中各异构节点(CPUs+GPUs 和其
of particle transport using Intel TBB[J].Journal of Physics,
他异构平台 MIC 等)具有不同的处理能力(不同的体系
2014,513(5):1-5.
结构、不同核个数、不同的网络带宽和内存容量),异构
[8] Wilt N.Thecuda handbook:a comprehensive guide to GPU
集群中各层并行体系结构蕴含了大量的多层次并行
programming[M].[S.l.]:Pearson Education,2013:147-153.
性。其次,异构集群具有动态可扩展性和容错性,适用 [9] Su C,Chen P,Lan C,et al.Overview and comparison of
于计算问题不断扩大的机器学习算法应用,并可改变机 OpenCL and CUDA technology for GPGPU[C]//Proceed-
器学习算法计算代价高、时间延迟大的研究现状。最 ings of the IEEE Asia Pacific Conference on Circuits and
后,更为重要的一点是 Spark 是基于内存的分布式计算 Systems,Piscataway,2012:448-451.

万方数据
刘 斌,何进荣,耿耀君,等:并行机器学习算法基础体系前沿进展综述 2017,53(11) 37

[10] Raina R,Madhavan A,Ng A Y.Large-scale deep unsu- algorithm based on MPI[C]//Proceedings of the 2nd
pervised learning using graphics processors[C]//Proceed- IEEE International Conference on Computer Science
ings of the 26th International Conference on Machine and Information Technology,Piscataway,2009:443-446.
Learning,New York,2009:873-880. [23] Salleh N S M,Suliman A,Ahmad A R.Parallel execu-
[11] Huo Y,Qin R,Xing C,et al.CUDA-based parallel K - tion of distributed SVM using MPI[C]//Proceedings of
means clustering algorithm[J].Transactions of the Chinese the International Conference on Information Technology
Society for Agricultural Machinery,2014,45(11):47-53. and Multimedia,Piscataway,2011:1-4.
[12] Hadian A,Shahrivari S.High performance parallel k -means [24] Li J,Qin Y,Ren H.Research on parallel unsupervised
clustering for disk-resident datasets on multi-core CPUs[J]. classification performance of remote sensing image
Journal of Supercomputing,2014,69(2):845-863. based on MPI[J].Optik,2012,123(21):1985-1987.
[13] Chu C,Kim S K,Lin Y,et al.Map-reduce for machine [25] Ghemawat S,Gobioff H,Leung S.The google file system[C]//
learning on multicore[C]//Proceedings of the 20th Annual Proceedings of the 19th ACM Symposium on Operating
Conference on Neural Information Processing Systems, Systems Principles,New York,2003:29-43.
Amsterdam,2007:281-288. [26] Chang F,Dean J,Ghemawat S,et al.Bigtable:a distributed
[14] Jin L,Wang Z,Gu R,et al.Training large scale deep storage system for structured data[J].ACM Transactions
neural networks on the intel xeon phi many- core copro- on Computer Systems,2008,26(2):4-26.
cessor[C]//Proceedings of the International Parallel and [27] 张雪萍,龚康莉,赵广才 . 基于 MapReduce 的 K-Medoids
Distributed Processing Symposium,Piscataway,2014: 并行算法[J]. 计算机应用,2013(4):1023-1025.
1622-1630. [28] Lv Z,Hu Y,Zhong H,et al.Parallel K - means clustering
[15] Boeu R,Tabirea S.Protein communities detection optimi- of remote sensing images based on MapReduce[C]//
zation through an improved parallel Newman- Girvan Proceedings of the International Conference on Web
algorithm[C]//Proceedings of the Roedunet International Information Systems and Mining,Berlin,2010:162-170.
Conference,Piscataway,2010:380-385. [29] Chao L,Yan Y,Tonny R.A parallel Cop-Kmeans clustering
[16] Dean J,Ghemawat S.MapReduce:simplified data pro- algorithm based on MapReduce framework[C]//Proceedings
cessing on large clusters[J].Communications of the ACM, of the 6th International Conference on Intelligent Sys-
2008,51(1):107-113. tems and Knowledge Engineering,Berlin,2011:93-102.
[17] Gropp W,Lusk E,Doss N,et al.A high- performance, [30] Ene A,Im S,Moseley B.Fast clustering using MapRe-
portable implementation of the MPI message passing duce[C]//Proceedings of the 17th ACM SIGKDD Inter-
interface standard[J].Parallel Computing,1996,22(6): national Conference on Knowledge Discovery and Data
789-828. Mining,New York,2011:681-689.
[18] Zhang J,Wu G,Hu X,et al.A parallel K-means clustering [31] 王永贵,戴伟,武超 . 一种基于 Hadoop 的高效 K -Medoids
algorithm with MPI[C]//Proceedings of the 4th Interna- 并行算法[J]. 计算机工程与应用,2015,51(16):47-54.
tional Symposium on Parallel Architectures,Algorithms [32] 唐东明 . 基于 Hadoop 的仿射传播大数据聚类分析方法[J].
and Programming,Piscataway,2011:60-64. 计算机工程与应用,2015,51(4):29-34.
[19] Yan Z,Gao T,Huo Q.Designing an MPI-based parallel [33] He Q,Zhuang F,Li J,et al.Parallel implementation of
and distributed machine learning platform on large- scale classification algorithms based on MapReduce[M]//Rough
HPC clusters[C]//Proceedings of the International Work- set and knowledge technology.[S.l.]:Springer,2010:655-662.
shop on Statistical Machine Learning for Speech Process- [34] Zhou L,Wang H,Wang W.Parallel implementation of
ing,Piscataway,2012:1-5. classification algorithms based on cloud computing en-
[20] Ramirez J,Dormido- Canto S,Vega J.Parallelization of vironment[J].TELKOMNIKA Indonesian Journal of Elec-
automatic classification systems based on support vector trical Engineering,2012,10(5):1087-1092.
machines:comparison and application to JET database[J]. [35] Ke X,Jin H,Xie X,et al.A distributed SVM method
Fusion Engineering and Design,2010,85(3/4):425-427. based on the iterative MapReduce[C]//Proceedings of the
[21] Zhao Z,Cox J,Duling D,et al.Massively parallel feature 9th IEEE International Conference on Semantic Computing,
selection:an approach based on variance preservation[C]// Piscataway,2015:116-119.
Proceedings of the European Conference on Machine [36] Apache Mahout Project[EB/OL].[2016-03-20].http://mahout.
Learning and Principles and Practice of Knowledge apache.org/.
Discovery in Databases,Berlin,2012:237-252. [37] Wang L,Feng L,Zhang J,et al.An efficient algorithm
[22] Pan Weihao,Sun Jinguang.Research for parallel apriori of frequent itemsets mining based on MapReduce[J].

万方数据
38 2017,53(11) Computer Engineering and Applications 计算机工程与应用

Journal of Information and Computational Science,2014, [51] 曹博,倪建成,李淋淋,等 . 基于 Spark 的并行频繁模式挖


11(8):2809-2816. 掘算法[J]. 计算机工程与应用,2016,52(20):86-91.
[38] Zhou X,Huang Y.An improved parallel association rules [52] 邱荣财 . 基于 Spark 平台的 CURE 算法并行化设计与应
algorithm based on MapReduce framework for big data[C]// 用[D]. 广州:华南理工大学,2014.
Proceedings of the 11th International Conference on [53] 胡善杰 . 在云环境下的数据挖掘算法的并行化研究[D].
Fuzzy Systems and Knowledge Discovery,Piscataway, 成都:电子科技大学,2013.
2014:284-288. [54] Ahmed L,Edlund A,Laure E,et al.Using iterative Map-
[39] Lin M,Lee P,Hsueh S.Apriori- based frequent itemset Reduce for parallel virtual screening[C]//Proceedings of
mining algorithms on MapReduce[C]//Proceedings of the the 5th IEEE International Conference on Cloud Computing
6th International Conference on Ubiquitous Information Technology and Science,Piscataway,2013:27-32.
Management and Communication,New York,2012:1-8. [55] Lee D,Vuduc R,Gray A G.A distributed kernel summation
[40] Zhang Z,Ji G.Design and implementation of algorithm framework for general- dimension machine learning[C]//

Apriori based on iterative MapReduce[J].Journal of Proceedings of the 12th SIAM International Conference

Huazhong University of Science and Technology,2012, on Data Mining,Hoboken,2012:391-402.

40(SUPPL1):9-12. [56] Lee D,Sao P,Vuduc R,et al.A distributed kernel summa-

[41] Li N,Zeng L,He Q,et al.Parallel implementation of tion framework for general-dimension machine learning[J].
Statistical Analysis and Data Mining,2014,7(1):1-13.
apriori algorithm based on MapReduce[C]//Proceedings
[57] Wang D,Zheng Y,Cao J.Parallel construction of approxi-
of the 13th ACIS International Conference on Software
mate kNN graph[C]//Proceedings of the 11th International
Engineering,Artificial Intelligence,Networking,and Par-
Symposium on Distributed Computing and Applications
allel/Distributed Computing,Piscataway,2012:236-241.
to Business,Engineering and Science,Piscataway,2012:
[42] 葛琳,季新生,江涛 . 基于关联规则的网络信息内容安全
22-26.
事 件 发 现 及 其 Map- Reduce 实 现 [J]. 电 子 与 信 息 学 报 ,
[58] Mei K,Dong P,Lei H,et al.A distributed approach for
2014(8):1831-1837.
large-scale classifier training and image classification[J].
[43] Shim K.MapReduce algorithms for big data analysis[J].
Neurocomputing,2014,144:304-317.
VLDB Endowment,2012,5(12):2016-2017.
[59] Waghmare V N,Kulkarni D B.Convex hull using k-means
[44] 张红,王晓明,曹洁,等 .Hadoop 云平台 MapReduce 模型
clustering in hybrid(MPI/OpenMP)environment[C]//
优化研究[J]. 计算机工程与应用,2016,52(22):22-25.
Proceedings of the International Conference on Compu-
[45] Zaharia M,Chowdhury M,Franklin M J,et al.Spark:
tational Intelligence and Communication Networks,Piscat-
cluster computing with working sets[C]//Proceedings of
away,2010:150-153.
the 2nd USENIX Conference on Hot Topics in Cloud
[60] Eitrich T,Frings W,Lang B.HyParSVM- a new hybrid
Computing,Berkeley,2010:1-10.
parallel software for support vector machine learning on
[46] Zaharia M,Chowdhury M,Das T,et al.Resilient distributed
SMP clusters[C]//Proceedings of the 12th International
datasets:a fault- tolerant abstraction for in- memory cluster
Euro-Par Conference,Berlin,2006:350-359.
computing[C]//Proceedings of the 9th USENIX Confer-
[61] Coates A,Huval B,Wang T,et al.Deep learning with
ence on Networked Systems Design and Implementa- COTS HPC systems[C]//Proceedings of the 30th Inter-
tion,Berkeley,2012:1-14. national Conference on Machine Learning,Piscataway,
[47] Qiu H,Gu R,Yuan C,et al.YAFIM:a parallel frequent 2013:2374-2382.
itemset mining algorithm with spark[C]//Proceedings of [62] Gajewski K,Wozniak M.Performance evaluation of
the 28th IEEE International Parallel and Distributed hybrid implementation of support vector machine[C]//
Processing Symposium Workshops,Piscataway,2014: Proceedings of the 13th International Conference on
1664-1671. Intelligent Data Engineering and Automated Learning,
[48] Sarazin T,Azzag H,Lebbah M.SOM clustering using Berlin,2012:779-786.
spark- MapReduce[C]//Proceedings of the 28th IEEE [63] Woodsend K,Gondzio J.Hybrid MPI/OPENMP parallel
International Parallel and Distributed Processing Sym- linear support vector machine training[J].Journal of
posium Workshops,Piscataway,2014:1727-1734. Machine Learning Research,2009,10:1937-1953.
[49] Apache Spark Project[EB/OL].[2016-03-20].http://spark. [64] 张伟德,曲宁,刘少山 . 基于 Spark 的异构分布式深度学习
apache.org/mllib/. 平台[EB/OL].(2016-03-03)[2017-03-12].http://geek.csdn.
[50] 刘志强,顾荣,袁春风,等 . 基于 SparkR 的分类算法并行 net/news/detail/58867.
化研究[J]. 计算机科学与探索,2015,9(11):1281-1294. (下转 89 页)

万方数据
毛燠锋,钱振兴,万定生,等:基于条件函数依赖的 CTANE 算法研究与应用 2017,53(11) 89

为总库容为度量类数据,在数据准备阶段已经将该度量 [5] Fan W,Geerts F,Lakshmanan L V S,et al.Discovering


进行了聚类,P201_034=5 表示“水库总库容≥10 000 万 conditional functional dependencies[J].IEEE Transactions
立方米”的水库。除此,表 5 列举的审核关系都在表 6 中 on Knowledge & Data Engineering,2011,23(5):683-698.
展现,说明 SLPC-CTANE 算法能准确地发现水利普查 [6] 张守志,施伯乐 . 一种发现函数依赖集的方法及应用[J]. 软

数据中蕴含的 CFDs,并且能发现比审核关系更多,更具 件学报,2003,14(10):1692-1696.

体的 CFDs。 [7] 钱振兴,万定生,李士进,等 . 基于水利普查数据的函数依


赖关系算法[J]. 计算机与现代化,2014(8):96-100.
综合上述实验,改进后的 CTANE,即 SLPC-CTANE
[8] Casanova M A,Fagin R,Papadimitriou C H.Inclusion
算法能在保证算法的正确性上更快地得到数据中的约
dependencies and their interaction with functional depen-
束条件。同时,搜索到的 CFDs 比根据专家经验得到的
dencies[J].Journal of Computer and System Sciences,
约束条件更具体,
能更好地反应水利普查数据的一致性。
1984,28(1):29-59.
[9] Medina R,Nourine L.A unified hierarchy for functional
6 结语 dependencies,conditional functional dependencies and as-
本文根据水利普查数据的特点将普查数据中的度 sociation rules[M]//Formal concept analysis.Berlin/Heidel-
量数据进行聚类并将其保存到数据库中,然后提出了搜 berg:Springer,2009:98-113.
索水利普查数据库表中蕴含的条件函数依赖的算法: [10] 周健昌,卜媛媛 . 条件函数依赖及其在领域无关数据清洗
SLPC-CTANE。针对水利普查数据搜索空间庞大,算法 中的应用[J]. 微型电脑应用,2012,28(9):23-26.
复杂度较高,本文基于条件函数依赖的基本理论提出了 [11] 胡艳丽,张维明 . 条件依赖理论及其应用展望[J]. 计算机
四种剪枝策略,对算法进行了优化。并将其应用到水利 科学,2009,36(12):115-118.
普查数据质量检测中,证明了算法的可行性、高效性、准 [12] Huhtala Y,Kärkkäinen J,Porkka P,et al.TANE:an effi-
确性和稳定性。 cient algorithm for discovering functional and approxi-
mate dependencies[J].The Computer Journal,1999,42

参考文献: (2):100-111.

[1] 张方舟,高晓松 . 基于条件函数依赖的挖掘算法研究[J]. 计 [13] Lopes S,Petit J M,Lakhal L.Efficient discovery of

算机技术与发展,2015(5):56-59. functional dependencies and armstrong relations[C]//

[2] 胡艳丽,张维明,肖卫东,等 . 内置谓词函数依赖及其推理 EDBT,2000:350-364.


规则[J]. 国防科技大学学报,2009,31(5):58-63. [14] 高宾 . 基于 PC 的开放式数控系统中的 PLC 系统研究[D].
[3] Fan W,Geerts F,Jia X,et al.Conditional functional depen- 北京:北京工业大学,2001.
dencies for capturing data inconsistencies[J].ACM Transac- [15] 周健昌,刘波 . 一种条件函数依赖挖掘算法的分析与实
tions on Database Systems,2008,33(2). 现[J]. 计算机与数字工程,2012,40(9):8-11.
[4] Han Jiawei,Kamber M. 数据挖掘概念与技术[M]. 范明, [16] 刘万军,赵永刚,闵亮 . 结合 k -means 的自动 FCM 图像分
孟小峰,译 . 北京:机械工业出版社,2010. 割方法[J]. 计算机工程与应用,2015,51(16):199-203.

(上接 38 页) neous CPU/GPU Spark platform for machine learning


[65] Patterson J,Gibson A.Deep learning:a practitioner’s algorithms[C]//Proceedings of the IEEE International
approach[M].Sebastopol:O’REILLY,2017. Conference on Networking,Architecture and Storage,
[66] Rodrigues A.Intel open-sources BigDL,distributed deep Piscataway,2015:347-348.
learning library for Apache Spark[EB/OL].(2017-01-13) [69] Boubela R N,Kalcher K,Huf W,et al.Big data approaches
[2017- 03- 23].https://www.infoq.com/news/2017/01/bigdl- for the analysis of large- scale FMRI data using Apache
deep-learning-on-spark. Spark and GPU processing:a demonstration on resting-
[67] Asahara M,Fujimaki R.Distributed heterogeneous mixture state FMRI data from the human connectome project[J].
learning on Spark[EB/OL].(2016-06-08)[2017-03-23]. Frontiers in Neuroscience,2016,9.
https://spark- summit.org/2016/events/distributed- heteroge- [70] Segal O,Colangelo P,Nasiri N,et al.SparkCL:a unified
neous-mixture-learning-on-spark/. programming framework for accelerators on heteroge-
[68] Li P,Luo Y,Zhang N,et al.HeteroSpark:a heteroge- neous clusters[J].arXiv:1505.01120,2015:1-6.

万方数据

You might also like