一种电力大数据分布控制系统及其构建方法与流程

文档序号:11154653阅读:840来源:国知局
一种电力大数据分布控制系统及其构建方法与制造工艺

本发明属于大数据计算仿真技术领域,尤其涉及一种电力大数据分布控制系统及其构建方法。



背景技术:

随着互联网的不断发展,我们的社会已经进入大数据时代,海量的信息不仅代表着大量的机遇,也为我们提出了巨大的挑战。数字化的生活所需要处理的数据越来越庞大,越来越复杂,大量实际应用部门,如天气预报、航天计算、核反应模拟、海量数据压缩存储以及其他大型事务处理等,都需要每秒执行数十万亿次乃至数百万亿此浮点运算的计算机,仅仅凭借单台服务器已经难以快速有效地对海量数据进行分析处理。特别是在社交网络、电子商务极度流行的今天,照片、视频成为交流信息的主要手段,需要对图像视频进行不同格式、不同分辨率的重编码,其所需数据的存储与计算能力日渐升高。由此,计算机领域中出现了分布式并行计算的概念。

并行计算相对于串行计算而言,能够一次处理多条指令,扩大数据处理规模,提高数据计算速度。分布式并行计算的核心思想是利用多个处理器设备协同计算,即将需处理的数据划分成多个互相独立的分片,统一调度分派给多个节点(即单台处理设备),然后集群中的每个节点分别独立的处理数据分片,最后将得到的部分数据处理结果汇集到一起,进而得出最终结果。由于FPGA硬件并行性的特点,非常适合进行大规模数据计算,同时现有很多软核,方便二次开发,如果将分布式并行计算方式和FPGA硬件加速结合起来,必会对海量数据的处理取得更高的效率,从而给社会、生活带来巨大的好处和商机。



技术实现要素:

本发明所要解决的技术问题是针对背景技术中的问题提供一种电力大数据分布控制系统及其构建方法,将分布式计算框架和FPGA硬件加速结合起来,从粗粒度和细粒度实现了对海量数据或大规模科学计算问题的超并行加速处理,大大提高大规模数据处理速率。

本发明为解决上述技术问题采用以下技术方案

一种电力大数据分布控制系统,包含Master调度器、节点和用户终端,所述节点包括处理节点和收集节点,所述用户终端通过Master调度器分别与处理节点、收集节点连接;所述Master调度器用于根据整个系统的资源及计算能力情况将任务分配给处理节点;所述处理节点根据Master调度器分配的任务对某个数据子部分进行处理;所述收集节点用于收集处理节点处理后的结果写入到某一区域,并将数据返回给用户终端。

作为本发明一种电力大数据分布控制系统的进一步优选方案,所述Master调度器包括数据缓存器、Hash算法模块和可控轮询算法模块;所述数据缓存器用于存储IP报文的数据;Hash算法模块用于对数据信息进行哈希运算;可控轮询算法模块用于数据信息队列调度和数据重组。

作为本发明一种电力大数据分布控制系统的进一步优选方案,所述处理节点和收集节点均包括ARM处理器、FPGA和通信接口模块,所述ARM处理器分别与FPGA、通信接口模块通过导线连接。

一种基于电力大数据分布控制系统的构建方法,具体包括以下步骤:

步骤1,用户发送数据处理请求,Master调度器分析用户的数据处理请求;

步骤2,Master调度器利用Hash算法模块对各节点运行情况进行分析,根据分析结果将数据信息分发到节点队列中;

步骤3,根据各个节点统计的数据流量值和状态信息,利用可控轮询算法对各个队列进行轮询调度,实现进程的动态均衡;

步骤4,将处理节点处理后的结果经过收集节点提交给用户,并在客户端显示接收结果。

作为本发明一种电力大数据分布控制系统的构建方法的进一步优选方案,在步骤1中,用户通过通信网络将数据处理请求传送至Master调度器。

