Download presentation
Presentation is loading. Please wait.
1
Octopus(大章鱼): 基于R语言的跨平台大数据 机器学习与数据分析系统
Hadoop Spark MPI OpenMP CUDA Unified Programming Model and Platform … Unified Matrix Abstract Computation Model Octopus(大章鱼): 基于R语言的跨平台大数据 机器学习与数据分析系统 黄 宜 华 南京大学PASA大数据技术实验室 南京大学计算机软件新技术国家重点实验室 江苏省软件新技术与产业化协同创新中心 Strata+Hadoop大会,北京,
2
南京大学PASA大数据技术实验室 PASA BigData Lab studies on Parallel Algorithms
Systems, and Applications for Big Data Processing We are one of the earliest research labs on Big Data in China, entering big data research area since 2009
3
南京大学PASA大数据技术实验室 南京大学PASA大数据实验室是国内最终从事大数据技术研究和教学的团队之一。早在大 数据还鲜为关注的2009年,本实验室已经进入大数据技术研究领域。实验室自2009年以 来在大数据技术领域开展了一系列系统深入的研究开发工作,在分布式大数据存储和查询、 分布式文件系统、大数据并行计算模式与系统、Hadoop/Spark性能优化与功能增强、并 行化机器学习和数据挖掘算法、大数据机器学习系统、大规模Web信息挖掘集成、大规 模文本语义分析、并行机器翻译算法、大数据行业应用等方面,开展了广泛的研究,积累 了系统的研究和技术基础,近6年来课题组在国内外学术期刊和国际会议上发表了大数据 相关研究论文30多篇,撰写大数据技术书籍/教材两部 实验室承担国家级、部省级大数据研究项目多项,并开展了与Google、Intel、微软亚洲 研究院、百度、华为、中兴通讯等国内外著名企业开展合作研究;此外还与UC Berkeley AMP实验室在Spark和分布式内存文件系统Tachyon方面开展合作研究;此外,课题组还 开展了电力、电信、等典型行业的大数据平台和分析应用研究
4
南京大学PASA大数据技术实验室 Our research areas
Parallel Computing Models and Frameworks & Hadoop/Spark Performance Optimization Hadoop job and resource scheduling optimization Spark RDD persisting optimization Big Data Storage and Query Tachyon Optimization Performance Benchmarking Tools for Tachyon and DFS HBase Secondary Indexing (HBase+In-memory) and query system Large-Scale Semantic Data Storage and Query Large-scale RDF semantic data storage and query system(HBase+In-memory) RDFS/OWL semantic reasoning engines on Hadoop and Spark Machine Learning Algorithms and Systems for Big Data Analytics Parallel MLDM algorithm design with diversified parallel computing platforms Unified programming model and platform for MLDM algorithm design
5
南京大学PASA大数据技术实验室 在大数据领域多年研究和教学成果基础上,编写出版了《深入理解大数据》一书(480页, 机械工业出版社, 2014),该书已作为国家教委计算机教指委“计算机系统能力培养”系列教材
6
上篇 大数据机器学习系统概述 下篇 大章鱼:跨平台大数据 机器学习与数据分析系统
报 告 内 容 上篇 大数据机器学习系统概述 下篇 大章鱼:跨平台大数据 机器学习与数据分析系统
7
上篇:大数据机器学习系统概述 上 篇 1. 大数据机器学习:从算法到系统 2. 大数据机器学习系统的技术特征 3. 大数据机器学习系统的主要研究问题 4. 大数据机器学习方法分类与典型系统
8
1. 大数据机器学习:从算法到系统 大数据隐含着很多深度知识和价值,大数据智能化分析挖掘将能为行业/企业带来巨大的 商业价值,实现多种高附加值的增值服务,从而提升行业/企业生产管理决策水平和经济 效益 大数据分析挖掘主要分为简单分析和智能化复杂分析两大类;大数据的深度价值发现仅仅 通过简单分析是难以实现的,必须使用基于机器学习的智能化复杂分析才能完成 机器学习和数据分析是将大数据转换成有用知识的关键技术 研究表明,通常数据规模越大,机器学习效果会越好 大数据 + 强大的计算能力,成为推动大数据时代人工智能技术和应用发展的动力,将基 于大数据的机器学习和人工智能推上新一轮发展浪潮 CCF 2015年大数据十大发展趋势预测:“结合智能计算的大数据分析”成为第一大预测热 点。“大数据与神经计算、深度学习、语义计算以及人工智能其他相关技术结合,成为大 数据分析领域的热点。”
9
1. 大数据机器学习:从算法到系统 Facebook人工智能实验室 百度大脑 Microsoft Adam 微软人工智能项目
大数据+机器学习是驱动全球互联网企业的核心 “谷歌实际上不是一个搜索公司,它是一个机器学习公司。” 随着大数据时代的来临,IBM、Google、Facebook、微软、百度、腾讯、科大讯 飞等国内外著名企业纷纷成立专门的基于大数据的机器学习与人工智能研发机 构,深入研究基于大数据的机器学习和智能化计算技术 百度大脑 Google大脑 讯飞超脑:实现基于类人神经网络的中文认知智能引擎 AlphaGo系统 Facebook人工智能实验室 Microsoft Adam 微软人工智能项目
10
1. 大数据机器学习:从算法到系统 大数据机器学习并行化算法 并行化机器学习与数据挖掘算法设计是复杂大数据分析关键技术之一
Hadoop、Spark等各种大数据计算技术与平台出现后,人们普遍关注如何在这些平台上设计实现各种大数据机器学习和数据挖掘并行化算法
11
1. 大数据机器学习:从算法到系统 分类算法 (Classification) 聚类 (Clustering) 关联规则挖掘
大规模支持向量机 (Large Scale SVM) 神经网络 (Neural Network) 朴素贝叶斯 (Naïve Bayes) 决策树 (Decision Trees) 聚类 (Clustering) 关联规则挖掘 参数估计 (Parameters Estimation) 高维度数据降维 (Dimension Reduction) 集成学习 (Ensemble Learning ) 图数据算法 图聚类,图分类,图模式匹配(子图同构、最大公共子图) 深度学习算法(CNN,DNN等)
12
1. 大数据机器学习:从算法到系统 大数据机器学习并行化算法总结 迫切需要研究提供一种统一并易于使用的大数据机器学习系统支撑平台!
面向大数据复杂分析挖掘,现有的串行化机器学习与数据挖掘算法都需要重写,进行并行化设计 不同的大数据并行处理平台上,各种大数据机器学习与数据挖掘算法需要进行基于特定平台的并行化算法设计 多种大数据并行处理平台为大数据分析挖掘处理提供了良好的并行编程模型和支持平台,但对于应用行业的数据分析师来说,需要具备分布式和并行计算的专业知识背景,技术门槛要求较高,不易学习和使用 即使对于专业性的大数据应用开发程序员来说,学习多种不同的编程模型和平台、并基于不同平台完成各种机器学习与数据挖掘算法的并行化设计,也是一个很大的负担 迫切需要研究提供一种统一并易于使用的大数据机器学习系统支撑平台!
13
1. 大数据机器学习:从算法到系统 大数据机器学习系统 =“分布式机器学习系统”(Distributed Machine Learning)
或“大规模机器学习系统”(Large-Scale Machine Learning) 大数据机器学习是一个同时涉及到机器学习和大数据处理两个主要方面的交叉性研 究课题: 机器学习:一方面,它仍然需要继续关注机器学习方法和算法本身,即需要继 续研究新的或改进的学习模型和学习方法,以不断提升分析预测结果的准确性 大数据处理:与此同时,由于数据规模巨大,大数据机器学习还要关注如何结 合分布式和并行化的大数据处理技术,以便在可接受的时间内完成计算。为了 能有效完成大数据机器学习过程,需要研究并构建兼具机器学习和大规模分布 并行计算处理能力的一体化系统
14
上篇:大数据机器学习系统概述 上 篇 1. 大数据机器学习:从算法到系统 2. 大数据机器学习系统的技术特征 3. 大数据机器学习系统的主要研究问题 4. 大数据机器学习方法分类与典型系统
15
2. 大数据机器学习系统技术特征 大数据机器学习 = 机器学习 + 大数据处理 同时涉及机器学习和大数据处理两方面的诸多复杂技术问题:
1)机器学习方面的模型、训练、精度问题 2)大数据处理方面的分布式存储、并行化计算、网络通讯、局部性计算、任务调度、容错等诸多因素 机器学习 大数据处理 大数据机器学习系统所涉及的复杂因素 插图引自:Joseph E. Gonzalez. Emerging Systems for Large-Scale Machine Learning. Tutorial on ICML 2014
16
2. 大数据机器学习系统技术特征 构建大数据机器学习系统的重要技术特征:
需要通过系统抽象来降低大数据机器学习系统设计的复杂 性,隔离底层大数据平台对上层机器学习算法设计者使用 的复杂性 一个良好设计的大数据机器学习系统,应当通过定义特 定的机器学习编程计算和系统抽象接口 通过编程计算和系统抽象层API,向上提供各种机器学 习编程计算接口以及学习模型和训练数据的表示,向下 由底层分布式系统负责处理并提供高效的分布和并行化 计算实现 通过编程计算和系统抽象层,将上层机器学习和底层分 布式系统解耦开来,实现低层大数据平台对程序员的透 明性,使得程序员不需要去考虑底层大数据处理系统层 面的因素 大数据机器学习系统抽象
17
上篇:大数据集学习系统概述 上 篇 1. 大数据机器学习:从算法到系统 2. 大数据机器学习系统的技术特征 3. 大数据机器学习系统的主要研究问题 4. 大数据机器学习方法分类与典型系统
18
3. 大数据机器学习系统的主要研究问题 Apache Flink大数据分析系 统研究者从数据分析复杂程 度和数据规模大小的维度, 考察了现有的相关研究工作 和系统 他们认为,目前还缺少既具 有复杂数据分析能力、又具 有强大的大数据处理能力的 大数据分析系统;甚至认为, 对于行业大数据分析人员而 言,现有的工具还处于“石 器时代” Apache Flink研究者提出的分析维度和研究现状 插图引自 Volker Markl,VLDB 2014 Volker Markl. Breaking the Chains : On Declarative Data Analysis and Data Independence in the Big Data Era. VLDB 2014 Keynote
19
3. 大数据机器学习系统的主要研究问题 UC Berkeley AMPLab从计算性 能和系统易用性两个重要维度, 考察了现有的大数据机器学习研 究工作和系统。根据这两个维度, 他们认为,面向机器学习和数据 分析时,目前已有的工作和系统, 绝大多数都未能同时具备大规模 分析处理能力和良好的系统易用 性 Spark系统研究者提出的分析维度和研究现状 插图引自: Kraska et. al. CIDR 2013 结论:大数据机器学习除了继续关注传统意义上的学习方法和算法问题外,需要重点关 注和研究解决大数据场景下所特有的两大技术问题和挑战: 一是大数据复杂分析时的计算性能问题 二是大数据机器学习系统的易用性和可编程性问题 Kraska, Tim and Talwalkar et. al. MLbase: A Distributed Machine-learning System. the 6th Conference on Innovative Data Systems Research(CIDR), 2013
20
3. 大数据机器学习系统的主要研究问题 计算性能问题
小数据集上很多复杂度在O(n)、O(n2)、O(n3) 的传统串行化机器学习算法都可以有效 工作。但当数据规模增长到极大尺度,现有的串行化算法难以在可接受的时间完成计算, 使得算法在实际应用场景中失效。 大数据时代,在大型互联网企业,大规模机器学习算法经常用于处理高达十亿至千亿级 别的样本、以及高达一亿至数十亿以上数据特征的大规模数据集,如此大量的训练样本, 加上机器学习算法本身的复杂性,导致难以在传统的串行化计算平台上、在可接受的时 间内完成 Google著名的Seti太空搜索项目:需要进行高达千亿样本、十亿特征数据的大规模机器 学习 腾讯Peacock主题模型分析系统:高达十亿文档、百万词汇、百万主题的主题模型训练, 而仅仅是一个百万词汇乘以百万主题的矩阵,其数据存储量即高达3TB,如果再考虑十 亿文档乘以百万主题的矩阵,则其数据量更是高达3PB之大
21
3. 大数据机器学习系统的主要研究问题 易用性和可编程性问题
对于普通的数据分析程序员或机器学习研究者来说,在特定的大数据编程模型 和平台下进行并行化机器学习和数据分析算法设计,需要掌握很多分布式系统 背景知识和并行程序设计技巧,这对他们来说难度较大,导致他们经常要把实 际工作的大部分时间都花费在底层复杂的并行化和分布式编程和调试上,给他 们的上层数据分析和算法设计工作带来很大的不便和困难,导致在普通程序员 与现有的各种大数据处理平台之间存在一个难以逾越的鸿沟 根据Google Seti项目研究人员在开发实际的大型机器学习系统上的经验,在 面向大数据时,考虑到用户开发效率问题,系统易用性与提高机器学习精度几 乎同等重要,有时甚至比精度问题更为重要,“也许过去学术界很少关心设计 一个精度稍差、但有更好易用性和系统可靠性的学习算法,但是,在我们的实 际应用中,这会体现出非常重要的价值”
22
3. 大数据机器学习系统的主要研究问题 易用性和可编程性问题 Hadoop的出现使得大数据处理技术和平台从无到有
基于内存计算的Spark系统的出现使得大数据分析计算从慢到快 然而,现有的大数据处理技术和系统平台都存在很大的易用性问题, 难以为普通的程序员掌握和使用
23
3. 大数据机器学习系统的主要研究问题 易用性和可编程性问题 大数据处理的两大计算类型
24
A Big Gap! 3. 大数据机器学习系统的主要研究问题 易用性和可编程性问题 数学建模 分析师 分析工具 大数据处理平台和编程模型
a11 a12 ... a21 a22 ... ... [ a1, a2, a3, a4, ...] 对于普通的数据分析程序员或机器学习研究者来说,在特定的大 数据编程模型和平台下进行并行化机器学习和数据分析算法设计, 需要掌握很多分布式系统背景知识和并行程序设计技巧,这对他 们来说难度较大,导致他们经常要把实际工作的大部分时间都花 费在底层复杂的并行化和分布式编程和调试上,给他们的上层数 据分析和算法设计工作带来很大的不便和困难,导致在普通程序 员与现有的各种大数据处理平台之间存在一个难以逾越的鸿沟 A Big Gap! 大数据处理平台和编程模型 MPI、Fortran/C++ ScaLAPACK; GPU CUDA、BIDMach; Scala、Spark RDD; Hadoop MR; 1.底层工具语言级别:只能使用数组、结构体来模拟表达矩阵; 2.处理大数据的方式:处理
25
上篇:大数据集学习系统概述 上 篇 1. 大数据机器学习:从算法到系统 2. 大数据机器学习系统的技术特征 3. 大数据机器学习系统的主要研究问题 4. 大数据机器学习方法分类与典型系统
26
4. 大数据机器学习方法分类与典型系统 基于主流大数据平台的并行化机器学习算法/算法库 结合传统数据分析平台的大数据机器学习算法/算法库
基于Hadoop MapReduce和Spark、以及基于传统的MPI并行计算框架,完成 各种并行化机器学习和数据挖掘算法的设计 结合传统数据分析平台的大数据机器学习算法/算法库 基于R、Python、MatLab等传统数据分析平台的机器学习算法或系统 基于特定平台的大数据机器学习系统 总结机器学习算法设计的共同特性,结合大规模学习时所需要考虑的底层分布 式数据存储和并行化计算等系统问题,专门研究提供能同时兼顾并支持大数据 机器学习和大数据分布并行处理两方面问题的一体化大数据机器学习系统
27
4. 大数据机器学习方法分类与典型系统 基于主流大数据平台的并行化机器学习算法/算法库 用户定制算法
基于Hadoop MapReduce和Spark、以及基于传统的MPI平台he 并行 计算框架,定制实现各种并行化机器学习和数据挖掘算法 优点:灵活,用户可根据需要进行特定优化 缺点:1)开发难度大,需要程序员掌握分布式和并行化程序 设计技术,熟悉大数据并行计算框架和平台的使用 2)已有大数据平台不易学习和使用 3)出现新的平台时需要重写所有算法
28
4. 大数据机器学习方法分类与典型系统 基于主流大数据平台的并行化机器学习算法/算法库 基于Hadoop的算法库Mahout
主要任务是设计并提供一些基于MapReduce的可扩展的机器学习领域经典算 法库,包括聚类、分类、推荐过滤、频繁项集挖掘等算法 基于Hadoop MapReduce平台实现,应用开发时,用户可直接调用Mahout 算法库里实现好的算法 但提供的并行化机器学习算法数量有限,而且作为标准的软件包,其所提供的 算法几乎都是标准的,在算法精度和性能上不一定能满足用户的需要 大多数机器学习算法的计算流程都比较复杂,模型的训练过程往往需要多次迭 代计算(如梯度下降算法)、有中间数据集需要共享等。MapReduce模型处 理这类问题时,额外的调度和初始化开销导致其处理性能偏低
29
4. 大数据机器学习方法分类与典型系统 基于主流大数据平台的并行化机器学习算法/算法库 基于Spark的算法库MLlib
MLlib是基于Spark的分布式机器学习算法库,提供了常用机器学习算法和工具类 MLlib目前也包含一些矩阵操作,并基于矩阵表示设计开发一些统计包和机器学习算法库; 此外,基于MLlib的工作基础,UC Berkeley还计划研发MLBase项目,该项目增加了机器学 习模型自动选择和参数自动优化等功能,提供了以目标为导向的高层机器学习方法接口
30
4. 大数据机器学习方法分类与典型系统 结合传统数据分析平台的大数据机器学习算法/系统 基于Python的机器学习工具包
Scikit Learn:机器学习工具包,用于进行分类、特征选择、特征提取和聚集,还包含有限的自然语言处理特征提取能力,以及词袋(bag of words)、TF-IDF、预处理(停用词/stop-words,自定义预处理,分析器) Statsmodels:另一个聚焦在统计模型上的算法库,主要用于预测和探索性分析 PyMC:贝叶斯曲线工具,包含贝叶斯模型、统计分布和模型收敛的诊断工具,也包含一些层次模型 Shogun:聚焦于支持向量机(Support Vector Machines, SVM)的机器学习工具箱 Gensim:主题建模算法工具库(topic modeling for humans),其焦点是狄利克雷划分(Latent Dirichlet Allocation, LDA)及变体;还支持自然语言处理,能将NLP和其他机器学习算法更容易组合在一起 Orange:带有图形用户界面的机器学习算法库工具包,包含全面的分类、聚集和特征选择方法,以及交叉验证方法 PyMVPA:一个统计学习库,API上与Scikit-learn很像,包含交叉验证和诊断工具 Theano:是最成熟的深度学习库,提供数据结构(张量,tensor)来表示神经网络的层 Decaf:是最近由UC Berkeley发布的深度学习库,在Imagenet分类挑战中测试发现,其神经网络实现非常先进(state of art) NeuroLab:是另一个API友好(与Matlabapi类似)的神经网络库,与其他库不同,它包含递归神经网络(Recurrent Neural Network,RNN)实现的不同变体
31
4. 大数据机器学习方法分类与典型系统 结合传统数据分析平台的大数据机器学习算法/系统 R与大数据处理平台结合的机器学习算法设计
Rhadoop:由Revolution Analytics发起的一个开源项目,其目标是将统计语言R与 Hadoop结合起来,目前该项目包括三个R packages,分别为支持用R来编写 MapReduce应用的rmr、用于R语言访问HDFS的rhdfs以及用于R语言访问HBASE的 rhbase。其中Hadoop主要用来存储和处理底层的海量数据,用R替代Java语言完 成MapReduce算法设计实现 SparkR:UC Berkeley AMP实验室在2014年1月也推出了一个称为SparkR的项目。 SparkR也是作为一个R的扩展包,为R用户提供一个轻量级的、在R环境里使用 Spark RDD API编写程序的接口。它允许用户在R的shell环境里交互式地向Spark集 群提交运行作业 RHadoop和SparkR都存在一个同样的问题:仍要求用户熟悉MapReduce或Spark RDD的编程框架和程序结构,然后将自己的MapReduce或Spark程序实现到基于R的编程接口上
32
4. 大数据机器学习方法分类与典型系统 基于特定平台的大数据机器学习系统 Spark MLlib
MLLib与Spark环境整合起来后可完整解决大数据的分布式存储、并行化计算、以及上层的机器 学习算法设计和使用,因此,它可视为是一个基本的机器学习系统。目前其已经向上层提供 多种优化方法、分类算法、回归算法、推荐算法、聚类算法。但其算法数目和接口有限,难 以完全满足用户各种各样的需求,用户难以对内部算法进行深层定制优化。因此,其在灵活 性方面存在不足
33
4. 大数据机器学习方法分类与典型系统 基于特定平台的大数据机器学习系统 IBM SystemML
由IBM Waston Research Center 和IBM Almaden Research Center联合研发的大数据学习系统 SystemML对用户提供了一个类似于R语言的高层声明式机器学习语言DML,基于这种语言 编写的程序可以被SystemML自动编译转化为MapReduce 作业在Hadoop集群上运行,这种高 层语言提供了大量的监督和非监督的机器学习算法所需要的线性代数操作算子,包括高层 算子HOP(High-Level Operator)和底层算子LOP(Low-Level Operator) DML提供了一种基于矩阵的线性代数数学运算高层原语,允许用户用接近于数据语言的自 然方式刻画诸多机器学习算法 SystemML最大的优势是其具有较好的可编程性和易用性,用户不需要具备任何分布式系统 的概念或编程经验即可利用其写出可扩展的机器学习算法 然而,SystemML最大的缺点在于底层计算平台单一,其只采用了MapReduce作为底层分布 式执行平台,而底层的MapReduce作业本身执行性能并不高
34
4. 大数据机器学习方法分类与典型系统 基于特定平台的大数据机器学习系统 IBM SystemML
35
4. 大数据机器学习方法分类与典型系统 基于特定平台的大数据机器学习系统 Apache Flink
由欧洲的一群研究者和多家资助单位(EIT1 ICT Labs, DFG2, IBM, Oracle, HP等)联合研发的一款开源的并行化数据分析软件栈 为了使得数据分析人员能够在不需顾及各种并行化优化问题的情况下就可以进行深度数据分析,Flink提供了一款数据分析栈式软件,向用户提供了一种专用的脚本式语言MeteorScript,并且会自动将基于该语言开发的程序转换到底层的分布式计算平台Nephele上,由于其专用性语言不够普及,目前对语言接口上又做了更多的扩充,支持Java、Scala等语言 Flink的优势在于其从上到下提供了一整套完整的栈式解决方案,试图为用户提供易于使用的数据分析系统,同时通过一些编译优化手段尽可能地提升程序执行的性能 其缺点在于其底层是专用的单一化计算平台,与目前普遍使用的主流大数据平台Hadoop和Spark尚未能集成使用,另外上层的语言接口层也没有包含现在数据分析师广为使用的R、Python等语言接口
36
4. 大数据机器学习方法分类与典型系统 基于特定平台的大数据机器学习系统 Apache Flink
37
4. 大数据机器学习方法分类与典型系统 基于特定平台的大数据机器学习系统 GraphLab
CMU(卡耐基梅隆大学)开发的一个以顶点为计算单元(vertex programs)的大规模图处 理系统,是基于图模型抽象的机器学习系统 GraphLab的设计初衷主要是为了解决具有以下特点的机器学习问题:有局部依赖的稀疏数 据集、迭代可收敛、异步执行 GraphLab把数据之间的依赖关系抽象成Graph结构,以顶点为计算单元,将算法的执行过 程抽象成每个顶点上的GAS(Gather、Apply、Scatter)过程,其并行的核心思想是多个顶点同 时执行 GraphLab的优点是能够高效地处理大规模图算法问题或者是可归结为图问题的机器学习和 数据挖掘算法问题 其缺点在于提供的接口细节比较复杂,对于普通的数据分析程序员而言,有较大的掌握和 使用难度
38
4. 大数据机器学习方法分类与典型系统 基于特定平台的大数据机器学习系统 GraphLab
GAS(Gather、Apply、Scatter)操作原语 Gather:收集本节点邻居节点或边的数据或参数信息 Apply:计算所收集的信息,更新到本节点; Scatter:把本节点更新后的信息传播到邻居节点
39
4. 大数据机器学习方法分类与典型系统 基于特定平台的大数据机器学习系统 Parameter Server与Petuum
很多机器学习算法常常要解决学习训练过程中的模型参数的高效存储与更新问题。为了有 效应对和满足大数据场景下这类机器学习算法的需要,研究者提出了一种称为Parameter Server的框架,提供了一个分布式全局模型参数存储和访问接口,模型参数存储在多台 server中,可以通过网络访问方便地读取全局参数 卡利基梅隆大学Li Mu等人开发了一套基于Parameter Server框架的分布式机器学习系统, 该系统由一个server group和多个worker group构成。其中server group中包括一个server manager节点和多个server节点。每个server节点存储部分全局共享参数;server manager节 点用来存储server节点的元信息,并通过心跳机制管理所有server Parameter Server的优点是为大规模机器学习提供了非常灵活的模型参数调优和控制机制 缺点是缺少对大规模机器学习时的数据及编程计算模型的高层抽象,使用较为繁琐,通常 比较适合于机器学习算法研究者或者需要通过调整参数深度优化机器学习算法的数据分析 程序员使用
40
4. 大数据机器学习方法分类与典型系统 基于特定平台的大数据机器学习系统 Parameter Server与Petuum
CMU SAILING 实验室研究实现了大数据学习系统Petuum。Petuum是一个基于Parameter Server框架的系统,提供基于模型的并行化处理 Petuum的Parameter Server中使用SSP(Stale Synchronous Parallel)一致性模型,允许计算速度慢的节点从本机cache中读陈旧的参数值,以此大大节省网络开销和网络等待时间,使得慢机器的大部分时间用在计算而不是等待上 Petuum在使用上需要算法设计者对分布式系统概念和系统有一定了解,其易用性仍有一定的限制,且其底层数据存储和并行计算框架与上层的学习算法层以紧耦合的方式全部自己实现,与主流大数据平台缺少兼容性
41
4. 大数据机器学习方法分类与典型系统 基于特定平台的大数据机器学习系统 腾讯Peacock与Mariana深度学习平台 Peacock
Peacock是腾讯公司研发的一个大规模LDA主题模型训练系统 该系统通过并行计算可对10亿x 1亿级别的大规模矩阵进行分解,从而从海量文档样本数据 中学习10万到100万量级的隐含语义 为了完成大规模处理,Peacock基于吉布斯采样的LDA训练算法进行了并行化设计,并设计 实现了一个完整的具有大规模样本数据处理能力的训练系统 Peacock已广泛应用在腾讯的文本语义理解、QQ群的推荐、用户商业兴趣挖掘、相似用户 扩展、广告点击率转化率预估等多个业务数据中 Peacock是一个专为LDA并行化计算而定制的大规模训练系统,它还不是一个通用化的大数 据机器学习系统
42
4. 大数据机器学习方法分类与典型系统 基于特定平台的大数据机器学习系统 腾讯Peacock与Mariana深度学习平台 Mariana
为了提供更为广泛的大规模并行化机器学习处理能力,腾讯研究构建了一个称为Mariana的深 度学习平台。Mariana可提供数据并行和模型并行计算,基于GPU和CPU集群提升模型规模,加 速训练性能,由三套大规模深度学习系统构成,包括: 基于多GPU的深度神经网络并行计算系统Mariana DNN:在腾讯内部用于微信语音识别声学模型训练, 可训练超过1万小时的语音数据、超过40亿的数据样本、以及超过5千万的参数,相对于单GPU而言6 GPU可实现4.6倍的加速比 基于多GPU的深度卷积神经网络并行计算系统Mariana CNN:用于微信图像识别,可训练2千个以上的 分类、3百万以上的数据样本、以及超过6千万的参数,相对于单GPU而言4 GPU可实现2.5倍的加速比; 在图文类效果广告点击率提升方面也取得初步应用 基于CPU集群的深度神经网络并行计算系统Mariana Cluster:实现了一个基于Parameter Server模型的大 规模通用化机器学习和训练系统,主要用于进行大规模广告并行化训练,完成广告点击率预估模型训 练和广告点击性能优化
43
4. 大数据机器学习方法分类与典型系统 基于特定平台的大数据机器学习系统 百度ELF与百度机器学习云平台BML
大规模分布式机器学习框架和系统ELF(Essential Learning Framework):是一个基于 Parameter Server模型的通用化大规模机器学习系统,可允许用户方便快速地设计实现大数 据机器学习算法,在系统设计上吸收了Hadoop、Spark和MPI等大数据平台的优点,用类似 于Spark的全内存DAG计算引擎,可基于数据流的编程模式,通过高度抽象的编程接口,让 用户方便地完成各种机器学习算法的并行化设计并完成快速计算 百度机器学习云平台BML(Baidu Machine Learning):支持丰富的机器学习算法,可支持 包含20 多种大规模并行机器学习算法,提供包括数据预处理算法、分类算法、聚类算法、 主题模型、推荐算法、深度学习、序列模型、在线学习在内的各种机器学习算法支持,并 通过分布和并行化计算实现优异的计算性能。BML在百度内部的业务系统中经历了线上大 规模使用部署考验,承载公司内各种重要在线业务线应用,包括凤巢广告CTR 预估、搜索 LTR排名等应用
44
4. 大数据机器学习方法分类与典型系统 基于特定平台的大数据机器学习系统 百度ELF与百度机器学习云平台BML BML平台承载的业务与功能
45
下 篇 大章鱼:跨平台大数据 机器学习与数据分析系统
下 篇 大章鱼:跨平台大数据 机器学习与数据分析系统 Hadoop Spark MPI OpenMP CUDA Unified Programming Model and Platform … Unified Matrix Abstract Computation Model
46
研究动机和目标 主流大数据技术与平台 2007年Hadoop推出并成为广为接 受使用的主流大数据处理技术 与平台
2013年Spark推出,以内存计算 大幅提升大数据处理的性能
47
研究动机和目标 主流大数据技术与平台
48
Unified & easy-to-use Programming
研究动机和目标 解决方法:在数据分析师与现有大数据处理平台之间构建一个桥梁,提供统一化的编程模型和方法消除这一鸿沟 Unified & easy-to-use Programming …… MPI Spark MapReduce
49
研究动机和目标 解决方法:对于专业性程序员来说,提供一个跨平台统一的大叔聚集起学习和数据分析编程方法和平台,实现“Write once,
run anywhere”的特性,以避免针对不同的大数据平台重写所有大数据起学习和数据分析算法 Lots of duplicated work & burden to rewrite all ML algorithms …… Hundred of ML Algorithms MPI Spark MapReduce
50
统一大数据机器学习编程模型与平台总体思路
大规模矩阵计算是机器学习与数据挖掘及其他诸多计算问题的建模表示方法 机器学习 人工智能 物理计算 大规模 矩阵计算 数值分析 社交网络 图像渲染
51
统一大数据机器学习编程模型与平台总体思路
机器学习与数据挖掘算法都可以表示为矩阵计算 采用矩阵作为各种机器学习与数据挖掘算法的抽象计算和编程模型 提供一个基于矩阵的高层并行化编程和计算模型 提供一个基于矩阵的易于使用的统一编程语言和软件框架 为底层的各种异构大数据处理平台提供一个从上层统一语言为底层各种异 构大数据处理平台实现优化的大规模矩阵分布和并行计算和任务调度管理, 实现底层异构平台对程序员的透明化,实现“Write once, run anyway”的目 标 设计提供基于矩阵模型和统一平台的并行化机器学习与数据挖掘算法库
52
统一大数据机器学习编程模型与平台总体构架
Octopus(大章鱼)项目 我们启动了一个称为“大章鱼”的研究项目,旨在研究实现面向大数据的跨平台统一MLDM编程模型、框架和系统平台 江苏省工业支撑计划资助 《大数据并行化分析计算统一编程框架与软件平台关键技术研发》, , 50万 国家自然基金项目《大数据机器学习与数据分析统一编程计算模型与关键技术研究》 , 80万 Hadoop Spark MPI OpenMP CUDA Unified Programming Model and Platform … Unified Matrix Abstract Computation Model
53
统一大数据机器学习编程模型与平台总体构架
Octopus(大章鱼)项目
54
大规模矩阵自动划分与并行化计算任务调度管理
统一大数据机器学习编程模型与平台总体构架 基于矩阵模型的R语言MLDM程序 标准的R语言及其开发环境 基于矩阵模型的高层矩阵编程接口 大规模矩阵自动划分与并行化计算任务调度管理 基于Spark的矩阵计算 基于Hadoop的矩阵计算 基于Flink的 矩阵计算 基于MPI的 矩阵计算 。。。 。。。 Spark平台 Hadoop平台 Flink平台 MPI平台
55
统一大数据机器学习编程模型与平台总体构架
Demo Applications LR, SVM, Deep Learning, Other ML Algorithms OctMatrix (An R package and APIs for distributed matrix operations) Matrix Execution Optimization Module Connection Model for Underlying Matrix Lib Spark-Matrix (Marlin) MR-Matrix Flink-Matrix MPI-Matrix R-Matrix Spark Map Reduce Flink MPI Single Node-R Matrix Data Representation and Storage Developed by us Tachyon Open Source HDFS
56
大规模分布式矩阵计算库 OctMatrix:一个基于R的大规模分布矩阵计算库,提供高层和平台独立 的分布矩阵计算操作和编程接口,允许从R语言程序中直接调用 OctMatrix APIs: 编程接口包括: 读写和管理大规模矩阵数据 调用分布式矩阵运算库,底层自动完成对分布式矩阵运算时划分 为子矩阵并负责调度在并行化平台上分布执行 继承并自动调用原有R语言自带的单机上的矩阵运算库已完成小 规模矩阵的单机执行
57
大规模分布式矩阵计算库 OctMatrix的API和代码结构 OctMatrix Exposed Methods: Methods:
initialization(); //支持从(local,HDFS,Tachyon)文件、R矩阵、R向量初始化;支持特殊矩阵初始化(zeros,ones) // initializations of matrix from local, HDFS, Tachyon, two-dim Array, and also special matrix matrixOperations(); //支持各种矩阵函数,如分解、转置、求和等; // provide matrix operations including decompression, transformation, sum, etc. matrixOperator(); //支持矩阵运算的操作符,如各种类型的加、减、乘、除; // provide matrix operators including Add, Sub, Mul, Div of matrices apply(); toLocalRMatrix(); sample(); dim(); getRow(); getElement(); getSubMatrix(); delete(); … Methods: initialization(); //支持从(local,HDFS,Tachyon)文件、二维数组初始化;支持特殊矩阵初始化(zeros,ones) // initializations of matrix from local, HDFS, Tachyon, two-dim Array, and also special matrix matrixOperations(); // 支持各种矩阵函数,如分解、转置、求和等; // provide matrix operations including decompression, transformation, sum, etc. matrixOperator(); //支持矩阵运算的操作符,如各种类型的加、减、乘、除; // provide matrix operators including Add, Sub, Mul, Div of matrices apply(); saveToTachyon(); toArray (); sample(); delete(); … Spark_MatRef implement MR_MatRef MPI_MatRef OctMatrix R_MatRef NativeTachyon _Ref implement Methods: enableNativeTachyon(); getSubMatrix(); getRow(); getElement(); … Support_ NativeTachyon Mat_Type Storage_ Location
58
大规模分布式矩阵计算库 OctMatrix 用户编程APIs Matrix Initialization/Exportation
initialize OctMatrix from Local File System/HDFS/Tachyon save OctMatrix from/to Local File System/HDFS/Tachyon convert OctMatrix from/to native R matrix; construct special matrix,API: ones,zeros … Matrix Operators elemwise/numeric matrix multiply,add,minus,division (API: *,+,-,/) matrix multiply (API: %*%) bind x and y via columns (API: cbind2) Matrix Operations get the rows and cols of matrix, API: dim ; the inv of a OctMatrix, API: inv ; statistical functions, API: max, min, mean, sum ; matrix transposition, API: t ; matrix decomposition, API: lu, svd, etc. apply a function to matrix, API: apply(OctMatrix, MARGIN, FUN) ; functions contained in R matrix, such as rep,split. get sub-matrix;
59
大规模分布式矩阵运算优化 矩阵最常用运算算法 大规模矩阵运算中最为常用和复杂的算法是: 大规模矩阵乘法 大规模矩阵求逆 主要技术挑战
单节点难以甚至无法完成大规模矩阵相乘和求逆 大规模矩阵相乘和求逆时计算时间长,难以满足大数据处理的实时性需求,需要研究采用分布式和并行化方法提高计算速度 研究内容和目标 重点研究实现大规模矩阵分布式乘法和求逆运算方法和并行化算法,构建基于各种大数据平台的完整大规模分布式矩阵运算库
60
大规模分布式矩阵运算优化 三种矩阵表示方法 本地矩阵(Local Matrix) 一个可在单机上本地化完成计算的小矩阵
广播矩阵(Broadcast Matrix) 一个大小适中可广播方式发送到各个计算节点以完成分布计算的矩阵 分布式矩阵(Distributed Matrix) 一个规模极大、需要划分成子矩阵并以分布和并行化方式完成计算的矩阵 .
61
大规模分布式矩阵运算优化 分布式矩阵乘法 对相乘的两个矩阵进行分块,再把子矩阵按一定规则进行分发和Join操作,再对Join后的元组进行相乘,最后按一定规则把相乘的结果进行相加。 FlatMap&Join FlatMap&Join Map Map GroupBy&Reduce GroupBy&Reduce Result Result
62
Large Scale Matrix Partition and Optimized Execution
大规模分布式矩阵运算优化 分布式矩阵的划分和并行化调度计算 Large Scale Matrix Partition and Optimized Execution Schedule and Dispatch Spark Cluster Server Nodes
63
大规模分布式矩阵运算优化 分布式矩阵乘法优化 问题:
不同的矩阵划分方法会造成计算性能的巨大差异,为此需要根据矩阵大 小、形状和计算特点的不同,考虑优化的矩阵划分方法 为此,我们研究提出了三种针对大规模矩阵乘法的不同矩阵划分方法,同 时还研究利用BLAS矩阵运算库进行本地子矩阵运算加速优化 适用于方形矩阵相乘的均匀划分方法 适用于长条形矩阵相乘的递归自适应划分方法 适用于一大一小矩阵相乘的Broadcast矩阵划分方法 基于BLAS的子矩阵本地化运算加速优化
64
大规模分布式矩阵运算优化 分布式矩阵乘法优化
大规模矩阵乘法分布式计算时,矩阵的划分方法直接关系到矩阵计算性能。我们研究实现了基于矩阵大小和形状特征的自动化矩阵划分和调度计算方法,并完成基于Spark、Hadoop、MPI、Flink的分布式矩阵乘法计算 一大一小矩阵阵相乘法 方形矩阵相乘 长条形矩阵相乘法 均匀划分 递归自适应划分方法 Broadcast矩阵划分
65
大规模分布式矩阵运算优化 分布式矩阵乘法优化 适用于方形矩阵相乘的均匀划分方法 适用性:适用于两个方形或近似方形矩阵的相乘
方 法:均匀划分,划分块的行数与列数相等,使每个子矩阵的规模相等 3 9 3 3 3 将9 x 9的矩阵划分为3 x 3块 9 3 3
66
大规模分布式矩阵运算优化 分布式矩阵乘法优化 适用于长条形矩阵相乘的递归自适应划分方法 n k 4 2 8 1 m k
适用性:适用于矩阵长宽相差较大的长条形矩阵 方 法:每次选取最长的边进行划分,给每个子矩阵分块分配计算核, 当计算核的个数或最大边长为1时停止划分 n k 计算核数= 4 2 8 1 m k m= k= n= 500 1000 500 1200 300 600
67
大规模分布式矩阵运算优化 分布式矩阵乘法优化 3.适用于一大一小矩阵相乘的Broadcast矩阵划分方法 适用性:适用于大矩阵与小矩阵的相乘
方 法:将大矩阵划分为Mx1x1(大矩阵为左矩阵)或1x1xM(大矩阵为 右矩阵),然后广播小矩阵到大矩阵划分后子矩阵所在的计算节点 Broadcast Result
68
大规模分布式矩阵运算优化 分布式矩阵乘法优化 4.基于BLAS的子矩阵本地化运算加速优化
69
大规模分布式矩阵运算优化 分布式矩阵求拟运算优化 传统的Gauss-Jordan消元求逆算法 缺陷:
1. 迭代次数为矩阵的维度,过多的迭代在分布式情况下会造成额外的开销 2. 每次迭代都是串行地从左往右迭代,处理速度缓慢
70
大规模分布式矩阵运算优化 分布式矩阵求拟运算优化 优化的矩阵求逆方法 当前块矩阵 Matrix: 求逆 Block1 Block2
主要思想:将矩阵按列分成多块,每次迭代选取多个主元列向量去更新整个矩阵,每次更新时多块之间进行并行化更新 当前块矩阵 Matrix: 求逆 计算主元列矩阵和更新当前矩阵块 分发&更新 分发&更新 Block1 Block2 Block3
71
大规模分布式矩阵运算优化 分布式矩阵求拟运算优化 优化的矩阵求逆方法
主要思想:将矩阵按列分成多块,每次迭代选取多个主元列向量去更新整个矩阵,每次更新时多块之间进行并行化更新 当前块矩阵 Matrix: 求逆 计算主元列矩阵和更新当前矩阵块 分发&更新 分发&更新 Block1 Block2 Block3
72
大规模分布式矩阵运算优化 分布式矩阵求拟运算优化 优化的矩阵求逆方法 当前块矩阵 Matrix: 求逆 Block1 Block2
主要思想:将矩阵按列分成多块,每次迭代选取多个主元列向量去更新整个矩阵,每次更新时多块之间进行并行化更新 当前块矩阵 Matrix: 求逆 计算主元列矩阵和更新当前矩阵块 分发&更新 分发&更新 Block1 Block2 Block3
73
大规模分布式矩阵运算优化 分布式矩阵的其他运算
矩阵相加、相减等操作 矩阵的求值(最大值、最小值、均值等)操作 矩阵的转置 矩阵的标量计算 除了矩阵乘法和求逆外,我们还研究实现了上述大规模矩阵运算并行化计算方法和算法,实现了完整的大规模分布式矩阵运算库
74
大规模分布式矩阵运算优化 三种矩阵划分方式下矩阵相乘性能评估实验 两个方形矩阵相乘时, 均匀划分方式性能最优
75
大规模分布式矩阵运算优化 三种矩阵划分方式下矩阵相乘性能评估实验 长条形矩阵相乘时, 递归自适应划分方式性能最优
76
大规模分布式矩阵运算优化 三种矩阵划分方式下矩阵相乘性能评估实验 一大一小矩阵相乘时,Broadcast划分方法性能最优
77
分布式矩阵乘法优化 三种矩阵划分方式下矩阵相乘性能评估实验 子矩阵运算启用BLAS加速后平均约提高3倍的计算速度
78
分布式矩阵乘法优化 并行化矩阵求逆算法性能评估实验 优化后的并行化矩阵求逆算法平均约提高 4倍的计算速度
79
分布式矩阵乘法优化 矩阵规模增大时矩阵乘法性能变化 矩阵规模增大时矩阵求逆性能变化 矩阵规模增大时矩阵乘法和求逆算法均达到近线性的扩展性能
80
分布式矩阵乘法优化 增加节点时矩阵乘法性能变化 增加任务数目时矩阵求逆性能变化 系统规模扩展时矩阵乘法和求逆算法均达到较好的系统扩展性
81
分布式矩阵乘法优化 基于Spark的分布式矩阵计算库Marlin性能对比 Multiply big and small matrices
Multiply two big matrices
82
分布式矩阵乘法优化 基于Spark的分布式矩阵计算库Marlin性能对比
83
分布式矩阵乘法优化 基于Spark的分布式矩阵计算库Marlin性能对比 与标准的SparkR相比,大章鱼中矩阵相加相乘比SparkR快
2~5倍
84
分布式矩阵乘法优化 基于Spark的分布式矩阵计算库Marlin性能对比
Matrix Multiply , 96 partitions, executor memory 10GB, except that case 3_5 is 20GB
85
OctMatrix的大规模矩阵数据表示和分布存储
矩阵数据可存储于本地文件系统、HDFS, 或Tachyon, 在OctMatrix矩阵库中提供了 矩阵数据读写接口,以便从R语言程序中 读写这些文件系统中的矩阵数据 矩阵数据在底层文件系统中存储组织时,将遵照一定的存储管理格式 \Octopus_HOME \user-sesscion-id1\ \matrix-a info row_index \row-data par1.data … parN.data col_index \col-data \matrix-b \matrix-c \user-sesscion-id2\ \user-sesscion-id3\
86
基于OctMatrix的大规模机器学习算法库
Classification and regression Linear Regression Logistic Regression Softmax Linear Support Vector Machine (SVM) Clustering K-Means Feature extraction Deep Neural Network(Auto Encoder) More MLDM algorithms to come
87
大章鱼如何工作? 使用标准R语言编程环 境,允许用户基于矩 阵模型与分布式矩阵 运算库,快速编写各 种机器学习和数据挖 掘算法 目前大章鱼系统已经 与Spark, Hadoop MapReduce,MPI以及 最新的Flink系统无缝 集成,并实现这些底 层大数据平台对上层 程序员的完全透明性 标准的R语言开发环境 Octopus Spark Hadoop MapReduce MPI Single Machine Flink
88
大章鱼系统特点总结 易于使用、基于矩阵模型的高层编程接口 Write Once, Run Anywhere的跨平台特性
高层分布式矩阵运算编程接口 与标准R语言环境中的矩阵操作API一致 程序员不需要具备低层的分布式和并行化编程知识 Write Once, Run Anywhere的跨平台特性 基于大章鱼系统编写完成的程序可以透明地运行于Spark, Hadoop MapReduce, Flink 或以及MPI等各种不同的大数据处理平台上 可以基于单机R语言环境编程,首先使用小数据集测试程序,然后不需要修改任何程序, 便可方便地切换并运行于任何底层大数据平台上 支持各种输入输出数据源,包括HDFS、分布式文件系统Tachyon, 以及本地文件系统
89
大章鱼系统特点总结 分布环境下使用R中的apply 函数 可提供基于矩阵模型的机器学习和数据挖掘算法库 与标准R语言环境无缝集成
在OctMatrix分布矩阵运算库中提供标准R语言环境中的apply( )函数功能,并可以 在集群的每个节点上针对矩阵的行、列和元素并行化地执行该apply( )函数 传递到apply( )函数中的参数可以是任意的R函数,包括用户自定义函数UDFs. 可提供基于矩阵模型的机器学习和数据挖掘算法库 已基于OctMatrix实现了一组具有可扩展性的机器学习和数据挖掘算法 与标准R语言环境无缝集成 与标准R语言环境无缝集成,在标准R语言环境中提供了OctMatrix分布矩阵运算库 继承了R语言环境的丰富资源和功能特性
90
基于R语言环境的编程示范 读写分布式矩阵数据示例
91
基于R语言环境的编程示范 使用R apply( )函数示例
92
基于R语言环境的编程示范 逻辑回归算法示例 Training Testing Predicting
修改 “enginetype”底层计算引擎参数,将能在不需要修改任何程序代码的情况下,快速切换底层大数据计算引擎
93
基于R语言环境的编程示范 K-Means算法示例 Algorithm Testing
94
基于R语言环境的编程示范 线性回归算法示例 Algorithm Testing
95
基于R语言环境的编程示范 标准R语言与Octopus程序代码的比较 LR Codes with Standard R
LR Codes with Octopus
96
基于R语言环境的编程示范 标准R语言与Octopus程序代码的比较 K-Means Codes with Standard R
K-Means Codes with Octopus
97
基于R语言环境的编程示范 MPI与Hadoop MapReduce底层平台切换示例 Start a MPI Daemon to
run MPI-Matrix behind 运行于MPI上的线性代数计算
98
基于R语言环境的编程示范 MPI与Hadoop MapReduce底层平台切换示例 切换到Hadoop环境下运行同样的线性代数计算
99
大章鱼文档网页
100
进一步的研发工作 编程语言:已提供R语言和Python语言支持 矩阵计算:已完成全部的大规模稠密矩阵运算库,包括稠密矩阵和稀疏矩阵运算
基于矩阵模型的R语言MLDM程序 R语言及其开发环境 Python语言及其开发环境 基于矩阵模型的高层矩阵编程接口 稠密矩阵计算 稀疏矩阵计算 稠密矩阵计算 稀疏矩阵计算 稠密矩阵计算 稀疏矩阵计算 稠密矩阵计算 稀疏矩阵计算 基于Spark的矩阵计算 基于Hadoop的矩阵计算 基于Flink的 矩阵计算 基于MPI的 矩阵计算 。。。 。。。 Spark平台 Hadoop平台 Flink平台 MPI平台
101
进一步的研发工作 基于表模型和SQL的简单统计分析:除基于矩阵模型的复杂机器学习和数据分析能力外,目前正在开发并提供基于表模型(DataFrame)和SQL查询语言的简单统计查询分析功能,底层可集成各种主流的数据库系统作为数据源,在支持简单统计查询分析功能的同时,也允许将来自数据库的数据转换为矩阵,进而用矩阵模型完成复杂数据分析处理,使大章鱼成为一个兼具简单查询统计分析和复杂分析能力的综合性大数据分析平台 基于矩阵和表模型的综合数据分析 R/Python语言及其开发环境 复杂分析 简单统计分析 矩阵模型高层编程接口 表→矩阵转换 SQL+DataFrame编程接口 矩阵→表转换 矩阵模型(稠密/稀疏矩阵) 表模型 。。。 。。。 Spark Hadoop MPI Flink 关系式数据库 MPP 数据库 分布式 数据库
102
谢 谢! 联系信息 黄宜华 南京大学PASA大数据技术实验室 http://pasa-bigdata.nju.edu.cn
南京大学计算机科学与技术系
Similar presentations