使用图形处理单元提高计算机中实时数据库处理能力的方法

文档序号:6338522阅读:203来源:国知局
专利名称:使用图形处理单元提高计算机中实时数据库处理能力的方法
技术领域
本发明涉及工业控制系统领域和商业业务系统领域的实时数据库系统,尤其涉及使用图形处理单元(Graphics Processing Unit, GPU,或译图形处理器)处理实时数据的系统和方法。
背景技术
实时数据库(Real Time Database, RTDB)是数据库系统发展的一个分支,是数据库技术结合实时处理技术产生的。实时数据库系统是开发实时控制系统、数据采集系统、电信计费系统、股票交易系统等的支撑软件。实时数据库的一个重要特性就是实时性,实时性是现场实时数据的更新周期。作为实时数据库,需要考虑数据的实时性。实时数据库具有另一个重要特征是数据库技术该系统中管理了大量的数据,同时提供数据的存贮、检索、修改、加工等多方面的数据管理手段。在工业流程控制行业中,大量使用实时数据库系统进行控制系统监控、系统先进控制和优化控制,并为企业的生产管理和调度、数据分析、决策支持及远程在线浏览提供实时数据服务和多种数据管理功能。实时数据库已经成为企业信息化的基础数据平台。数据采集与监控(SupervisoryControl And Data Acquisition, SCADA)系统的应用领域很广,它可以应用于电力系统、给水系统、石油、化工等领域的数据采集与监视控制以及过程控制等诸多领域。一些大型企业中的SCADA系统面临越来越大的容量压力。虽然SCADA系统能应付这样的容量压力,但其硬件实现成本非常高昂,并相应地带来了每年高昂的硬件维护成本。SCADA系统内的实时数据库是SCADA系统提高容量的主要瓶颈。如何有效地提高实时数据库的处理能力,是解决SCADA系统容量问题的关键。而实时数据库的常规处理例如实时数据的量程转换、越限处理、变化处理、公式计算、历史数据压缩与解压缩等常用操作,占据了中央处理单元(Central Processing Unit,CPU)的大量处理时间。CPU运算能力限制了实时数据库处理能力。同样,一些大型的电信企业,其计费系统内的实时数据库受限于CPU处理能力。其通常的解决办法是使用多台计算机并行处理以获得高处理能力。这样的解决方案就带来了高昂的硬件成本和维护费用。随着图形处理单元(Graphics Processing Unit,GPU,或译图形处理器)软硬件技术的日趋成熟,GPU强大的浮点运算和并行处理能力使得业界都在致力于挖掘其潜能。很多GPU普遍具有进行通用计算的能力。GPU只需要用非常低廉的价格,就获得异常高的数据处理能力。基于图形处理芯片的通用计算(General Purpose GPU,GPGPU)研究正逐步深Ao 而 NVIDIA 公司独特的统一计算设备架构(Compute Unified Device Architecture,CUDA)技术相对成熟,已经在非图形领域得到广泛的工程应用,例如模式识别、地震预测、合成孔径雷达等多个方面。
然而,使用GPU来处理工业控制系统或商业业务系统产生的实时数据,相对地吸引了较少的注意。

发明内容
本发明的目的是提供使用GPU提高实时数据库处理能力的系统和方法。本发明通过将CPU来处理的主要运算任务移植到GPU,减轻了 CPU的计算限制。更具体地,本发明将通常由CPU负责的实时数据的量程转换、越限处理、变化处理、公式计算、历史数据压缩与解压缩等常用操作创造性地移植到GPU上进行处理。由于GPU提供的内存带宽及运算核心远远多于CPU,GPU能提供远远大于CPU的并行运算能力,因此本发明能显著提升实时数据库的处理能力。为了解决上述技术问题,本发明采取的方法是使用GPU对实时数据进行处理,以便把原始的实时数据转变为计算机中其他程序可以使用的数据。具体的实现步骤如下(a) 初始化GPU ; (b)把数据点的参数导入GPU的存储器;(c)每隔固定时间,把需要处理的原始的实时数据导入GPU的存储器;(d)使用GPU对上述实时数据进行的量程转换、越限处理、 变化处理、公式计算、历史数据压缩等处理;(e)输出处理结果以供其他程序使用。可以理解,步骤(c)也可以转化为有变化数据再进行处理的方式。本发明采取的方法还可包括使用GPU对历史数据进行解压缩处理。具体的实现步骤如下(a)把测量点的压缩历史数据压缩及压缩参数导入GPU的存储器;(b)根据其压缩算法,使用GPU对上述数据进行解压缩处理;(d)最后输出解压缩后的历史数据以供其他程序使用。为了满足实际需要,本发明中的实时数据库提供数据的存贮、检索、修改等多方面的应用禾呈序接□ (Application Programming Interface, API)。从以上描述可以看出,本发明是通过把实时数据库的常见运算移植到GPU上进行处理,利用GPU强大的数据处理能力,就能使得实时数据库的处理能力得到数倍于从前的提升。同时由于GPU的低成本,本发明能大幅降低大型实时数据库的硬件实现成本。


