一种存储与计算服务器、电力用户用电量排名方法及系统与流程

文档序号:11230240阅读:239来源:国知局
一种存储与计算服务器、电力用户用电量排名方法及系统与流程

本发明属于电力系统技术领域,具体涉及一种存储与计算服务器、电力用户用电量排名方法及系统。



背景技术:

为满足大型电力公司集约化管理的需求,减少用电量信息采集主站系统的运营成本,各省电力公司的用电量信息采集主站系统一般都采取集中部署的模式,把全省的智能电表都集中接入到省电力公司总部进行统一处理。按现在各省公司的用户规模,用电量信息采集主站系统需要连接的智能电表数量,一般都在数百万甚至上千万只。考虑到智能电表每15分钟上送一次数据,每天将产生几十亿行记录,1年大约会产生200tb的数据。而且,为了对设备状态和电网运行情况进行分析和追溯,一般电表的历史数据需要保存5-7年。

对于如此长时间尺度的海量测量数据,如果都集中进行处理,工作量巨大,对系统的要求特别高,必须能够支撑海量数据文件的读写与计算。在保证系统稳定性和可靠性的前提下,如何对这些数据进行分析与处理,是目前急需解决的问题。



技术实现要素:

本发明的目的在于提供一种存储与计算服务器、电力用户用电量排名方法及系统,用以解决现有技术中主站系统将所有电力用户的智能电表集中统一处理的工作量大的问题。

为解决上述技术问题,本发明的技术方案为:

本发明的一种存储与计算服务器,包括一组gpu;

所述存储与计算服务器用于在接收到计算命令后,从存储设备读取一个轮次的用电量数据;

由一组gpu分摊处理该轮次的用电量数据,得到该轮次每个gpu的排名结果;

由该轮次每个gpu的排名结果,得到该轮次的排名结果;

接着,从存储设备读取下一个轮次的用电量数据,重复上述过程,直至将存储设备存储的数据读取并处理完毕,从而得到所有轮次的排名结果;

由每个轮次的排名结果,得到存储与计算服务器的排名结果。

进一步的,由该轮次每个gpu的排名结果,得到该轮次的排名结果的手段包括:

所有gpu整体排序:将每个gpu的排名结果整体进行排序,最终得到所述该轮次的排名结果;

或者是各gpu依次排序:将一个gpu的排名结果与之前gpu的排名结果进行排序,得到的排名结果更新所述之前gpu的排序结果,最终得到所述该轮次的排名结果。

进一步的,由每个轮次的排名结果,得到存储与计算服务器的排名结果的手段包括:

所有轮次整体排序:将每个轮次的排名结果整体进行排序,得到所述存储与计算服务器的排名结果;

或者是各轮次依次排序:将一个轮次的排名结果与之前轮次的排名结果进行排序,得到的排名结果更新所述之前轮次的排名结果,最终得到所述存储与计算服务器的排名结果。

本发明的一种电力用户用电量排名系统,包括计算客户端和至少两个存储与计算服务器;

所述计算客户端用于发送计算指令给存储与计算服务器,并接收每个存储与计算服务器的排名结果,由每个存储与计算服务器的排名结果,得到电力用户的排名结果;

每个存储与计算服务器包括一组gpu;

所述存储与计算服务器用于在接收到计算命令后,从存储设备读取一个轮次的用电量数据;

由一组gpu分摊处理该轮次的用电量数据,得到该轮次每个gpu的排名结果;

由该轮次每个gpu的排名结果,得到该轮次的排名结果;

接着,从存储设备读取下一个轮次的用电量数据,直至将存储设备存储的数据读取并处理完毕,从而得到所有轮次的排名结果;

由每个轮次的排名结果,得到存储与计算服务器的排名结果。

进一步的,由该轮次每个gpu的排名结果,得到该轮次的排名结果的手段包括:

所有gpu整体排序:将每个gpu的排名结果整体进行排序,最终得到所述该轮次的排名结果;

或者是各gpu依次排序:将一个gpu的排名结果与之前gpu的排名结果进行排序,得到的排名结果更新所述之前gpu的排序结果,最终得到所述该轮次的排名结果。

进一步的,由每个轮次的排名结果,得到存储与计算服务器的排名结果的手段包括:

