一种对海量散点数据的处理和显示的方法和系统技术方案

技术编号:25801998 阅读:63 留言:0更新日期:2020-09-29 18:35
本发明专利技术公开了一种对海量散点数据的处理和显示的方法和系统。包括以下步骤:将外部的原数据转换为设计好的中间缓存格式,且需要使用到工作线程;用户发起请求后,对所述中间缓存格式的数据进行配置、请求和计算;完成配置、请求和计算后,将处理结果分段反馈给用户。本发明专利技术不依赖显卡,尤其是特定品牌的显卡;不需要额外引入门槛较高的并行计算API(CUDA和OpenCL),降低了学习和维护的成本;相比常规的单工作线程或单线程线性处理方式,该方案能在短时间内完成对大量数据的处理和展示,提升用户的流畅度体验。

【技术实现步骤摘要】
一种对海量散点数据的处理和显示的方法和系统
本专利技术涉及计算机
,尤其涉及一种对海量散点数据的处理和显示的方法和系统。
技术介绍
目前针对离散型数据的处理思路就是“多线开工”——利用其“上下文无关”的特性在多个流水线上同时处理。较为成熟的方案为使用CUDA,但其本身依赖于英伟达的显卡,这意味着会使程序本身对硬件的依赖增大,且同时考验着显卡的性能;另外也有OpenCL同样可胜任,但相比CUDA,虽然脱离了特定品牌显卡的约束,但使用难度却进一步提升。其中:上下文无关:指数据个体之间没有关联约束,各自的处理过程和结果均不会影响到其他数据。CUDA:CUDA(ComputeUnifiedDeviceArchitecture),是显卡厂商NVIDIA推出的运算平台。CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以使用C语言来为CUDA架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序可以在支持CUDA的处理器上以超高性能运行。OpenCL:全称OpenComputingLanguage,开放运算语言。OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU,GPU或其他类型的处理器组成。OpenCL由一门用于编写kernels(在OpenCL设备上运行的函数)的语言(基于C99)和一组用于定义并控制平台的API组成。OpenCL提供了基于任务分割和数据分割的并行计算机制。线程池的工作线程可以避免将工作堆积在主线程,进而引发界面阻塞;多线程并行计算可以大大提高效率。界面绘制时,数据量大只是一种表象,背后涉及到的主要是执行方式产生的巨大开销——即散点越多,需要执行的单次绘制点的指令越多,因此尽可能将数据一口气传递给目标,也是减小开销的有效手段。因此,亟待提出一种对海量散点数据的处理和显示的方法和系统,以解决现有技术散点图数据在十分庞大时,在处理上带来的耗时和卡顿问题。针对离散型数据的处理需要依赖显卡,需要额外引入门槛较高的并行计算API(CUDA和OpenCL),降低了学习和维护的成本的问题。
技术实现思路
有鉴于现有技术的上述缺陷,本专利技术所要解决的技术问题是提供一种对海量散点数据的处理和显示的方法和系统,以解决现有技术针对离散型数据的处理需要依赖显卡,需要额外引入门槛较高的并行计算API(CUDA和OpenCL),降低了学习和维护的成本的问题。为实现上述目的,本专利技术提供了一种对海量散点数据的处理和显示的方法,包括以下步骤:将外部的原数据转换为设计好的中间缓存格式,且需要使用到工作线程;用户发起请求后,对所述中间缓存格式的数据进行配置、请求和计算;完成配置、请求和计算后,将处理结果分段反馈给用户。优选的,所述缓存为使用多级散列表或散列表搭配顺序容器的方式设计缓存。优选的,所述工作线程是一个工作线程,或者是一个线程池。优选的,所述配置、请求和计算具体为:配置:按照设计好的格式,组织用于请求计算的配置项,配置项内容包含采样的位置和大小、横纵方向的缩放比例;请求:将配置项传递给处理单元,并使其运行处理;计算:按照配置项对缓存数据进行分割、创建线程池、分发切割块,由多个工作线程异步完成各个块的处理工作。优选的,所述配置过程还包括对于某个采样区域的任意缩放倍率展示需求,其散点数据的处理有如下公式:Xaisplay=Scalex*(Xsplash-Xtopleft)Ydisplay=Scaley,*(Ysplash-Ytopleft)其中display指展示,scale为缩放倍率,splash为散点;topleft为采样区域的左上角坐标。优选的,用户取得处理结果后,将结果显示到GUI界面上:如果选择输出为块数据集,即包含左上角坐标和散点集,则使用绘制点的功能;如果得到的是8-bit图片,则使用绘制图片的功能。一种对海量散点数据的处理和显示的系统,包括:数据转换模块,用于将外部的原数据转换为设计好的中间缓存格式,且需要使用到工作线程;数据请求处理模块,用于用户发起请求后,对所述中间缓存格式的数据进行配置、请求和计算;数据反馈模块,用于完成配置、请求和计算后,将处理结果分段反馈给用户。优选的,所述数据转换模块,用于将外部的原数据转换为设计好的中间缓存格式:所述缓存为使用多级散列表或散列表搭配顺序容器的方式设计缓存。优选的,所述数据转换模块使用到的工作线程是一个工作线程,或者是一个线程池。优选的,所述数据请求处理模块在用户发起请求后,对中间缓存格式的数据进行配置、请求和计算,具体为:配置:按照设计好的格式,组织用于请求计算的配置项,配置项内容包含采样的位置和大小、横纵方向的缩放比例;请求:将配置项传递给处理单元,并使其运行处理;计算:按照配置项对缓存数据进行分割、创建线程池、分发切割块,由多个工作线程异步完成各个块的处理工作。优选的,所述数据请求处理模块的配置过程还包括对于某个采样区域的任意缩放倍率展示需求,其散点数据的处理有如下公式:Xdisplay=Scalex*(Xsplash-Xtopleft)Ydisplay=Scale3*(Ysplash-Ytopleft)其中,display指展示,scale为缩放倍率,splash为散点;topleft为采样区域的左上角坐标。优选的,所述还包括界面刷新模块,用于用户取得处理结果后,将结果显示到GUI界面上:如果选择输出为块数据集,即包含左上角坐标和散点集,则使用绘制点的功能;如果得到的是8-bit图片,则使用绘制图片的功能。本专利技术的有益效果是:本专利技术不依赖显卡,尤其是特定品牌的显卡;不需要额外引入门槛较高的并行计算API(CUDA和OpenCL),降低了学习和维护的成本;相比常规的单工作线程或单线程线性处理方式,该方案能在短时间内完成对大量数据的处理和展示,提升用户的流畅度体验。以下将结合附图对本专利技术的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本专利技术的目的、特征和效果。附图说明图1是本专利技术的方法流程图。图2是本专利技术的系统原理框图。图3是本专利技术的8-bit图片中,每个像素值仅用一个指向颜色表的索引值来记录的示意图。具体实施方式如图1所示,本专利技术提供一种对海量散点数据的处理和显示的方法,包括以下步骤:第一步:将外部的原数据转换为设计好的中间缓存格式,且需要使用到工作线程(工作线程是一个工作线程,或者是一个线程池),其考量有三;1)在原数据不变的前提下,转换后的格式便于针对不同的请求进行反复分割采样;2)缓存数据需要为快速拾取检测提供支撑,使得用户能够快速判断到鼠标位置应当拾取都哪本文档来自技高网
...