作为本发明一种电力大数据分布控制系统的构建方法的进一步优选方案,所述步骤2中的Hash算法具体包括以下步骤:

步骤2-1,提取IP数据信息的首部信息,并将相应的IP数据缓存到一个数据存储器中;

步骤2-2,将原IP地址和目的IP地址分别分为两个16位字节,设定源端口号和目的端口号分别为SP和DP;

步骤2-3,进行Hash运算;

步骤2-4,根据Hash运算结果将数据信息传送至各处理节点。

作为本发明一种电力大数据分布控制系统的构建方法的进一步优选方案,所述步骤3中的可控轮询算法具体包括以下步骤:

步骤3-1,每次发送完一个数据分组时,询问所有节点队列;

步骤3-2,判断存在几个满队列,如果只有一个满队列,则计算该满队列的轮询等待时间,启动等待时间计数器,到达轮询等待时间时,转发该满队列的数据分组;如果存在多个满队列,则根据这几个满队列统计的已发送数据流量值,选中满队列中端口流量值最小的满队列,计算其轮询等待时间,启动等待时间计数器,到达轮询等待时间时转发该满队列的数据分组;另外,如果多个满队列中有两个以上的队列的数据流量值相等,且它们的流量值最小,则转发端口号最小的满队列的数据分组;

步骤3-3,如不存在满队列,选中所有队列中的非空队列;

步骤3-4,比较各个非空队列统计的数据流量值,判断非空队列中是否只有一个队列的流量最小值,如果是,就计算该队列的轮询等待时间,启动等待时间计数器,到达轮询等待时间时,就直接转发该队列对应的数据分组;否则,选中端口号最小的队列,计算其轮询等待时间,启动等待时间计时器,达到轮询等待时间时,转发该队列对应的数据分组。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

1、本发明发明了一种超并行计算框架,能够对大数据进行合理分片并实现系统节点的负载均衡,系统结构可动态变化,实现高性能、高灵活度的分布式并行计算系统;

2、本发明采用合理的负载均衡算法,结合数据、各节点的资源和处理情况进行任务分发,使整个系统的资源利用率和性能实现最大化;

3、本发明提供界面显示程序与各子结点的通信机制,实时显示系统整体和子节点的处理情况。

附图说明

图1是本发明实施例中结构示意图;

图2是本发明实施例中负载均衡结构图;

图3是本发明实施例中可控轮询算法流程图;

图4是本发明实施例中各节点结构图;

图5是本发明实施例中数据处理流程图。

具体实施方式

下面结合附图对本发明的技术方案做进一步的详细说明:

如图1所示,一种电力大数据分布控制系统,包含Master调度器、节点和用户终端,所述节点包括处理节点和收集节点,所述用户终端通过Master调度器分别与处理节点、收集节点连接;所述Master调度器用于根据整个系统的资源及计算能力情况将任务分配给处理节点;所述处理节点根据Master调度器分配的任务对某个数据子部分进行处理;所述收集节点用于收集处理节点处理后的结果写入到某一区域,并将数据返回给用户终端。

所述Master调度器包括数据缓存器、Hash算法模块和可控轮询算法模块;所述数据缓存器用于存储IP报文的数据;Hash算法模块用于对数据信息进行哈希运算;可控轮询算法模块用于数据信息队列调度和数据重组。

所述处理节点和收集节点均包括ARM处理器、FPGA和通信接口模块,所述ARM处理器分别与FPGA、通信接口模块通过导线连接。

Master调度器计算整个系统的资源及计算能力情况,并将任务分配给处理节点。数据部分把各节点数据虚拟成一个整体,并将其划分成各个独立的子部分,存储于各节点。处理节点根据Master调度器分配的任务对某个数据子部分进行处理,并将处理结果写入到某一指定的区域;收集节点主要是收集处理节点处理后的结果,并写入到某一指定的区域,最后将此区域的数据返回给用户程序。用户程序用以提交请求和接收处理结果的客户端。包括实时的显示当前系统的处理方式、系统整体及各节点的实时处理情况,并根据反馈的情况控制整个系统。