所有轮次整体排序:将每个轮次的排名结果整体进行排序,得到所述存储与计算服务器的排名结果;

或者是各轮次依次排序:将一个轮次的排名结果与之前轮次的排名结果进行排序,得到的排名结果更新所述之前轮次的排名结果,最终得到所述存储与计算服务器的排名结果。

进一步的,由每个存储与计算服务器的排名结果,得到电力用户的排名结果的手段包括:

所有存储与计算服务器的排名结果整体排序:将每个存储与计算服务器的排名结果整体进行排序,得到所述电力用户排名结果;

或者是各存储与计算服务器的排名结果依次排序:将一个存储与计算服务器的排名结果与之前存储与计算服务器的排名结果进行排序,得到的排名结果更新所述之前存储与计算服务器的排名结果,最终得到所述电力用户的排名结果。

本发明的一种电力用户用电量排名方法,包括如下步骤:

1)每个存储与计算服务器在接收到计算命令后,从存储设备读取一个轮次的用电量数据;由一组gpu分摊处理该轮次的用电量数据,得到该轮次每个gpu的排名结果;

2)由该轮次每个gpu的排名结果,得到该轮次的排名结果;从存储设备读取下一个轮次的用电量数据,重复上述过程,直至将存储设备存储的数据读取并处理完毕,从而得到所有轮次的排名结果;由每个轮次的排名结果,得到存储与计算服务器的排名结果;

3)由每个存储与计算服务器的排名结果,得到电力用户的排名结果。

进一步的,由该轮次每个gpu的排名结果,得到该轮次的排名结果的手段包括:

所有gpu整体排序:将每个gpu的排名结果整体进行排序,最终得到所述该轮次的排名结果;

或者是各gpu依次排序:将一个gpu的排名结果与之前gpu的排名结果进行排序,得到的排名结果更新所述之前gpu的排序结果,最终得到所述该轮次的排名结果。

进一步的,由每个轮次的排名结果,得到存储与计算服务器的排名结果的手段包括:

所有轮次整体排序:将每个轮次的排名结果整体进行排序,得到所述存储与计算服务器的排名结果;

或者是各轮次依次排序:将一个轮次的排名结果与之前轮次的排名结果进行排序,得到的排名结果更新所述之前轮次的排名结果,最终得到所述存储与计算服务器的排名结果。

进一步的,由每个存储与计算服务器的排名结果,得到电力用户的排名结果的手段包括:

所有存储与计算服务器的排名结果整体排序:将每个存储与计算服务器的排名结果整体进行排序,得到所述电力用户排名结果;

或者是各存储与计算服务器的排名结果依次排序:将一个存储与计算服务器的排名结果与之前存储与计算服务器的排名结果进行排序,得到的排名结果更新所述之前存储与计算服务器的排名结果,最终得到所述电力用户的排名结果。

本发明的有益效果:

本发明的存储与计算服务器、电力用户用电量排名方法及系统,利用gpu的高性能计算能力来并行批量的对电力用户用电量进行排名计算;同时,采用分层计算体系,将需处理的计算负载进行分解,逐一进行轮番处理,然后将处理后的结果集中进行处理,这种基于分布式体系的方法降低了传统方法中将全部用户用电量数据集中处理时,处理量大、处理时间长、容易出错的问题出现,也提高了系统的可靠性和稳定性。同时,由于gpu的价格相对较为低廉,使得维护费用较低,能够得到很好的应用和发展。

附图说明

图1是本发明的电力用户用电量排名系统硬件结构图;

图2是本发明的电力用户用电量排名方法流程图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚,下面结合附图及实施例,对本发明作进一步的详细说明。

下面以按省的用电量信息采集主站系统为例来进行说明。由于我国电力用户特别多,用户规模一般在数百万之上,其产生的测量数据规模巨大。本发明的主要思想就是摒弃传统的集中处理的思想,而是将这些数据进行分布式处理。一般按省下属的行政辖区进行划分,也就是将一个省的用电量信息划分成按一个个地市的用电量信息。而分布式处理主要采用图形处理器(graphicprocessingunit,gpu)的高速计算能力。gpu是计算机显示接口卡的核心数据处理和计算单元。以下以河南省为例。

本发明的电力用户用电量排名系统实施例:

