《一种GPU上数据流处理系统及其数据流处理方法.pdf》由会员分享,可在线阅读,更多相关《一种GPU上数据流处理系统及其数据流处理方法.pdf(22页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104317751 A (43)申请公布日 2015.01.28 CN 104317751 A (21)申请号 201410657243.2 (22)申请日 2014.11.18 G06F 13/20(2006.01) (71)申请人 浪潮电子信息产业股份有限公司 地址 250101 山东省济南市高新区舜雅路 1036 号 (72)发明人 卢晓伟 沈铂 周勇 (74)专利代理机构 济南信达专利事务所有限公 司 37100 代理人 姜明 (54) 发明名称 一种 GPU 上数据流处理系统及其数据流处理 方法 (57) 摘要 本发明公开了一种 GPU 上数据流处理系统及 。
2、其数据流处理方法, 属于 GPU 上数据流处理的技 术领域, 一种 GPU 上数据流处理系统, 数据源的数 据流通过数据流处理系统至客户端, 数据流处理 系统包括 CPU 主机和 GPU 设备 ; CPU 主机包括 CPU 端加载引擎模块、 CPU 端缓冲模块、 数据流预处理 模块、 数据流减负模块和可视化模块 ; GPU 设备包 括 GPU 端加载引擎模块、 GPU 端缓冲模块、 数据流 概要抽取模块、 数据流处理模型库和数据流处理 模块 ; CPU 端加载引擎模块的装载或存储单元通 过互联网络与数据源、 GPU 端加载引擎模块的装 载或存储单元以及客户端的交互。本发明具有显 著的速度优势,。
3、 很好地满足了高维数据流的实时 性需求, 可以作为通用的分析方法广泛应用于高 维数据流挖掘领域。 (51)Int.Cl. 权利要求书 3 页 说明书 17 页 附图 1 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书17页 附图1页 (10)申请公布号 CN 104317751 A CN 104317751 A 1/3 页 2 1. 一种 GPU 上数据流处理系统, 其特征在于数据源的数据流通过数据流处理系统至客 户端, 数据流处理系统包括 CPU 主机和 GPU 设备 ; CPU 主机包括 CPU 端加载引擎模块、 CPU 端缓冲模块、 数据流预处理模。
4、块、 数据流减负 模块和可视化模块, CPU 端加载引擎模块设置有装载或存储单元, CPU 端缓冲模块设置有内 存, CPU 端加载引擎模块的装载或存储单元、 数据流预处理模块、 数据流减负模块和可视化 模块均与 CPU 端缓冲模块的内存连接交互, CPU 端加载引擎模块的装载或存储单元与可视 化模块连接交互 ; GPU设备包括GPU端加载引擎模块、 GPU端缓冲模块、 数据流概要抽取模块、 数据流处理 模型库和数据流处理模块, GPU 端加载引擎模块设置有装载或存储单元, GPU 端缓冲模块设 置有显存, 数据流概要抽取模块用于集成概要抽取方法供数据流处理模块调用, 数据流处 理模型库用于集。
5、成数据流处理算法供数据流处理模块调用, GPU 端加载引擎模块的装载或 存储单元、 数据流处理模块均与 GPU 端缓冲模块的显存连接交互, 数据流概要抽取模块、 数 据流处理模型库均与 GPU 端加载引擎模块的装载或存储单元连接, GPU 端缓冲模块的显存 中开辟有存储空间为滑动窗口 ; CPU 端加载引擎模块的装载或存储单元通过互联网络与数据源、 GPU 端加载引擎模块 的装载或存储单元以及客户端的交互。 2. 根据权利要求 1 所述的一种 GPU 上数据流处理系统, 其特征在于 CPU 端缓冲模块还 设置有用于管理内存的内存管理器, 内存管理器内设置有输入监测器, 输入监测器用于监 视内存。
6、中临时存储未处理的数据流 ; CPU 端加载引擎模块包括速度调节器、 装载或存储单 元和初始化集成器 ; 速度调节器用于根据内存的缓存状态调整数据源的数据流流入 CPU 端 加载引擎模块的装载或存储单元内的流速, 速度调节器内设有反馈机制 ; 初始化集成器用 于集成 CPU 主机和 GPU 设备的初始化操作。 3. 一种 GPU 上数据流处理方法, 其特征在于数据源输出的数据流通过权利要求 1 或 2 中任意一种数据流处理系统处理后将数据结果传输至客户端 ; 数据流的处理流程如下 : (1) 、 加载数据流 : 数据源中的数据流流入 CPU 端加载引擎模块的装载或存储单元, 由 CPU 端加载。
7、引擎模块的装载或存储单元将数据流存储到 CPU 端缓冲模块的内存中 ; (2) 、 数据流预处理 : 数据流预处理模块将内存中的原始数据流进行预处理, 并把预处 理过的数据流存入内存 ; (3) 、 传输数据流 : 预处理过的数据流由内存至 CPU 端加载引擎模块的装载或存储单 元, 由CPU端加载引擎模块的装载或存储单元至互联网络, 经互联网络到达GPU端加载引擎 模块的装载或存储单元, 再由 GPU 端加载引擎模块的装载或存储单元将其加载到显存的滑 动窗口中 ; (4) 、 数据流概要抽取 : 由数据流处理模块调用数据流概要抽取模块中的概要抽取方 法, 对滑动窗口中的数据流进行概要抽取, 。
8、并将最终形成的概要数据结构存储到显存中 ; (5) 、 数据流处理 : 由数据流处理模块调用数据流处理模型库中的数据流处理算法对概 要数据进行处理, 并把处理的数据结果存储到显存中 ; (6) 、 传输数据结果 : 数据结果由 GPU 端缓冲模块的显存至 GPU 端加载引擎模块的装载 或存储单元, 由 GPU 端加载引擎模块的装载或存储单元发送至互联网络, 经互联网络到达 CPU 端加载引擎模块的装载或存储单元, 再由 CPU 端加载引擎模块的装载或存储单元将数 权 利 要 求 书 CN 104317751 A 2 2/3 页 3 据结果加载到内存, 或者是由 CPU 端加载引擎模块的装载或存。
9、储单元将数据结果发送给可 视化模块 ; (7) 、 结果可视化 : 可视化模块将数据结果规范化之后发送给 CPU 端加载引擎模块的装 载或存储单元, 由 CPU 端加载引擎模块的装载或存储单元将数据结果展示给客户端。 4. 根据权利要求 3 所述的一种 GPU 上数据流处理方法, 其特征在于步骤 (2) 中, 数据流 预处理模块将内存中的原始数据流使用预处理方法进行预处理, 预处理方法包括数据清洗 方法、 数据集成方法、 数据变换方法和数据规约方法, 使用的预处理方法可以为上述的一种 方法, 或者选择多种方法结合使用。 5. 根据权利要求 3 所述的一种 GPU 上数据流处理方法, 其特征在于。
10、步骤 (2) 后, 当数据 流超负荷时, 经过数据流减负模块对数据流进行减负处理, 具体步骤为 : 、 CPU 端缓冲模块的内存管理器的输入监测器监视内存中临时存储未处理的数据流, 并决定在一个时间单位内, 新来数据流的体积是否超过了 GPU 设备的数据流处理模块的处 理能力 ; 、 若 GPU 设备的数据流处理模块能够处理所有的数据流, 则进行传输数据流 ; 若新来 数据流的体积超过了 GPU 设备的数据流处理模块的处理能力, 即数据流超负荷, 则将数据 流转入数据流减负模块 ; 、 数据流减负模块对数据流进行减负处理 ; 、 数据流减负模块将剩余数据流转入内存中, 进行下一个步骤的传输数据。
11、流。 6. 根据权利要求 5 所述的一种 GPU 上数据流处理方法, 其特征在于数据流减负模块对 数据流进行减负处理采用如下策略的一种或多种结合 : 、 基于数据的丢弃 : 在接收到的和未处理的时间序列数据流中的数据, 找到长度最长 的数据, 并把它们丢弃 ; 、 基于属性的修整 : 数据流中每个数据都有个属性, 在数据中, 将拥有最低频数的属 性除去, 以此对数据的属性修整 ; 、 基于优先级的丢弃 : 每个新到的数据流被分配一个优先级, 在接收到的和未处理的 数据流中的数据, 选择那些拥有最低优先级的数据并丢弃它们。 7. 根据权利要求 3 所述的一种 GPU 上数据流处理方法, 其特征在。
12、于显存使用全局存储 器去存储各种数据, 显存中开辟的滑动窗口用于把从 CPU 主机到达 GPU 设备的数据流保存 起来, 滑动窗口使用基于元组个数定义的滑动窗口, 即是窗口大小固定的滑动窗口, 用于保 存最近到达的数据流 ; 滑动窗口的数据流的处理方法使用可重写循环的滑动窗口方法, 更新时将新数据直接 覆盖了要过期的数据, 并提供了格局变换函数来维护滑动窗口中数据的逻辑格局状态。 8. 根据权利要求 3 所述的一种 GPU 上数据流处理方法, 其特征在于步骤 (4) 的数据流 概要抽取, 将数据流通过概要抽取方法获得概要数据结构, 概要抽取方法包括抽样方法, 小 波方法, 略图方法和直方图方法。
13、。 9. 根据权利要求 3 所述的一种 GPU 上数据流处理方法, 其特征在于数据流处理模型库 集成了数据流处理时的各种数据流处理算法, 包括查询处理算法、 聚类算法、 分类算法、 频 繁项集挖掘算法和多条数据流间的相关性分析算法。 10. 根据权利要求 3、 7、 8 或 9 所述的一种 GPU 上数据流处理方法, 其特征在于数据流 权 利 要 求 书 CN 104317751 A 3 3/3 页 4 处理模块的任务是调用数据流概要抽取模块的概要抽取方法对数据流进行概要抽取, 以及 调用数据流处理模型库中的数据流处理算法对概要数据进行并行计算 ; 数据流处理模块包 括数据流输入装配器、 全局。
14、线程块调度器和计算阵列, 计算阵列内设置有共享存储器、 装载 或存储单元 ; 数据流输入装配器负责把显存中的数据读入到数据流处理模块的共享存储器 中, 全局线程块调度器负责对共享存储器中的线程块、 线程和指令进行调度分配管理, 计算 阵列用于线程的计算 ; 计算阵列中的装载或存储单元在计算时, 从显存中加载数据到共享 存储器。 权 利 要 求 书 CN 104317751 A 4 1/17 页 5 一种 GPU 上数据流处理系统及其数据流处理方法 技术领域 0001 本发明涉及一种 GPU 上数据流处理的技术领域, 具体地说是一种 GPU 上数据流处 理系统及其数据流处理方法。 背景技术 00。
15、02 GPU(Graphic Processing Unit), 中文翻译为 “图形处理器” 。GPU 是显卡的 “心 脏” , 也就相当于 CPU 在电脑中的作用。GPU 具有相当高的内存带宽, 以及大量的执行单元, 它可帮助 CPU 进行一些复杂的计算工作, 使显卡减少了对 CPU 的依赖。 0003 传统上, GPU 的应用被局限于处理图形渲染计算任务, 无疑是对计算资源的极大 浪费。随着 GPU 可编程性的不断提高, 利用 GPU 完成通用计算的研究渐渐活跃起来。将 GPU 用于图形渲染以外领域的计算成为 GPGPU (General-purpose computing on grap。
16、hics processing units, 基于 GPU 的通用计算) 。GPGPU 计算通常采用 CPU+GPU 异构模式, 由 CPU 负责执行复杂逻辑处理和事务管理等不适合数据并行的计算, 由 GPU 负责计算密集型的大 规模数据并行计算。这种利用 GPU 强大处理能力和高带宽弥补 CPU 性能不足的计算方式在 发掘计算机潜在的性能, 在成本和性价比方面有显著优势。但是传统的 GPGPU 受硬件可编 程和开发方式的制约, 应用领域受到了限制, 开发难度也很大。 0004 2007 年, 由 NVIDIA 推出的 CUDA (Compute Unifi ed Device Archite。
17、cture, 统一计 算设备架构) , 这一编程接口弥补了传统 GPGPU 的不足。利用 CUDA 编程接口, 可以用 C 语 言直接调用GPU资源, 而无需将其映射到图形API, 为GPU的非图形编程普及消除了障碍。 0005 CUDA 模型将 CPU 作为主机 (Host) , GPU 作为协处理器 (co-processor)或设备 (device), 两者协同工作。CPU 负责进行逻辑性强的事物处理和串行计算, GPU 则专注于执 行高度线程化的并行处理任务。CPU、 GPU 各自拥有相互独立的存储器地址空间 : 主机端内 存和设备端显存。一旦确定了程序中的并行计算函数 (kernel。
18、) , 就考虑把这部分计算交给 GPU。 0006 (数据流的定义) 数据流实际上就是连续移动的元素队伍, 其中的元素是由相关数 据的集合组成。令 t 表示任一时间戳, at 表示在该时间戳到达的数据, 流数据可以表示成 , at1, at, at+1,. 区别于传统应用模型, 流数据模型具有以下 4 点共性 :(1) 数据 实时到达 ;(2) 数据到达次序独立, 不受应用系统所控制 ;(3) 数据规模宏大且不能预知 其最大值 ;(4) 数据一经处理, 除非特意保存, 否则不能被再次取出处理, 或者再次提取数 据代价昂贵。 0007 同时, 流是以双重身份出现的 :(1) 作为一个软件可见的程。
19、序变量存在。 (2) 作为 一个硬件可见的管理单位存在。 实际应用中流往往具有很多属性, 当流被映射到硬件中时, 这些属性仍然被保持或者变个形式被硬件所见。 0008 现有技术的数据挖掘中, 为了消除数据中的噪音、 空值和异常值等错误数据, 以保 证结果的准确性, 通常会在挖掘数据库中的静态数据集之前进行预处理操作 ; 当然, 数据流 中也避免不了各种错误数据, 为了提高挖掘结果的精确度, 对其进行预处理也是十分必要 说 明 书 CN 104317751 A 5 2/17 页 6 的。然而数据流挖掘一般都是在线进行的, 无法在挖掘前预处理数据。 0009 GPU 并行计算如何在数据流挖掘领域应。
20、用?在计算资源受限的环境下, 如何保证 数据流处理的实时性和通用性。 发明内容 0010 本发明的技术任务是提供一种具有显著的速度优势, 很好地满足了高维数据流的 实时性需求, 可以作为通用的分析方法广泛应用于高维数据流挖掘领域的一种 GPU 上数据 流处理系统及其数据流处理方法。 0011 本发明的技术任务是按以下方式实现的, 数据源输出的是高维的时间序列数据流, 经数据流处理系统处理后, 再输出给客户端 的是数据流的频繁模式或查询结果。 0012 一种 GPU 上数据流处理系统, 数据源 (data sources)的数据流通过数据流 处理系统至客户端 (client) , 数据流处理系统。
21、包括 CPU 主机 (CPU-Host)和 GPU 设备 (GPU-Device) ; CPU 主机包括 CPU 端加载引擎模块 (CPU-Side Load Engine Area) 、 CPU 端缓冲模块 (CPU-Side Buffer Area) 、 数据流预处理模块 (Data Stream Preprocessing Area) 、 数据 流减负模块 (Data Stream Load Shedding Area) 和可视化模块 (Visual Area) , CPU 端加 载引擎模块设置有装载或存储单元 (Load/Store Unit) , CPU 端缓冲模块设置有内存 (Ma。
22、in Memory, MM) , CPU 端加载引擎模块的装载或存储单元、 数据流预处理模块、 数据流减负模块 和可视化模块均与 CPU 端缓冲模块的内存连接交互, CPU 端加载引擎模块的装载或存储单 元与可视化模块连接交互 ; GPU 设备包括 GPU 端加载引擎模块 (GPU-Side Load Engine Area) 、 GPU 端缓冲模 块 (GPU-Side Buffer Area) 、 数据流概要抽取模块 (Data Stream Synopsis Extraction Area) 、 数据流处理模型库 (Data Stream Processing Model Library。
23、) 和数据流处理模 块 (Data Stream Processing Area) , GPU 端加载引擎模块设置有装载或存储单元 (Load/ Store Unit) , GPU端缓冲模块设置有显存 (Device Memory, DM) , 数据流概要抽取模块用于 集成概要抽取方法供数据流处理模块调用, 数据流处理模型库用于集成数据流处理算法供 数据流处理模块调用, GPU 端加载引擎模块的装载或存储单元、 数据流处理模块均与 GPU 端 缓冲模块的显存连接交互, 数据流概要抽取模块、 数据流处理模型库均与 GPU 端加载引擎 模块的装载或存储单元连接, GPU 端缓冲模块的显存中开辟有存。
24、储空间为滑动窗口 ; CPU 端加载引擎模块的装载或存储单元通过互联网络 (Interconnection Network) 与 数据源、 GPU 端加载引擎模块的装载或存储单元以及客户端的交互。 0013 CPU 端缓冲模块还设置有用于管理内存的内存管理器, 内存管理器内设置有输 入监测器, 输入监测器用于监视内存中临时存储未处理的数据流 ; CPU 端加载引擎模块包 括速度调节器 (Speed Regulator) 、 装载或存储单元 (Load/Store Unit) 和初始化集成器 (Initialization Integrator) ; 速度调节器用于根据内存的缓存状态调整数据源的。
25、数 据流流入 CPU 端加载引擎模块的装载或存储单元内的流速, 速度调节器内设有反馈机制 (Feedback Mechanism) ; 初始化集成器用于集成 CPU 主机和 GPU 设备的初始化操作。 0014 一种 GPU 上数据流处理方法, 数据源输出的数据流通过数据流处理系统处理后将 说 明 书 CN 104317751 A 6 3/17 页 7 数据结果传输至客户端 ; 数据流的处理流程如下 : (1) 、 加载数据流 : 数据源中的数据流流入 CPU 端加载引擎模块的装载或存储单元, 由 CPU 端加载引擎模块的装载或存储单元将数据流存储到 CPU 端缓冲模块的内存中 ; (2) 、。
26、 数据流预处理 : 数据流预处理模块将内存中的原始数据流进行预处理, 并把预处 理过的数据流存入内存 ; (3) 、 传输数据流 : 预处理过的数据流由内存至 CPU 端加载引擎模块的装载或存储单 元, 由CPU端加载引擎模块的装载或存储单元至互联网络, 经互联网络到达GPU端加载引擎 模块的装载或存储单元, 再由 GPU 端加载引擎模块的装载或存储单元将其加载到显存的滑 动窗口中 ; (4) 、 数据流概要抽取 : 由数据流处理模块调用数据流概要抽取模块中的概要抽取方 法, 对滑动窗口中的数据流进行概要抽取, 并将最终形成的概要数据结构存储到显存中 ; (5) 、 数据流处理 : 由数据流处。
27、理模块调用数据流处理模型库中的数据流处理算法对概 要数据进行处理, 并把处理的数据结果存储到显存中 ; (6) 、 传输数据结果 : 数据结果由 GPU 端缓冲模块的显存至 GPU 端加载引擎模块的装载 或存储单元, 由 GPU 端加载引擎模块的装载或存储单元发送至互联网络, 经互联网络到达 CPU 端加载引擎模块的装载或存储单元, 再由 CPU 端加载引擎模块的装载或存储单元将数 据结果加载到内存, 或者是由 CPU 端加载引擎模块的装载或存储单元将数据结果发送给可 视化模块 ; (7) 、 结果可视化 : 可视化模块将数据结果规范化之后发送给 CPU 端加载引擎模块的装 载或存储单元, 由。
28、 CPU 端加载引擎模块的装载或存储单元将数据结果展示给客户端。 0015 一种 GPU 上数据流处理方法, 步骤 (2) 中, 数据流预处理模块将内存中的原始数据 流使用预处理方法进行预处理, 预处理方法包括数据清洗方法、 数据集成方法、 数据变换方 法和数据规约方法, 使用的预处理方法可以为上述的一种方法, 或者选择多种方法结合使 用。 0016 、 数据清洗方法 : 填补缺失值、 平滑噪声数据、 去除异常值和解决数据不一致问 题 ; 数据清洗是数据预处理中非常重要的过程, 但也是最耗时间的过程 ; 缺失值、 噪声和不 一致性都将导致数据不准确, 而数据清洗可以有效地避免这种情况 ; 、 。
29、数据集成方法 : 模式集成和对象匹配、 去除冗余数据、 数据值冲突的检测与处理 ; 数据集成是指把原本存储在多个数据源中的数据集成起来, 形成一个数据源, 并以某种统 一的格式进行集中存储, 以方便后续的数据处理工作 ; 、 数据变换方法 : 数据平滑、 数据聚集、 数据泛化、 数据规范化和属性构造 ; 数据变换 是将数据转换成一种适合于数据挖掘的形式 ; 比如数据项间的维度可能不一致, 这时就需 要消减高维数据项的维度, 以减少它们之间的差异, 方便处理 ; 、 数据规约方法 : 数据立方体聚集、 属性子集选择、 维度归约、 数值归约、 离散化和概 念分层 ; 数据规约又称为数据消减技术。 。
30、0017 一种 GPU 上数据流处理方法, 步骤 (2) 后, 当数据流超负荷时, 经过数据流减负模 块对数据流进行减负处理, 具体步骤为 : 、 CPU 端缓冲模块的内存管理器的输入监测器监视内存中临时存储未处理的数据流, 并决定在一个时间单位内, 新来数据流的体积是否超过了 GPU 设备的数据流处理模块的处 说 明 书 CN 104317751 A 7 4/17 页 8 理能力 ; 、 若 GPU 设备的数据流处理模块能够处理所有的数据流, 则进行传输数据流 ; 若新来 数据流的体积超过了 GPU 设备的数据流处理模块的处理能力, 即数据流超负荷, 则将数据 流转入数据流减负模块 ; 、 。
31、数据流减负模块对数据流进行减负处理 ; 、 数据流减负模块将剩余数据流转入内存中, 进行下一个步骤的传输数据流。 0018 一种 GPU 上数据流处理方法, 数据流减负模块对数据流进行减负处理采用如下策 略的一种或多种结合 : 、 基于数据的丢弃 : 在接收到的和未处理的时间序列数据流中的数据, 找到长度最长 的数据, 并把它们丢弃 ; 、 基于属性的修整 : 数据流中每个数据都有个属性, 在数据中, 将拥有最低频数的属 性除去, 以此对数据的属性修整 ; 、 基于优先级的丢弃 : 每个新到的数据流被分配一个优先级, 在接收到的和未处理的 数据流中的数据, 选择那些拥有最低优先级的数据并丢弃它。
32、们。 三种策略各有各的目的 ; 基 于数据的丢弃策略, 丢弃了那些系统需要花费很多时间去处理的长数据, 试图尽可能快的 减少系统负载, 它是面向效率的 ; 基于属性的修整的策略, 从数据中删除了那些对处理结果 影响不显著的、 最不频发的属性 ; 基于优先级的丢弃的策略, 从数据中删除了那些拥有最低 优先级的数据 ; 相比而言, 后面这两个策略是面向精度的, 因为它们试图保留高精度的挖掘 结果。 0019 一种 GPU 上数据流处理方法, 显存使用全局存储器 (Global Memory) 去存储各种 数据 (如概要数据、 中间数据、 结果数据等) , 显存中开辟的滑动窗口 (Sliding W。
33、indow, SW) 用于把从 CPU 主机到达 GPU 设备的数据流保存起来 (由于数据流无限性和存储空间的有限 性, 为了减少内存和显存间的数据拷贝, 获得更有效的挖掘结果, 所以在显存中划分出一部 分空间作为滑动窗口暂存数据) , 滑动窗口使用基于元组个数定义的滑动窗口, 即是窗口大 小固定的滑动窗口, 用于保存最近到达的 K 个数据流 ; 滑动窗口的数据流的处理方法使用可重写循环的滑动窗口方法, 更新时将新数据直接 覆盖了要过期的数据, 并提供了格局变换函数来维护滑动窗口中数据的逻辑格局状态。 0020 一种 GPU 上数据流处理方法, 步骤 (4) 的数据流概要抽取, 将数据流通过概。
34、要抽取 方法获得概要数据结构, 概要抽取方法包括抽样 (Sampling) 方法, 小波 (Wavelet) 方法, 略 图 (Sketch) 方法和直方图 (Histogram) 方法。对数据流进行压缩, 构造一个比整个数据流 的数据规模小得多的数据结构来保存数据流的主要特征, 称之为概要数据结构, 通过概要 数据结构所获得的近似值是在用户可接受范围之内的。 0021 一种 GPU 上数据流处理方法, 数据流处理模型库集成了数据流处理时的各种数据 流处理算法, 包括查询处理算法 (query processing algorithma) 、 聚类算法 (clustering algorith。
35、ma)、 分类算法 (classifi cation algorithma)、 频繁项集挖掘算法 (frequent itemsets mining algorithma) 和 多 条 数 据 流 间 的 相 关 性 分 析 算 法 (correlation analysis algorithma)。 0022 一种 GPU 上数据流处理方法, 数据流处理模块的任务是调用数据流概要抽取模块 的概要抽取方法对数据流进行概要抽取, 以及调用数据流处理模型库中的数据流处理算法 说 明 书 CN 104317751 A 8 5/17 页 9 对概要数据进行并行计算 ; 数据流处理模块包括数据流输入装配。
36、器 (Data Stream Input Assembler) 、 全局线程块调度器 (Global Block Scheduler) 和计算阵列 (Compute Array) , 计算阵列内设置有共享存储器、 装载或存储单元 ; 数据流输入装配器负责把显存中的数据 读入到数据流处理模块的共享存储器中, 全局线程块调度器负责对共享存储器中的线程 块、 线程和指令进行调度分配管理, 计算阵列用于线程的计算 ; 计算阵列中的装载或存储单 元在计算时, 从显存中加载数据到共享存储器。 0023 本发明的一种 GPU 上数据流处理系统及其数据流处理方法具有以下优点 : 1、 通用性 : 以往的使用 。
37、GPU 加速的数据流处理系统仅仅局限于数据流处理时的某一种 任务, 要么是聚类, 要么是分类或者其它 ; 然而, 本发明的数据流处理系统, 适合于各个应用 领域的多条高维时间序列数据流, 它涵盖了数据流的预处理、 减负、 概要抽取和挖掘处理等 多项功能, GPU 设备部分包含的数据流处理模型库集成了各种数据流处理算法, 如查询处理 算法、 聚类算法、 分类算法、 频繁项集挖掘算法、 相关性分析算法, 能完成数据流处理时的多 项任务, 从而为本发明赋予了通用性 ; 2、 高效性 : 本发明的概要抽取方法以及所有数据流处理算法的并行部分都使用 GPU 进 行加速, 充分利用了 GPU 强大的处理能。
38、力和流水线特性, 进一步提高了执行效率 ; 3、 额外 I/O 开销的控制 : 数据流处理系统中把滑动窗口开辟在了显存中, 这样在进行 数据流概要抽取时就避免了数据在内存和显存间的频繁拷贝 ; 另外, 在进行概要抽取和数 据流处理时, 使用了显存, 大大减少了从内存中读写数据的次数 ; 4、 因为初始的数据流量过大, 如果直接将数据流传送到 GPU 设备中进行数据流预处 理, 会大大增加I/O开销, 所以本发明把数据流预处理过程设计在了CPU主机的数据流预处 理模块中, 即进行了数据流预处理消除数据中的噪音、 空值和异常值等错误数据, 又减少了 I/O 开销 ; 5、 现有技术中, 在滑动窗口。
39、未满阶段, 新数据直接填充窗口, 在窗口已满阶段, 随着窗 口的滑动, 新数据进入窗口内将导致其它已在窗口内的数据前移, 覆盖前面的数据 ; 然而, 本发明采用的可重写循环的滑动窗口方法, 在滑动窗口已满阶段并不需要移动数据, 它是 将新数据直接覆盖 (重写) 了要过期的数据, 并提供了格局变换函数来维护滑动窗口中数据 的逻辑格局状态, 节省了大量时间。 附图说明 0024 下面结合附图对本发明进一步说明。 0025 附图 1 为一种 GPU 上数据流处理系统的框架图。 具体实施方式 0026 参照说明书附图和具体实施例对本发明的一种 GPU 上数据流处理系统及其数据 流处理方法作以下详细地说。
40、明。 0027 实施例 1 : 本发明的一种 GPU 上数据流处理系统, 数据源 (data sources)的数据流通过数据 流处理系统至客户端 (client) , 数据流处理系统包括 CPU 主机 (CPU-Host)和 GPU 设备 (GPU-Device) ; 说 明 书 CN 104317751 A 9 6/17 页 10 CPU 主机包括 CPU 端加载引擎模块 (CPU-Side Load Engine Area) 、 CPU 端缓冲模块 (CPU-Side Buffer Area) 、 数据流预处理模块 (Data Stream Preprocessing Area) 、 数。
41、据 流减负模块 (Data Stream Load Shedding Area) 和可视化模块 (Visual Area) , CPU 端加 载引擎模块设置有装载或存储单元 (Load/Store Unit) , CPU 端缓冲模块设置有内存 (Main Memory, MM) , CPU 端加载引擎模块的装载或存储单元、 数据流预处理模块、 数据流减负模块 和可视化模块均与 CPU 端缓冲模块的内存连接交互, CPU 端加载引擎模块的装载或存储单 元与可视化模块连接交互 ; GPU 设备包括 GPU 端加载引擎模块 (GPU-Side Load Engine Area) 、 GPU 端缓冲模。
42、 块 (GPU-Side Buffer Area) 、 数据流概要抽取模块 (Data Stream Synopsis Extraction Area) 、 数据流处理模型库 (Data Stream Processing Model Library) 和数据流处理模 块 (Data Stream Processing Area) , GPU 端加载引擎模块设置有装载或存储单元 (Load/ Store Unit) , GPU端缓冲模块设置有显存 (Device Memory, DM) , 数据流概要抽取模块用于 集成概要抽取方法供数据流处理模块调用, 数据流处理模型库用于集成数据流处理算法供。
43、 数据流处理模块调用, GPU 端加载引擎模块的装载或存储单元、 数据流处理模块均与 GPU 端 缓冲模块的显存连接交互, 数据流概要抽取模块、 数据流处理模型库均与 GPU 端加载引擎 模块的装载或存储单元连接, GPU 端缓冲模块的显存中开辟有存储空间为滑动窗口 ; CPU 端加载引擎模块的装载或存储单元通过互联网络 (Interconnection Network) 与 数据源、 GPU 端加载引擎模块的装载或存储单元以及客户端的交互。 0028 CPU 端缓冲模块还设置有用于管理内存的内存管理器, 内存管理器内设置有输 入监测器, 输入监测器用于监视内存中临时存储未处理的数据流 ; C。
44、PU 端加载引擎模块包 括速度调节器 (Speed Regulator) 、 装载或存储单元 (Load/Store Unit) 和初始化集成器 (Initialization Integrator) ; 速度调节器用于根据内存的缓存状态调整数据源的数 据流流入 CPU 端加载引擎模块的装载或存储单元内的流速, 速度调节器内设有反馈机制 (Feedback Mechanism) ; 初始化集成器用于集成 CPU 主机和 GPU 设备的初始化操作。 0029 实施例 2 : 本发明的一种 GPU 上数据流处理方法, 数据源输出的数据流通过数据流处理系统处理 后将数据结果传输至客户端 ; 数据流的。
45、处理流程如下 : (1) 、 加载数据流 : 数据源中的数据流流入 CPU 端加载引擎模块的装载或存储单元 (数 据流流向如图 1 中所示) , 由 CPU 端加载引擎模块的装载或存储单元将数据流存储到 CPU 端缓冲模块的内存中 (数据流流向如图 1 中所示) ; (2) 、 数据流预处理 : 数据流预处理模块将内存中的原始数据流进行预处理 (数据流流 向如图 1 中所示) , 并把预处理过的数据流存入内存 (数据流流向如图 1 中所示) ; (3) 、 传输数据流 : 预处理过的数据流由内存至 CPU 端加载引擎模块的装载或存储单元 (数据流流向如图 1 中所示) , 由 CPU 端加载引。
46、擎模块的装载或存储单元至互联网络 (数据 流流向如图 1 中所示) , 经互联网络到达 GPU 端加载引擎模块的装载或存储单元 (数据流 流向如图 1 中所示) , 再由 GPU 端加载引擎模块的装载或存储单元将其加载到显存的滑动 窗口中 (数据流流向如图 1 中所示) ; (4) 、 数据流概要抽取 : 由数据流处理模块调用数据流概要抽取模块中的概要抽取方 法, 对滑动窗口中的数据流进行概要抽取 (数据流流向如图1中所示) , 并将最终形成的概要 说 明 书 CN 104317751 A 10 7/17 页 11 数据结构存储到显存中 (数据流流向如图 1 中所示) ; (5) 、 数据流处。
47、理 : 由数据流处理模块调用数据流处理模型库中的数据流处理算法对概 要数据进行处理 (数据流流向如图1中所示) , 并把处理的数据结果存储到显存中 (数据流流 向如图 1 中所示) ; (6) 、 传输数据结果 : 数据结果由 GPU 端缓冲模块的显存至 GPU 端加载引擎模块的装载 或存储单元 (数据流流向如图 1 中所示) , 由 GPU 端加载引擎模块的装载或存储单元发送至 互联网络 (数据流流向如图 1 中所示) , 经互联网络到达 CPU 端加载引擎模块的装载或存储 单元 (数据流流向如图 1 中所示) , 再由 CPU 端加载引擎模块的装载或存储单元将数据结果 加载到内存 (数据流。
48、流向如图 1 中所示) , 或者是由 CPU 端加载引擎模块的装载或存储单元 将数据结果发送给可视化模块 (数据流流向如图 1 中所示) ; (7) 、 结果可视化 : 可视化模块将数据结果规范化之后发送给 CPU 端加载引擎模块的装 载或存储单元 (数据流流向如图 1 中所示) , 由 CPU 端加载引擎模块的装载或存储单元将数 据结果展示给客户端 (数据流流向如图 1 中所示) 。 0030 实施例 3 : 本发明的一种 GPU 上数据流处理方法, 数据源输出的数据流通过数据流处理系统处理 后将数据结果传输至客户端 ; 数据流的处理流程如下 : (1) 、 加载数据流 : 数据源中的数据流。
49、流入 CPU 端加载引擎模块的装载或存储单元 (数 据流流向如图 1 中所示) , 由 CPU 端加载引擎模块的装载或存储单元将数据流存储到 CPU 端缓冲模块的内存中 (数据流流向如图 1 中所示) ; (2) 、 数据流预处理 : 数据流预处理模块将内存中的原始数据流进行预处理 (数据流流 向如图 1 中所示) , 并把预处理过的数据流存入内存 (数据流流向如图 1 中所示) ; (3) 、 传输数据流 : 预处理过的数据流由内存至 CPU 端加载引擎模块的装载或存储单元 (数据流流向如图 1 中所示) , 由 CPU 端加载引擎模块的装载或存储单元至互联网络 (数据 流流向如图 1 中所示) , 经互联网络到达 GPU 端加载引擎模块的装载或存储单元 (数据流 流向如图 1 中所示) , 再由 GPU 端加载引擎模块的装载或存储单元将其加载到显存的滑动 窗口中 (数据流流向如图 1 中所示) ; (4) 、 数据流概要抽取 : 由数据流处理模块调用数据流概要抽取模块中的概要抽取方 法, 对滑动窗口中的数据流进行概要抽取 (数据流流向如图1中所示) , 并将最终形成的概要 数据结构存储。