图1示出了可在其中实现GPU处理实时数据的合适的计算系统的一个示例。图2所示是使用GPU处理实时数据的一个示例性实时数据库系统实现的系统结构图。图3所示是作为示例,GPU与CPU协调处理实时数据的流程图。
具体实施例方式在以下本发明的描述中参考附图,附图形成了本发明的一部分,并在其中作为说明示出了可实践本发明的具体示例。可以理解,可以在不脱离本发明的范围的情况下使用其他实施例并作出结构上的变化。GPU传统上被用于加速实时3D图形显示。然而,很多GPU普遍具有进行通用计算的能力。GPU的通用计算能力被通常用于处理图形算法和涉及大量数据和处理的科学计算问题(如计算流体动力学)。然而,使用GPU来处理工业控制系统或商业业务系统产生的实时数据,相对地吸引了较少的注意。本发明所描述的是使用GPU对实时数据进行处理的系统和方法,这样的处理减轻了 CPU的计算限制。更具体地,本系统和方法把多种实时数据处理从CPU上移植到GPU,并在GPU上进行优化运行。在实现上述系统和方法后,实时数据库就能处理远远多于以前的
数据量。本发明所揭示的使用GPU对实时数据进行处理的系统和方法。以下讨论旨在提供实现本发明的简要、一般的描述。图1示出了可在其中实现GPU对实时数据进行处理的合适计算系统的一个示例。计算装置100仅为合适的计算装置的一个示例,并非暗示对本发明的使用范围或功能的局限。也不应将计算装置100解释为对示例性计算装置100中示出的任一组件或其组合具有依赖或需求。使用GPU对实时数据进行处理的系统和方法可以使用众多的其他通用或专用计算系统环境或配置来操作。适合的计算系统、环境配置包括但不限于个人计算机、服务器计算机、手持式计算机、通信设备、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。GPU105可以是若干种能进行通用计算的GPU类型中的任一种。图2所示是使用GPU处理实时数据的一个示例性实时数据库系统实现的系统结构图。实时数据库系统200仅为一个示例性实时数据库实现。它揭示了本发明所使用的方法。但它并非暗示对本发明的使用范围或功能的局限。也不应将实时数据库系统200解释为对示例性实时数据库200中示出的任一组件或其组合具有依赖或需求。图3所示是作为示例,展示GPU计算服务204处理实时数据的主要流程图。但其中的步骤和说明,仅作为实现示例的描述,并不意味着本发明的详细描述限制。步骤301主要是实现对GPU进行通用计算的初始化。步骤302实现把数据点的参数导入GPU存储器。步骤303实现本服务进程在系统中的注册。步骤304实现把需要处理的实时数据导入GPU存储器。步骤305实现在CPU中调用GPU处理函数。步骤306是在GPU中实现了对实时数据的多种处理。步骤307实现GPU存储器的计算结果输出。步骤308如果接收到服务终止命令,则终止服务;否则转到执行步骤304。在特定的GPU,由于自身特点,可能存在其他的更优的实施步骤。例如步骤304与步骤305,在NVIDIA公司的CUDA通用计算平台,可以把CPU存储器地址映射入GPU存储器地址。这意味着可以先调用GPU的内核函数再真正实施从CPU存储器到GPU存储器的数据拷贝,以减少等待时延。作为示例,以NVIDIA公司的CUDA通用计算平台实现步骤306里描述的数据处理,以对本发明揭示的使用GPU对实时数据进行处理的系统和方法进行说明。但其中的示例和说明,并不意味着穷尽本发明或将其限于所详细描述的算法。量程转换处理通常是对原始实时数据进行线性转换处理。其步骤包括(a) GPU处理线程从GPU存储器取出等待处理的数据点的当前实时值;(b)GPU处理线程从GPU存储器取出该实时数据点的参数,包括基值和斜率;(c)计算出处理后的结果,其结果等于当前实时值乘斜率后再加上基值。越限处理的步骤包括(a)GPU处理线程从GPU存储器取出等待处理的数据点的当前实时数值;(b)GPU处理线程从GPU存储器取出该实时数据点的限值参数,包括上限值、上上限值、下限值、下下限值等;(c)对当前实时数值和限值进行比较,如果超出相应的限值则设置相应的限值位。
变化处理的步骤包括(a)GPU处理线程从GPU存储器取出等待处理的数据点的当前的实时数值;(b)GPU处理线程从GPU存储器取出等待处理的数据点的前一时刻的实时数值;(c)对当前的实时数值和前一时刻的实时数值进行比较,如果不相等,则设置相应的变化位。通常本处理主要使用在遥信点的变位检测。公式计算处理的步骤包括(a)GPU处理线程从GPU存储器取出等待处理的计算点的参数,包括计算公式编码和计算公式参数;(b)如果计算公式参数包含其他数据点或计算点的地址,则GPU处理线程从GPU存储器取出相应数据点或计算点的实时值;(c)根据计算公式编码定义的计算公式,计算出处理后的结果。历史数据压缩处理的可以使用多种算法,本示例使用一维小波变换算法对历史数据进行压缩。NVIDIA公司CUDA计算平台的SDK里提供了一维小波变换算法及例程。参照其例程,本示例的步骤包括(a)GPU处理线程设置好等待处理的数据点的特定时间内的历史数据;(b)GPU处理线程从GPU存储器取出等待处理数据点相关压缩参数;(c)调用NVIDIA 公司提供的一维小波变换算法进行处理。(d)输出处理结果。类似地,历史数据的解压缩处理参照NVIDIA公司提供的例程进行处理。可以理解,本发明的以上描述为说明和描述的目的而提出。它并不意味着穷尽本发明或将其限于所揭示的精确形式。鉴于以上教导,可以作出许多修改和变化。本发明的范围并不意味着由本发明的详细描述限制,而是由所附权利要求书来限制。
权利要求
1.一种用于图形处理单元处理实时数据的方法,其特征在于使用图形处理单元处理工业控制系统或商业业务系统产生的实时数据以获得计算结果的解决方案。
2.如权利要求1所述的方法,其特征在于,包括至少其中之一 所述图形处理单元对实时数据进行量程转换处理;所述图形处理单元对实时数据进行公式计算处理; 所述图形处理单元对越限的实时数据进行处理; 所述图形处理单元对变化的实时数据进行处理; 所述图形处理单元实现对历史数据进行压缩处理; 所述图形处理单元实现对历史数据进行解压缩处理; 所述图形处理单元实现对历史数据进行统计。
3.如权利要求1所述的方法,其特征在于,包括 所述图形处理单元导入数据点的参数。
4.如权利要求1所述的方法,其特征在于,包括 所述图形处理单元把计算结果返回给中央处理单元。
全文摘要
一种使用图形处理单元(GPU)对实时数据来加速处理的系统和方法。该系统和方法将可用于把各种实时数据库的常用计算处理从CPU移植到GPU。到GPU的处理转移使用克服限制并在GPU体系结构的框架内工作良好的若干新技术来实现。当克服了这些限制之后,实时数据库的常用计算处理尤其适合在GPU上进行,实时数据库的处理能力得到很大的提升,因为GPU通常比典型的CPU更为强大。
文档编号G06F17/30GK102567320SQ201010585758
公开日2012年7月11日 申请日期2010年12月13日 优先权日2010年12月13日
发明者莫进桃 申请人:莫进桃
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1