如图1所示,该系统包括计算客户端,数据存储与计算服务器和显卡gpu。将智能电表采集的用电量信息测量数据存储在服务器节点上。为了将用电量信息进行分布式处理,划分多个数据存储与计算服务器,每个数据存储与计算服务器对应存储该省的一个地市的用电量信息数据。例如,对于河南省来说,数据存储与计算服务器1存储的是郑州市电力用户的用电量信息,数据存储与计算服务器2存储的是洛阳市电力用户的用电量信息,数据存储与计算服务器3存储的是开封市电力用户的用电量信息等等。同时,数据存储与计算服务器也是算法执行的载体,同时担任数据存储和计算任务。数据存储与计算服务器只需采用普通的pc服务器即可。

根据该地市需要处理数据的量,每个数据存储与计算服务器的插槽上可插有多个显示接口卡,利用显示接口卡gpu的高性能计算能力,并行批量的对电力用户的用电量进行排名计算,执行批量电力用户的计算负载在显示接口卡上运行。

计算客户端安装有整个算法系统的客户端运行程序,对数据存储服务器的计算启动、调度及最终排名计算的程序都运行在该客户端上。

具体的:

计算客户端包括计算调度模块和最终排名模块。计算调度模块用来启动该排名计算,向所有的数据存储与计算服务器发送计算启动指令。最终排名模块是将所有的存储服务器的排序筛选出来的排名结果进行汇总,汇总后再次重新排序筛选出最终的电力用户用电量的排名结果。

存储与计算服务器包括客户响应模块,磁盘数据文件,数据读取模块,数据缓存池,二次排名计算模块和显卡并行计算控制模块。

1)客户响应模块用来接收计算客户端的计算启动指令,并通知数据读取模块来读取磁盘数据文件数据。磁盘数据文件中存储的有该存储与计算服务器中的用户用电量数据。缓存池用来暂存该轮需要gpu处理的数据,在每轮计算完毕后便会清除已读的数据,用来释放缓存,以便存储下轮需要计算处理的数据。

2)显卡并行计算控制模块用于从数据缓存池中把数据读出,启动该轮排名计算循环;而且,该模块会按显卡数量启动控制线程,每一个显卡对应一个控制线程;把读出的数据按控制线程数量进行分摊,每一个控制线程负责对一个显卡的并行计算过程进行协调控制;控制线程把用电量数据送入各自控制显卡的内存区,开始计算。

3)二次排名计算模块用来处理本显卡并行计算控制模块每轮计算产生的排名结果,并将本数据存储与计算服务器节点的排名结果发送给客户端响应模块,客户端响应模块将结果发送给计算客户端的最终排名模块。

以下以河南省电力公司为例来进行说明。该省有1000万电力用户,需要计算出本省用电量排名前100名的客户,如图2所示。

第一步,当需要计算时,计算客户端的计算调度模块开始启动整个排名计算流程,向数据存储与计算服务器集群中的所有服务器节点发送计算启动指令,然后等待排名计算的结果。

第二步,每个数据存储与计算服务器在其内部客户端响应模块用来接收计算客户端的启动指令。对于郑州市对应的存储与计算服务器1来说,在其内部的客户端相应模块接收到启动指令后,会通知数据读取模块从本服务器的磁盘数据文件中读取智能电表的电力用户用电量数据,再把读取的数据写入到数据缓存池中。

第三步,由于需处理的数据量较大,显卡并行计算控制模块并不会一次性把数据读取出来全部处理,而是进行分轮处理。数据缓存池每次只会存储一轮需处理的电力用户用电量数据,在显卡并行计算控制模块将需处理的数据从缓存池中读取出来后,就会从数据缓存池中清除已读出的数据。显卡并行计算控制模块把读出的数据按控制线程数量进行分摊,分别分给显卡1、显卡2、显卡3等等。

第四步,控制线程把用电量数据送入各自控制显卡的内存区,并启动显卡排名计算模块。显卡排名计算模块运行于显卡gpu中,采用冒泡法进行排名计算,产生每个gpu计算的前100名电力用户。

第五步,显卡并行计算控制模块再把本轮各个gpu计算得到的排名结果送入二次排名计算模块,显卡并行控制模块至此完成了该轮的排名计算。