【技术保护点】
1.一种对海量散点数据的处理和显示的方法,其特征在于,包括以下步骤:/n将外部的原数据转换为设计好的中间缓存格式,且需要使用到工作线程;用户发起请求后,对所述中间缓存格式的数据进行配置、请求和计算;/n完成配置、请求和计算后,将处理结果分段反馈给用户;/n所述配置、请求和计算具体为:/n配置:按照设计好的格式,组织用于请求计算的配置项,配置项内容包含采样的位置和大小、横纵方向的缩放比例;/n请求:将配置项传递给处理单元,并使其运行处理;/n计算:按照配置项对缓存数据进行分割、创建线程池、分发切割块,由多个工作线程异步完成各个块的处理工作。/n

【技术特征摘要】
1.一种对海量散点数据的处理和显示的方法,其特征在于,包括以下步骤:
将外部的原数据转换为设计好的中间缓存格式,且需要使用到工作线程;用户发起请求后,对所述中间缓存格式的数据进行配置、请求和计算;
完成配置、请求和计算后,将处理结果分段反馈给用户;
所述配置、请求和计算具体为:
配置:按照设计好的格式,组织用于请求计算的配置项,配置项内容包含采样的位置和大小、横纵方向的缩放比例;
请求:将配置项传递给处理单元,并使其运行处理;
计算:按照配置项对缓存数据进行分割、创建线程池、分发切割块,由多个工作线程异步完成各个块的处理工作。


2.如权利要求1所述的一种对海量散点数据的处理和显示的方法,其特征在于:所述缓存为使用多级散列表或散列表搭配顺序容器的方式设计缓存。


3.如权利要求1所述的一种对海量散点数据的处理和显示的方法,其特征在于:所述工作线程是一个工作线程,或者是一个线程池。


4.如权利要求1所述的一种对海量散点数据的处理和显示的方法,其特征在于,所述配置过程还包括对于某个采样区域的任意缩放倍率展示需求,其散点数据的处理有如下公式:
Xdisplay=Scalex*(Xsplash-Xtopleft)
Ydisplay=Scaley*(Ysplash-Ytopleft)
其中display指展示,scale为缩放倍率,splash为散点;topleft为采样区域的左上角坐标。


5.如权利要求1所述的一种对海量散点数据的处理和显示的方法,其特征在于:用户取得处理结果后,将结果显示到GUI界面上:如果选择输出为块数据集,即包含左上角坐标和散点集,则使用绘制点的功能;如果得到的是8-bit图片,则使用绘制图片的功能。


6.一种对海量散点数据的处理和显示的系统,其特征在于,包括:
数据转换模块,用于将外部的原数据转换为设计好的...

【专利技术属性】
技术研发人员:李根俊超
申请(专利权)人:南京恒歌零一信息科技有限公司
类型:发明
国别省市:江苏;32

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1