如图2所示,Master调度器实现负载均衡算法的实现。它包括以下步骤:

步骤1、用户程序发送数据处理请求,Master调度器分析用户请求。

步骤2、Master调度器利用Hash算法模块对各节点运行情况进行分析,根据分析结果将数据信息分发到所有节点队列中,实现数据任务的静态分配。

步骤3、根据各个节点统计的数据流量值和状态信息,利用可控轮询算法对各个队列进行轮询调度,实现进程的动态均衡。

步骤4、将处理节点处理后的结果经过收集节点提交给用户,并在客户端显示接收结果。

步骤2中所述Hash算法包括以下步骤:

步骤2-1:提取IP数据信息的首部信息,并将相应的IP数据缓存到一个数据存储器中;

步骤2-2:将原IP地址和目的IP地址分别分为两个16位字节,分别为S1、S2、D1、D2。设定源端口号和目的端口号分别为SP和DP;

步骤2-3:进行Hash运算,包括:

1)hash1=S1<<n|S1>>(16-n),其中n为位移数;

2)hash1=hash1∧D1;

3)hash=hash1

4)hash1=S2<<n|S2>>(16-n);

5)hash1=hash1∧SP;

6)Hash=hash∧hash1

7)hash1=D2<<n|D2>>(16-n);

8)hash1=hash1∧DP;

9)hash∧=hash1

10)hash=hash%N,N为处理节点数。

步骤2-4:根据Hash结果将数据信息传送至各处理节点。

步骤3利用可控轮询算法完成进程的动态均衡,具体流程如图3所示,包括:

步骤3-1、每次发送完一个数据分组时,询问所有节点队列;

步骤3-2、首先判断是否存在满队列,如果存在,再判断存在几个满队列,如果只有一个满队列,就计算该满队列的轮询等待时间,启动等待时间计数器,到达轮询等待时间时,转发该满队列的数据分组;如果存在多个满队列,根据这几个满队列统计的已发送数据流量值,选中满队列中端口流量值最小的队列,计算其轮询等待时间,启动等待时间计数器,到达轮询等待时间时转发该队列的数据分组;另外,如果多个满队列中有两个以上的队列的数据流量值相等,且它们的流量值最小,则转发端口号最小的满队列的数据分组;

步骤3-3、如不存在满队列,选中所有队列中的非空队列;

步骤3-4、比较各个非空队列统计的数据流量值,判断非空队列中是否只有一个队列的流量最小值,如果是,就计算该队列的轮询等待时间,启动等待时间计数器,到达轮询等待时间时,就直接转发该队列对应的数据分组;否则,选中端口号最小的队列,计算其轮询等待时间,启动等待时间计时器,达到轮询等待时间时,转发该队列对应的数据分组。

如图4,单个节点包括ARM处理器、FPGA和通信接口模块。当控制器接收到Master调度器的命令和代码后,将代码传至FPGA,之后将数据通过数据通道传至FPGA。FPGA模块对接收数据处理后通过数据发送模块将结果发送至ARM上,再送出节点外。同时FPGA的数据处理情况实时反馈到控制器,控制器将必要的数据显示在界面上。

如图5,一种电力大数据分布式计算平台,其数据处理流程为:平台启动后,客户端请求通过网络传至Master调度器进行分析。如果请求不可行,直接将异常输出到客户端;否则,Master调度器计算当前系统资源和运行情况,然后分配任务至各个节点;节点响应后,根据任务携带的信息判断数据是否本地化,没有则将远端数据传至本地进行处理,否则直接进行处理。各个节点处理完数据后,将处理结果写入指定区域。当节点处理完后,将指定区域的总的处理结果通过网络提交用客户端。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1