第六步,然后数据读取模块会再从磁盘读取下一轮需处理的数据,并将数据存储在数据缓存吃,显卡并行控制模块再读取本次的数据,启动新一轮的计算。重复第三步到第五步的步骤,直到本节点的数据全部计算完毕,最终得到每轮的排名结果。

第七步,二次排名计算模块把显卡并行控制模块第一轮产生所有电力用户进行排名,产生该轮的前100名;当第二轮结束后,再产生第二轮的前100名,然后把第一轮和第二轮的前100名再进行排序,产生当前最新100名,然后第三轮至最后一轮的结果都反复和当前最新前100名进行比较,直到产生本服务器节点最终的前100名电力用户,对应即为郑州市的前100名电力用户。

第八步,二次排名计算模块把本服务器节点的排名结果送给客户端响应模块。客户端响应模块把该结果送给计算客户端的最终排名模块。至此存储服务器节点的计算任务全部结束。对于其他服务器节点,也同样按照上述过程来进行计算,最终产生各地市对应的前100名电力用户。

第九步,最终排名模块在接收在每个地市的前100名电力用户的结果后,再重新进行排序,产生最终的河南省的前100名电力用户。至此整个排名算法全部结束。

整体来说,本发明采用三层排名计算体系对计算负载进行层层分解,充分利用了各种硬件设备的特点,即基于gpu的高性能计算能力来对电力用户电量进行排名计算,以相对较低廉的价格和较低的维护费用,实现超大规模电力用户用电量排名的快速计算,能够得到很好的应用和发展。

在本实施例的第九步中,对第八步计算得到的结果,即各地市对应的前100名电力用户,进行整体混合排序产生最终的河南省的前100名电力用户。作为其他实施方式,可采用以下方法来获得最终的河南省的前100名电力用户:

最终排名模块在接收在每个地市的前100名电力用户的结果后,将郑州市和开封市的前100名电力用户混合后进行排序,产生第一轮的前100名的电力用户,接着再将洛阳市的前100名电力用户与第一轮的前100名的电力用户混合后,排序产生第二轮的前100名的电力用户,直到将每个地市的前100明电力用户计算完毕,产生最终的河南省的前100名电力用户。

在本实施例中的第七步中,为了得到本服务器节点最终的前100名电力用户,二次排名计算模块进行了分轮处理。作为其他实施方式,二次排名计算模块在计算得到各个gpu每轮处理得到的电力用户排名结果后,可直接将每轮gpu的排名结果进行排序,从而得到本服务器节点最终的前100名电力用户。该方法对二次排名计算模块的处理能力要求较高,能处理较大量的数据。

同时,在本实施例的第七步中,二次排名计算模块在接收到显卡并行控制模块对于该轮产生的电力用户用电量数据排名结果时,直接将每个gpu计算得到的排名结果进行排序,得到该轮的排名结果。作为其他实施方式,可将其中两个gpu的排名结果进行排序,得到前100名的排名结果;然后将下一个gpu的排名结果与最新的前100名的排名结果进行排序,更新前100名的排名结果;直到所有gpu的排名结果处理完毕,得到的最终的排名结果即为该轮次的排名结果。

本发明的电力用户用电量排名方法实施例:

对于上述介绍的电力用户用电量排名系统,其实质在于提供一种电力用户用电量排名方法,即:

1)每个存储与计算服务器在接收到计算命令后,从存储设备读取一个轮次的用电量数据;由一组gpu分摊处理该轮次的用电量数据,得到该轮次每个gpu的排名结果;

2)由该轮次每个gpu的排名结果,得到该轮次的排名结果;从存储设备读取下一个轮次的用电量数据,重复上述过程,直至将存储设备存储的数据读取并处理完毕,从而得到所有轮次的排名结果;由每个轮次的排名结果,得到存储与计算服务器的排名结果;

3)由每个存储与计算服务器的排名结果,得到电力用户的排名结果。

由于对电力用户用电量排名系统的介绍已足够清楚,对于该方法不再赘述。

本发明的存储与计算服务器实施例:

在上述介绍的电力用户用电量排名系统的实施例中,已完整清楚地介绍存储与计算服务器的功能以及实现方法,故对存储与计算服务器不再赘述。

以上描述的仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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