CN106547627A - 一种Spark MLlib数据处理加速的方法及系统 - Google Patents
一种Spark MLlib数据处理加速的方法及系统 Download PDFInfo
- Publication number
- CN106547627A CN106547627A CN201611056361.3A CN201611056361A CN106547627A CN 106547627 A CN106547627 A CN 106547627A CN 201611056361 A CN201611056361 A CN 201611056361A CN 106547627 A CN106547627 A CN 106547627A
- Authority
- CN
- China
- Prior art keywords
- mllib
- fpga
- algorithms
- spark
- opencl
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明实施例公开了一种Spark MLlib数据处理加速的方法,包括判断MLlib算法是否满足FPGA OpenCL并行化计算条件;如果满足,则将MLlib算法核心计算部分分配到FPGA进行运算;否则,MLlib算法仍在Spark平台进行运算。根据MLlib算法的性质对其按需所分,将满足条件的算法分配到FPGA进行并行运算,一定程度上解决了内存开销过大的问题;由于FPGA对任务进行的是并行处理,提高了任务运算速度,使得Spark Mllib整体的数据处理速度加快,提升了Spark平台的计算性能。此外,本发明实施例还提供了相应的系统,进一步使得所述方法更具有实用性,所述系统具有相应的优点。
Description
技术领域
本发明涉及大数据、云处理以及异构加速领域,特别是涉及一种Spark MLlib数据处理加速的方法及系统。
背景技术
随着物联网和5G通信时代的到来,大数据领域也面临着巨大的变革,更大更高维度的信息需要在数据中心与智能终端间进行实时交互,而且数据处理度也要求有极大的提高,为满足以上需求,就要对大规模数据库和深度学习实现加速。
Spark是UC Berkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,是一个高效的分布式计算系统。启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark是在Scala语言中实现的,它将Scala用作其应用程序框架,包括相关的测试和数据生成器。是全球目前大数据领域中最活跃、最热门、高效的大数据通用计算平台。
ML(Machine Learning,机器学习)是一门多领域交叉学科,专门研究机器怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而非演绎。这里所说的“机器”,指的就是计算机,例如电子计算机,中子计算机、光子计算机或神经计算机等等。
机器学习库Mllib(Machine Learning lib)一个专门针对大量数据处理的、通用的、快速的引擎。Spark的设计初衷就是为了支持一些迭代的任务,这正好符合了机器学习算法的特点,所以将Mllib运用到Spark平台上。Mllib是Spark可以扩展的机器学习库,是Spark对常用的机器学习算法和应用的实现库,主要的机器学习的算法例如分类回归、聚类、关联规则、推荐、降维、优化、特征抽取筛选、用于特征预处理的数理统计方法、以及算法的评测在MLlib中都包括。
现有技术中,在Spark分布式计算系统中,Spark负责任务调度,Spark调用MLlib中的算法对计算任务进行分析运算。大数据时代,数据规模的无限增大,以及数据处理速度的高要求,基于Spark框架下Mllib算法计算性能面对这种挑战有点力不从心。因此,如何提高或优化基于Spark框架下Mllib算法计算性能(运算的速度)是本领域技术人员亟待解决的技术问题。
发明内容
本发明实施例的目的是提供一种Spark MLlib数据处理加速的方法及系统,实现了Spark Mllib更快的数据处理速度,提高了基于Spark平台的的计算性能。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种Spark MLlib数据处理加速的方法,包括:
判断Mllib算法是否符合FPGA OpenCL并行优化设计条件;
当判定所述Mllib算法符合所述FPGA OpenCL并行优化设计条件时,将所述Mllib算法的核心计算部分基于OpenCL实现并行化设计描述,并移植到FPGA上实现并行计算,所述OpenCL通过Scala调用OpenCL专用接口,以实现FPGA与Spark平台的融合;反之,则所述Mllib算法在所述Spark平台进行运算。
优选的,所述判断Mllib算法是否符合FPGA并行优化设计条件为:
当Mllib算法进行运算的时间超过预设时间且所述Mllib算法适用于并行化计算时,所述Mllib算法符合FPGA OpenCL并行优化设计条件;反之,则不符合所述FPGA OpenCL并行优化设计条件。
优选的,在所述将所述Mllib算法的核心计算部分基于OpenCL实现并行化设计描述,并移植到FPGA上实现并行计算之后还包括:
所述FPGA将计算结果返回所述Spark平台并显示。
优选的,在所述并移植到FPGA上实现并行计算之前还包括:
将所述Mllib算法利用所述OpenCL进行并行设计。
本发明实施例还提供了一种Spark MLlib数据处理加速的系统,包括:
Spark分布式大数据处理装置、多个FPGA以及多个计算节点,
其中,所述Spark分布式大数据处理装置部署到多个所述计算节点,每一个所述计算节点与一个或多个所述FPGA相连;
所述Spark分布式大数据处理装置用于判断Mllib算法是否符合FPGA OpenCL并行优化设计条件;当判定所述Mllib算法符合所述FPGA OpenCL并行优化设计条件时,将所述Mllib算法的核心计算部分基于OpenCL实现并行化设计描述,并移植到所述FPGA上实现并行计算,所述OpenCL通过Scala调用OpenCL专用接口,以实现FPGA与Spark平台的融合;反之,则所述Mllib算法在所述Spark平台进行运算;
所述FPGA用于处理符合所述FPGA OpenCL并行优化设计条件的Mllib算法;
所述计算节点用于对所述Spark平台上的计算任务进行资源分配和任务调度。
优选的,所述Spark分布式大数据处理装置为当所述Mllib算法进行运算的时间超过预设时间且所述Mllib算法适用于并行化计算时,所述Mllib算法符合FPGA OpenCL并行优化设计条件;反之,则不符合所述FPGA OpenCL并行优化设计条件的模块。
优选的,还包括:
PCIe高速接口,用于所述FPGA与所述Spark平台之间数据传输和结果返回。
优选的,所述Spark分布式大数据处理装置还包括:
优化单元,用于将所述Mllib算法利用所述OpenCL进行并行设计。
优选的,所述计算节点通过所述PCIe高速接口与所述FPGA相连。
本发明实施例提供了一种Spark MLlib数据处理加速的方法,通过判断SparkMLlib算法是否满足FPGA OpenCL并行化计算条件;如果满足,则将MLlib算法核心计算部分基于OpenCL实现并行化设计描述,并分配到FPGA进行运算;否则,MLlib算法仍在Spark平台进行运算。
根据MLlib算法的性质对其按需所分,将满足条件的MLlib算法分配到FPGA进行运算,避免了传统Spark MLlib算法进行处理所有任务,一定程度上解决了内存开销过大的问题;由于FPGA对任务进行并行处理,故提高了任务运算速度,使得Spark Mllib整体的数据处理速度加快,提升了Spark平台的计算性能。此外,本发明实施例还针对Spark数据处理的方法提供了相应的系统,进一步使得所述方法更具有实用性,所述系统具有相应的优点。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一个示例性应用场景的框架示意图;
图2为本发明实施例提供的一种Spark MLlib数据处理加速方法的流程示意图;
图3为本发明实施例提供的另一种Spark MLlib数据处理加速方法的流程示意图;
图4为本发明实施例提供的一种Spark MLlib数据处理加速系统的结构图;
图5为本发明实施例提供的另一种Spark MLlib数据处理加速系统的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
本申请的发明人经过研究发现,在现有的Spark分布式计算系统中,Spark负责任务调度,通过调用MLlib中的算法对计算任务进行分析运算。而面对数据规模的无限增大,以及数据处理速度的高要求,基于Spark框架下Mllib算法计算性能有点力不从心。
FPGA(Field-Programmable Gate Array,现场可编程门阵列),它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物,是一种新型的异构计算平台加速器件,由可编程的逻辑块和互联网络组成,可在不同逻辑下执行多个线程,实现流水线并行处理,具有较强的并行处理能力。FPGA在大数据处理领域具有诸多优势,如采用流水线方式实现并行计算、低功耗、动态可重构等。
随着技术的发展,OpenCL高级语言采用的算法调试模式代替了传统HDL硬件描述语言对FPGA进行编译开发。OpenCL可直接写入FPGA进行程序验证,为FPGA广泛应用于通用计算领域进行快速开发提供了便利的保证。
异构计算是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式,能够根据每一个计算子系统的结构特点为其分配不同的计算任务,常见的计算单元有中央处理器CPU、图形处理器GPU、数字信号处理DSP、专用集成电路ASIC、FPGA等。比如CPU和GPU之间的“协同计算、彼此加速”,从而突破CPU发展的瓶颈。这种模式可提高服务器的计算性能、能效比和计算实时性。
鉴于此,本申请通过将FPGA板卡与Spark平台结合为异构平台,即将FPGA与Spark平台的计算节点相连接进行异构计算。通过将复杂耗时且适合并行化的计算任务在FPGA上进行运算,提高了计算速度,从而实现了Spark Mllib更快的数据处理速度,提高了基于Spark框架下Mllib算法计算性能。
基于上述本发明实施例的技术方案,下面首先结合图1对本发明实施例的技术方案涉及的一些可能的应用场景进行举例介绍。如图1所示,将Spark平台的每一个CPU计算节点通过PCIe接口与N个FPGA相连。Spark平台的编译语言Scala通过调用FPGA的编译语言OpenCL专用接口将其融合编译到Spark框架下。通过Spark处理器对当前任务的训练分析将符合FPGA运算的任务分配到FPGA上进行处理运算,一般的任务则利用MLlib算法进行处理。通过添加FPGA板卡进行并行处理计算任务,提升了整体Spark MLlib处理任务的速度,提升了计算性能。
需要注意的是,上述应用场景仅是为了便于理解本申请的思想和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
实施例一:
首先参见图2,图2为本发明实施例提供的一种Spark MLlib数据处理加速方法的流程示意图,本发明实施例可包括以下内容:
S201:判断Mllib算法是否符合FPGA OpenCL并行优化设计条件。
S202:当判定所述Mllib算法符合所述FPGA OpenCL并行优化设计条件时,将所述Mllib算法的核心计算部分基于OpenCL实现并行化设计描述,并移植到FPGA上实现并行计算,所述OpenCL通过Scala调用OpenCL专用接口实现FPGA与Spark平台的融合;反之,则所述Mllib算法在所述Spark平台进行运算。
Spark平台的编译语言可为Scala,而FPGA的编译语言可为OpenCL。通过将Scala调用OpenCL专用接口将其融合编译到Spark框架下,即实现了FPGA与Spark平台的结合。当然,必要情况下,也可不选择Scala与OpenCL高级语言作为编译语言,可选择其他适用的语言本发明实施例并不对此做限定。但是,优选的,选择的语言应该为成熟的、兼容性好的、开发周期短的、稳定方便的。
Spark平台分析Mllib算法,并可通过对MLlib中的机器学习算法的训练进行任务和资源的分配或调度。在对Mllib算法进行分配时,可结合MLlib中的机器学习算法和FPGA各自的优势进行分配,具体分配过程如下所述。
可根据Mllib算法进行运算的时间作为分配任务的判断条件之一,影响当Mllib算法进行运算的时间的因素主要可为当前任务的复杂程度和计算任务的计算量,举例来说,当前计算任务1为对8000张业务支撑系统BBS表中涉及到同一个项目的表进行分析处理,而计算任务2是分析8000张BBS表中前4000张表,由于两者计算复杂度一样,计算任务1的计算量大于计算任务2的,相对的,计算任务1必然更耗时;计算任务3为将8000张BBS表根据项目不同进行分类总结,可见计算任务3相对于1和2来说,要复杂的多,必然耗时最多。
因为FPGA可在不同的逻辑下执行多个线程,可实现流水线的并行处理,故具有较强的并行处理能力。也就是说,对于在FPGA上进行处理任务时,该任务应为适用于并行化处理的计算任务。所说的并行性是指在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不相同的工作,只要在时间上互相重叠,都存在并行性。例如,指令内部的并行,即指令执行中的各个微操作尽可能实现并行操作;指令间的并行,即两条或多条指令的执行是并行进行的;任务处理的并行,即是指将程序分解成可以并行处理的多个处理任务,而使两个或多个任务并行处理;作业处理的并行,即指并行处理两个或多个作业,如多道程序设计、分时系统。另外,对于数据处理的并行处理,如字串位并,同时对一个二进制字的所有位进行操作;字并位串,同时对多个字的同一位进行操作;全并行,同时对许多字的所有位进行操作。举例来说,适用于并行化处理的任务为可以分解的,或可迭代的,或循环的任务;不可进行并行化处理的任务为彼此间逻辑较紧密的,必须串行处理的,例如,上一步的运算结果必须运用到下一步的运算中才能继续进行整个计算,只能待一个结果出来,在计算下一个结果,不可进行并行处理。
综上所述,当Mllib算法进行运算的时间超过预设时间(复杂耗时)且Mllib算法适用于并行化计算时,Mllib算法符合条件,将所述Mllib算法的核心计算部分基于OpenCL实现并行化设计描述,并移植到FPGA上实现并行计算;反之,则所述Mllib算法没有不符合条件,仍在所述Spark平台进行运算,例如数据的读取,或计算量较小的部分。举例来说,如果要对全国各学校中姓名为“王二”的学生进行统计,并将其这些年的学习成绩调出来作分析,可以按省份同时对学校的教务系统数据库进行排查,就适合于分配到FPGA上做处理。当然,上述例子是为了本领域技术人员更好的理解本申请方案而列举,实际操作中,并不对此做限定。
需要说明的是,Mllib算法可能不是都适合进行并行计算,但是可经过处理后就适合并行计算,所以,优选的,在分配到FPGA的计算任务计算之前,可对Mllib算法利用FPGA的编译语言(如OpenCL)进行并行设计。这样,就可以将Mllib算法在FPGA上充分展开,避免因部分算法不适合并行运算而不能在FPGA上处理,实现不了利用FPGA加速的效果。
一个计算节点可以跟一个或多个FPGA相连,即可以将Mllib算法分配到一个或多个FPGA上同时进行处理。对于同样复杂程度和同等计算量的任务来说,FPGA个数增多,可进一步的节省运算时间,提高运算速度。举例来说,例如1ms内分析1000张BBS表需要1个FPGA,那么对于8000张BBS要求在1ms内进行分析处理,那么就需要8个FPGA同时工作。当然,上述例子是为了本领域技术人员更好的理解本申请方案而列举,实际操作中,并不对此做限定。
需要说明的是,在FPGA执行运算任务时,Scala调用OpenCL专用接口,该接口会找到前期编译通过的OpenCL核心代码,并将该代码移植到FPGA板卡上,启动FPGA板卡执行算法的计算部分。
由上可知,本发明实施例通过判断Spark MLlib算法是否满足FPGA OpenCL并行化计算条件;如果满足,则将MLlib算法核心计算部分分配到FPGA进行运算;否则,MLlib算法仍在Spark平台进行运算。根据MLlib算法的性质对其按需所分,将满足条件的MLlib算法分配到FPGA进行运算,避免了传统Spark MLlib算法进行处理所有任务,一定程度上解决了内存开销过大的问题;由于FPGA对任务进行并行处理,故提高了任务运算速度,使得SparkMllib整体的数据处理速度加快,提升了Spark平台的计算性能。
可选的,在本实施例的一些实施方式中,如图3所示,所述方法例如还可以包括:
FPGA将计算结果返回Spark平台并显示,即输出计算结果。
某些情景下,需要将计算结果输出,例如当计算节点为GPU时,在处理一些仿真的数据时,往往是需要将仿真的图形输出,如果某些相关计算任务是在FPGA上进行运算,这时就需要将计算结果返回到Spark平台,由Spark平台的显示装置将总的结果显示给用户。FPGA提供返回运算结果,可以进一步的扩展可处理计算任务的范围,从而整体提高Spark平台的MLlib的计算性能。
本发明实施例还针对Spark MLlib数据处理加速提供了相应的系统,进一步使得所述方法更具有实用性。下面对本发明实施例提供的Spark MLlib数据处理加速的系统进行介绍,下文描述的Spark MLlib数据处理加速的系统与上文描述的Spark MLlib数据处理加速的方法可相互对应参照。
实施例二:
参见图4,图4为本发明实施例提供的一种Spark MLlib数据处理加速系统的结构图,该系统可包括:
Spark分布式大数据处理装置401,用于判断Mllib算法是否符合FPGA并行优化设计条件;当判定所述Mllib算法符合所述FPGA并行优化设计条件时,将所述Mllib算法的核心计算部分基于OpenCL实现并行化设计描述,并移植到所述FPGA上实现并行计算,所述OpenCL通过Scala调用OpenCL专用接口实现FPGA与Spark平台的融合;反之,则所述Mllib算法在所述Spark平台进行运算。
FPGA 402,用于处理符合FPGA并行优化设计条件的Mllib算法。
计算节点403,用于对所述Spark平台上的计算任务进行资源分配和任务调度。
其中,计算节点可以有多个,Spark分布式大数据处理装置部署到多个计算节点,计算节点与一个或多个FPGA相连,优选的,计算节点通过PCIe高速接口与一个或多个FPGA相连。
需要说明的是,处理器还可包括:
优化单元,用于将所述Mllib算法利用所述OpenCL进行并行设计。
可选的,在本实施例的一些实施方式中,如图5所示,所述系统例如还可以包括:
PCIe高速接口404,用于所述FPGA与所述Spark平台之间数据传输和结果返回。
需要说明的是,FPGA与Spark平台之间的数据传输必要时也可采用其他类型的接口,本发明实施例并不对此做任何限定。
本发明实施例所述Spark MLlib数据处理加速系统的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例通过判断Spark MLlib算法是否满足FPGA OpenCL并行化计算条件;如果满足,则将MLlib算法核心计算部分分配到FPGA进行运算;否则,MLlib算法仍在Spark平台进行运算。根据MLlib算法的性质对其按需所分,将满足条件的MLlib算法分配到FPGA进行运算,避免了传统Spark MLlib算法进行处理所有任务,一定程度上解决了内存开销过大的问题;由于FPGA对任务进行并行处理,故提高了任务运算速度,使得SparkMllib整体的数据处理速度加快,提升了Spark平台的计算性能。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的本发明实施例所述一种Spark MLlib数据处理加速的方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (9)
1.一种Spark MLlib数据处理加速的方法,其特征在于,包括:
判断Mllib算法是否符合FPGA OpenCL并行优化设计条件;
当判定所述Mllib算法符合所述FPGA OpenCL并行优化设计条件时,将所述Mllib算法的核心计算部分基于OpenCL实现并行化设计描述,并移植到FPGA上实现并行计算,所述OpenCL通过Scala调用OpenCL专用接口,以实现FPGA与Spark平台的融合;反之,则所述Mllib算法在所述Spark平台进行运算。
2.根据权利要求1所述的方法,其特征在于,所述判断Mllib算法是否符合FPGA OpenCL并行优化设计条件为:
当Mllib算法进行运算的时间超过预设时间且所述Mllib算法适用于并行化计算时,所述Mllib算法符合FPGA OpenCL并行优化设计条件;反之,则不符合所述FPGA并行优化设计条件。
3.根据权利要求2所述的方法,其特征在于,在所述将所述Mllib算法的核心计算部分基于OpenCL实现并行化设计描述,并移植到FPGA上实现并行计算之后还包括:
所述FPGA将计算结果返回所述Spark平台并显示。
4.根据权利要求1-3任意一项所述的方法,其特征在于,在所述移植到FPGA上实现并行计算之前还包括:
将所述Mllib算法利用所述OpenCL进行并行设计。
5.一种Spark MLlib数据处理加速的系统,其特征在于,包括:
Spark分布式大数据处理装置、多个FPGA以及多个计算节点,
其中,所述Spark分布式大数据处理装置部署到多个所述计算节点,每一个所述计算节点与一个或多个所述FPGA相连;
所述Spark分布式大数据处理装置用于判断Mllib算法是否符合FPGA OpenCL并行优化设计条件;当判定所述Mllib算法符合所述FPGA并行优化设计条件时,将所述Mllib算法的核心计算部分基于OpenCL实现并行化设计描述,并移植到所述FPGA上实现并行计算,所述OpenCL通过Scala调用OpenCL专用接口,以实现FPGA与Spark平台的融合;反之,则所述Mllib算法在所述Spark平台进行运算;
所述FPGA用于处理符合所述FPGA OpenCL并行优化设计条件的Mllib算法;
所述计算节点用于对所述Spark平台上的计算任务进行资源分配和任务调度。
6.根据权利要求5所述的系统,其特征在于,所述Spark分布式大数据处理装置为当所述Mllib算法进行运算的时间超过预设时间且所述Mllib算法适用于并行化计算时,所述Mllib算法符合FPGA OpenCL并行优化设计条件;反之,则不符合所述FPGA并行优化设计条件的模块。
7.根据权利要求6所述的系统,其特征在于,还包括:
PCIe高速接口,用于所述FPGA与所述Spark平台之间数据传输和结果返回。
8.根据权利要求5至7任意一项所述的系统,其特征在于,所述Spark分布式大数据处理装置还包括:
优化单元,用于将所述Mllib算法利用所述OpenCL进行并行设计。
9.根据权利要求7所述的系统,其特征在于,所述计算节点通过所述PCIe高速接口与所述FPGA相连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611056361.3A CN106547627A (zh) | 2016-11-24 | 2016-11-24 | 一种Spark MLlib数据处理加速的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611056361.3A CN106547627A (zh) | 2016-11-24 | 2016-11-24 | 一种Spark MLlib数据处理加速的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106547627A true CN106547627A (zh) | 2017-03-29 |
Family
ID=58395380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611056361.3A Pending CN106547627A (zh) | 2016-11-24 | 2016-11-24 | 一种Spark MLlib数据处理加速的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106547627A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122490A (zh) * | 2017-05-18 | 2017-09-01 | 郑州云海信息技术有限公司 | 一种分组查询中聚合函数的数据处理方法及系统 |
CN107391432A (zh) * | 2017-08-11 | 2017-11-24 | 中国计量大学 | 一种异构并行计算装置及运算节点互联网络 |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107612682A (zh) * | 2017-09-25 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种基于sha512算法的数据处理方法、装置及系统 |
CN107612681A (zh) * | 2017-09-25 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种基于sm3算法的数据处理方法、装置及系统 |
CN107862386A (zh) * | 2017-11-03 | 2018-03-30 | 郑州云海信息技术有限公司 | 一种数据处理的方法及装置 |
CN108958852A (zh) * | 2018-07-16 | 2018-12-07 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga异构平台的系统优化方法 |
WO2019041708A1 (zh) * | 2017-08-29 | 2019-03-07 | 武汉斗鱼网络科技有限公司 | 一种分类模型训练系统及其实现方法 |
CN110209631A (zh) * | 2019-05-10 | 2019-09-06 | 普华诚信信息技术有限公司 | 大数据处理方法及其处理系统 |
CN110597615A (zh) * | 2018-06-12 | 2019-12-20 | 杭州海康威视数字技术股份有限公司 | 一种编码指令的处理方法和节点设备 |
CN111722834A (zh) * | 2020-07-23 | 2020-09-29 | 哈尔滨工业大学 | 一种面向机器人ekf-slam算法的加速方法 |
TWI714078B (zh) * | 2019-05-07 | 2020-12-21 | 國立高雄大學 | 基於深度學習之大數據分析平台排程系統及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120173476A1 (en) * | 2011-01-04 | 2012-07-05 | Nasir Rizvi | System and Method for Rule-Based Asymmetric Data Reporting |
CN105447285A (zh) * | 2016-01-20 | 2016-03-30 | 杭州菲数科技有限公司 | 一种提高OpenCL硬件执行效率的方法 |
CN105956666A (zh) * | 2016-04-29 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 一种机器学习方法及系统 |
CN106155635A (zh) * | 2015-04-03 | 2016-11-23 | 北京奇虎科技有限公司 | 一种数据处理方法和装置 |
-
2016
- 2016-11-24 CN CN201611056361.3A patent/CN106547627A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120173476A1 (en) * | 2011-01-04 | 2012-07-05 | Nasir Rizvi | System and Method for Rule-Based Asymmetric Data Reporting |
CN106155635A (zh) * | 2015-04-03 | 2016-11-23 | 北京奇虎科技有限公司 | 一种数据处理方法和装置 |
CN105447285A (zh) * | 2016-01-20 | 2016-03-30 | 杭州菲数科技有限公司 | 一种提高OpenCL硬件执行效率的方法 |
CN105956666A (zh) * | 2016-04-29 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 一种机器学习方法及系统 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122490A (zh) * | 2017-05-18 | 2017-09-01 | 郑州云海信息技术有限公司 | 一种分组查询中聚合函数的数据处理方法及系统 |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107480770B (zh) * | 2017-07-27 | 2020-07-28 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107391432B (zh) * | 2017-08-11 | 2020-07-28 | 中国计量大学 | 一种异构并行计算装置及运算节点互联网络 |
CN107391432A (zh) * | 2017-08-11 | 2017-11-24 | 中国计量大学 | 一种异构并行计算装置及运算节点互联网络 |
WO2019041708A1 (zh) * | 2017-08-29 | 2019-03-07 | 武汉斗鱼网络科技有限公司 | 一种分类模型训练系统及其实现方法 |
CN107612682A (zh) * | 2017-09-25 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种基于sha512算法的数据处理方法、装置及系统 |
CN107612681A (zh) * | 2017-09-25 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种基于sm3算法的数据处理方法、装置及系统 |
CN107862386A (zh) * | 2017-11-03 | 2018-03-30 | 郑州云海信息技术有限公司 | 一种数据处理的方法及装置 |
CN110597615A (zh) * | 2018-06-12 | 2019-12-20 | 杭州海康威视数字技术股份有限公司 | 一种编码指令的处理方法和节点设备 |
CN110597615B (zh) * | 2018-06-12 | 2022-07-01 | 杭州海康威视数字技术股份有限公司 | 一种编码指令的处理方法和节点设备 |
CN108958852A (zh) * | 2018-07-16 | 2018-12-07 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga异构平台的系统优化方法 |
TWI714078B (zh) * | 2019-05-07 | 2020-12-21 | 國立高雄大學 | 基於深度學習之大數據分析平台排程系統及方法 |
CN110209631A (zh) * | 2019-05-10 | 2019-09-06 | 普华诚信信息技术有限公司 | 大数据处理方法及其处理系统 |
CN111722834B (zh) * | 2020-07-23 | 2021-12-28 | 哈尔滨工业大学 | 一种面向机器人ekf-slam算法的加速方法 |
CN111722834A (zh) * | 2020-07-23 | 2020-09-29 | 哈尔滨工业大学 | 一种面向机器人ekf-slam算法的加速方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106547627A (zh) | 一种Spark MLlib数据处理加速的方法及系统 | |
Wang et al. | Various frameworks and libraries of machine learning and deep learning: a survey | |
Khorasani et al. | CuSha: vertex-centric graph processing on GPUs | |
Ubal et al. | Multi2Sim: A simulation framework for CPU-GPU computing | |
CN105022670B (zh) | 一种云计算平台中的异构分布式任务处理系统及其处理方法 | |
Karloff et al. | A model of computation for MapReduce | |
CN106528171B (zh) | 一种异构计算平台子系统间的接口设计方法、装置及系统 | |
Negrevergne et al. | Discovering closed frequent itemsets on multicore: Parallelizing computations and optimizing memory accesses | |
Banger et al. | OpenCL programming by example | |
US20130091507A1 (en) | Optimizing data warehousing applications for gpus using dynamic stream scheduling and dispatch of fused and split kernels | |
CN105426344A (zh) | 基于Spark的分布式大规模矩阵乘法的矩阵计算方法 | |
CN101398753A (zh) | 用于执行扫描运算的系统、方法及计算机程序产品 | |
Shan et al. | CNN-on-AWS: Efficient allocation of multikernel applications on multi-FPGA platforms | |
CN106295670A (zh) | 数据处理方法及数据处理装置 | |
CN100531070C (zh) | 网络资源调度仿真系统 | |
CN103955443A (zh) | 一种基于gpu加速的蚁群算法优化方法 | |
Chandrashekhar et al. | Performance study of OpenMP and hybrid programming models on CPU–GPU cluster | |
Farrell et al. | A concurrent computer architecture and a ring based implementation | |
Chong et al. | A Multi-GPU framework for in-memory text data analytics | |
Jin et al. | TurboDL: Improving the CNN training on GPU with fine-grained multi-streaming scheduling | |
Yuan et al. | Automatic enhanced CDFG generation based on runtime instrumentation | |
Muniyandi et al. | Using graphics processing unit to accelerate simulation of membrane computing | |
Zhao et al. | A new parallel simulation method for massive crowd | |
Ponce et al. | Extension of a Task-based model to Functional programming | |
Savadi et al. | Multi-DaC programming model: A variant of multi-BSP model for divide-and-conquer algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170329 |