CN107679701A - 负荷削减并行计算方法及装置 - Google Patents

负荷削减并行计算方法及装置 Download PDF

Info

Publication number
CN107679701A
CN107679701A CN201710806361.9A CN201710806361A CN107679701A CN 107679701 A CN107679701 A CN 107679701A CN 201710806361 A CN201710806361 A CN 201710806361A CN 107679701 A CN107679701 A CN 107679701A
Authority
CN
China
Prior art keywords
load
data
cut
branch node
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710806361.9A
Other languages
English (en)
Other versions
CN107679701B (zh
Inventor
陆国俊
胡金星
章磊
栾乐
李光茂
何兵
肖天为
冯圣中
崔屹平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Institute of Advanced Technology of CAS
Guangzhou Power Supply Bureau of Guangdong Power Grid Co Ltd
Original Assignee
Shenzhen Institute of Advanced Technology of CAS
Guangzhou Power Supply Bureau Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Institute of Advanced Technology of CAS, Guangzhou Power Supply Bureau Co Ltd filed Critical Shenzhen Institute of Advanced Technology of CAS
Priority to CN201710806361.9A priority Critical patent/CN107679701B/zh
Publication of CN107679701A publication Critical patent/CN107679701A/zh
Application granted granted Critical
Publication of CN107679701B publication Critical patent/CN107679701B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0635Risk analysis of enterprise or organisation activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/06Electricity, gas or water supply

Abstract

本发明涉及一种负荷削减并行计算方法,读取支路节点开断数据,将支路节点开断数据均分到数据并行计算平台的多个分区中,获取Matlab与Java混合编程的负荷削减算法包;在各分区内分别调用负荷削减算法包计算当前分区内的支路节点开断数据,获取支路节点负荷削减量。通过调用Matlab与Java混合编程的负荷削减算法包并行计算支路节点开断数据,获取支路节点负荷削减量,大大降低了负荷削减算法并行化开发的难度以及复杂度,当新加入一个负荷削减的算法,只需要对新算法进行Matlab与Java混合编程得到负荷削减算法包,就可以对该算法并行化,具有较好的普适性。

Description

负荷削减并行计算方法及装置
技术领域
本发明涉及电网技术领域,特别涉及一种负荷削减并行计算方法。
背景技术
随着电力需求的持续增长及电网互联规模不断扩大,电力系统运行与控制需要处理大量的数据,而且对实时性有较高要求。电力系统负荷削减计算的传统串行方式在可处理规模与求解速度上无法满足大型电力网络的在线分析及实时控制等仿真要求,因此提出可行的支持复杂问题快速求解的并行计算方案。
目前电力分析的并行计算一般为基于MPI(Message-Passing-Interface,消息传递接口)实现并行化计算。但是,负荷削减计算用到的算法非常多,将这些算法进行并行化开发难度大、复杂度高,而且如果新加入一个算法,需要再次进行并行化,不具有普适性。
发明内容
基于此,有必要针对负荷削减算法并行化开发难度大、复杂高、不具有普适性的问题,提供一种负荷削减并行计算方法。
一种负荷削减并行计算方法,包括步骤:
读取支路节点开断数据,将支路节点开断数据均分到数据并行计算平台的多个分区中,其中,数据并行计算平台包括分布式文件系统、Matlab Runtime以及计算引擎;
获取Matlab与Java混合编程的负荷削减算法包;
在各分区内分别调用负荷削减算法包,计算当前分区内的支路节点开断数据,获取支路节点负荷削减量。
上述负荷削减并行计算方法,通过将读取的支路节点开关数据均分到数据并行平台的多个分区中,在各分区内分别调用Matlab与Java混合编程的负荷削减算法包,并行计算当前分区内的支路节点开断数据,获取支路节点负荷削减量,大大降低了负荷削减算法并行化开发的难度以及复杂度,当新加入一个负荷削减的算法,只需要对新算法进行Matlab与Java混合编程得到负荷削减算法包,就可以对该算法并行化,具有较好的普适性。
一种负荷削减并行计算装置,其特征在于,包括:
数据读取模块,用于读取支路节点开断数据,将支路节点开断数据均分到数据并行计算平台的多个分区中,其中,数据并行计算平台包括分布式文件系统、Matlab Runtime以及计算引擎;
算法包获取模块,用于获取Matlab与Java混合编程的负荷削减算法包;
负荷削减量计算模块,用于在各分区内分别调用负荷削减算法包,计算当前分区内的支路节点开断数据,获取支路节点负荷削减量。
上述负荷削减并行计算装置,数据读取模块读取的支路节点开关数据均分到数据并行平台的多个分区中,负荷削减量计算模块在各分区内调用通过算法包获取模块获取的Matlab与Java混合编程的负荷削减算法包,并行计算当前分区内的支路节点开断数据,获取支路节点负荷削减量,大大降低了负荷削减算法并行化开发的难度以及复杂度,当新加入一个负荷削减的算法,只需要对新算法进行Matlab与Java混合编程得到负荷削减算法包,就可以对该算法并行化,具有较好的普适性。
一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述负荷削减并行计算方法的步骤。
一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行负荷削减并行计算方法的步骤。
上述负荷削减并行计算的计算机设备以及存储介质,大大降低了负荷削减算法并行化开发的难度以及复杂度,当新加入一个负荷削减的算法,只需要对新算法进行Matlab与Java混合编程得到负荷削减算法包,就可以对该算法并行化,具有较好的普适性。
附图说明
图1为一个实施例的荷削减并行计算方法流程图;
图2为一个实施例的负荷削减并行计算装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明的保护范围。
参见图1所示,图1为本发明一个实施例的负荷削减并行计算方法的流程图,该实施例中负荷削减并行计算方法,包括以下步骤:
步骤S101:读取支路节点开断数据,将支路节点开断数据均分到数据并行计算平台的多个分区中,其中,数据并行计算平台包括分布式文件系统、Matlab Runtime以及计算引擎。
负荷削减计算针对的是电网中风险场景,即支路的开断情况。本步骤中,融合集成分布式文件系统(Hadoop Distribute File System,HDFS)、Matlab Runtime和计算引擎构建数据并行计算平台,读取支路节点开断数据,将支路节点开断数据均分到数据并行计算平台的多个分区中。
其中,分布式文件系统提供对大数据集的高吞吐量访问,实现对电气计算的输入输出的多元异构数据的存储。Matlab Runtim是提前部署的Matlab的运行环境,使得数据并行计算平台内不需要安装Matlab软件,使Java程序能够正确调用Matlab程序。计算引擎提供并行计算环境。
步骤S102:获取Matlab与Java混合编程的负荷削减算法包。
Matlab具有较好的数值计算功能,通常负荷削减的计算程序都是由Matlab编写的。Java是一种跨平台,适合于分布式计算环境的面向对象的编程语言,但在数值分析和处理方面的能力并不突出。Matlab和Java混合编程可以实现两种语言的优势互补。
步骤S103:在各分区内分别调用负荷削减算法包计算当前分区内的支路节点开断数据,获取支路节点负荷削减量。
上述负荷削减并行计算方法,通过将读取的支路节点开关数据均分到数据并行平台的多个分区中,在各分区内分别调用Matlab与Java混合编程的负荷削减算法包,并行计算当前分区内的支路节点开断数据,获取支路节点负荷削减量,大大降低了负荷削减算法并行化开发的难度以及复杂度,当新加入一个负荷削减的算法,只需要对新算法进行Matlab与Java混合编程得到负荷削减算法包,就可以对该算法并行化,具有较好的普适性。
可选的,读取支路节点开断数据的步骤可以是从分布式文件系统读取支路节点开断数据,或着是从本地读取支路节点开断情况。
在一个优选实施例中,计算引擎可以使用Spark计算引擎。Spark平台使用了弹性分布数据集(Resilient Distributed Dataset,RDD),为基于内存计算和DAG(DirectedAcyclic Graph,有向无环图)的优化,在Spark平台上可以实施大规模实时并行的电气计算。
融合集成HDFS、Matlab Runtime和Spark,构建数据并行计算平台。HDFS存储负荷削减并行计算数据的输入以及输出。Matlab Runtime提供Matlab计算环境,Spark提供分布式并行计算环境。其中,Matlab Runtime和Spark的整合需要通过管理界面的配置文件在yarn-site.xml的NodeManager高级配置代码段(安全阀)配置Matlab的读写目录。
具体的,从HDFS或本地读取支路节点开断数据后,在Spark上继承org.apache.spark.Partitioner这个类来实现自定义分区功能,将读取到的数据均分到每个spark中的worker上,确保每个worker的计算能力相同,完成负荷削减并行计算。
在本实施例中,采用一定的运算机制把计算任务分担到多台机器上,让每台机器都承担一部分的计算和数据存储在内存中的,实现内存分布式计算框架。使用内存来计算,使用弹性分布数据集存储数据,减少了磁盘I/O的消耗,实现轻量级快速处理,而且适用于多次迭代的计算模型,能够高效的完成电网运行风险评估及其辅助决策系统中的负荷削减计算任务,而且不必对分布式计算过程中各种问题和计算异常进行控制。
在其中一个实施例中,获取Matlab与Java混合编程的负荷削减算法包,可以包括以下步骤:
将Matlab负荷削减串行算法封装为Java类,发布为jar包;
对jar包进行测试,若测试成功,将jar包作为负荷削减算法包;若测试失败,则转至将Matlab负荷削减串行算法封装为Java类,发布为jar包的步骤。
具体的,负荷削减的计算程序通常是由Matlab程序编写的,利用Matlab软件将Matlab负荷削减串行算法封装为Java类,发布为一个完整的jar包,对这个jar包进行本地测试,如果测试成功,该jar包可以作为负荷削减算法包,如果测试失败,则对Matlab负荷削减串行算法重新封装、发布jar包以及测试。
在本实施例中,通过对Matlab负荷削减串行算法进行Matlab与Java混合编程,把不同阶段的算法和数据处理交给具有优势的编程语言,大大降低了负荷削减算法并行化开发的难度以及复杂度。在后续使用过程中,当新加入一个负荷削减的算法,只需要对新算法进行Matlab与Java混合编程得到负荷削减算法包,就可以对该算法并行化,具有较好的普适性。
在其中一个实施例中,对jar包进行测试的步骤可以包括以下步骤:
记录Matlab负荷削减串行算法的输入数据的值和类以及输出数据的值和类型;
根据输入数据的值和类在Java中构建与Matlab相对应的数据结构;
导入jar包,根据jar包获取Java程序;
将数据结构传入Java程序,获取数据结构的执行结果,对比数据结构的执行结果与Matlab负荷削减串行算法的输出数据,若执行结果的值和类型与输出数据的值和类型相同,测试成功。
在本实施例中,通过对jar包进行本地测试的方法,确保分区调用的负荷削减算法包能够正确使用。减少错误出现概率,提高负荷削减并行计算的效率。
具体的,记录Matlab负荷削减串行算法的输入数据的值和类以及输出数据的值和类型,导入Matlab软件提供的“javabuilder.jar”文件,针对Matlab负荷削减串行算法的输入数据类型,在Java中编写和Matlab相对应的数据结构。编写Java程序,对jar包中的Matlab负荷削减串行算法的Java类创建一个对象,传入编写的数据结构,运行Java程序,得到执行结果。将执行结果与Matlab负荷削减串行算法的输出数据进行对比,如果执行结果的值和类型和输出数据的值和类型一样,则本地测试成功,如果执行结果的值和类型和输出数据的值和类型不一样,则本地测试失败。
在其中一个实施例中,在各分区内分别调用负荷削减算法包计算当前分区内的支路节点开断数据,获取支路节点负荷削减量,可以包括以下步骤:
导入负荷削减算法包至计算引擎;
在计算引擎中根据负荷削减算法包获取目标算子;
通过目标算子对支路节点开断数据进行并行计算。
在本实施例中,可以将负荷削减算法包导入至计算引擎,进而生成目标算子,目标算子可以对支路节点开断数据直接进行计算,实现负荷削减算法的应用,达到并行计算的目的。
具体的,将读取到数据均分到各个分区内以后,每个分区的计算引擎导入负荷削减算法包,编写程序获取目标算子,对均分到该分区上的支路节点开断数据进行计算,所获得的计算结果为支路节点负荷削减量。
以计算引擎为Spark为例进行说明,将读取到的数据均分到每个spark中的worker上以后,启动worker的每一个分区上mapPartitions算子,通过Java代码或者Scala代码导入负荷削减算法包,使用Scala语言编写程序获得目标算子,对均分到该分区上的支路节点开断数据进行计算。其中Scala开发代码精简、执行效率高,同时Scala语言是无缝衔接Java的。
在其中一个实施例中,通过目标算子对支路节点开断数据进行并行计算步骤之后,还包括以下步骤:
若分区内的并行计算结果是下一阶段计算的参数,则缓存本阶段并行计算结果,转至导入负荷削减算法包至计算引擎的步骤,进行下一阶段计算。
在本实施例中,对于一个大型的电力辅助系统的负荷削减计算常常具有几十万个任务、每个任务有几十次迭代,这几十万个任务频繁的消耗I/O,可以将计算过程分为多个阶段的,在每一阶段分区计算完成后,将该阶段的计算结果进行缓存,并且对该计算结果进行下一阶段的计算。
以计算引擎为Spark为例进行说明,在每一阶段worker上的分区计算完成后,将该阶段计算结果缓存为RDD,在内存中存储数据,需要持久化时才到磁盘,减少了磁盘I/O的消耗,实现轻量级快速处理,提高了负荷削减计算的速度。
在其中一个实施例中,通过目标算子对支路节点开断数据进行并行计算之后,还包括以下步骤:
自定义序列化目标算子,压缩各分区内的支路节点负荷削减量;收集各分区内的支路节点负荷削减量的压缩数据。
Matlab给Java提供的类型本身是不支持序列化的,所以需要自定义序列化,具体的,可以使用Kyro算法,Kryo是一个快速高效的Java序列化框架,可以快速序列化以及反序列化。对jar包创建的目标算子自定义序列化,在需要再次使用同样的目标算子时,可以反自定义序列化得到目标算子,无需再次调用负荷削减算法包,加快负荷削减并行计算的速度,提高负荷削减并行计算效率。各分区内的通过并行计算得到的支路节点负荷削减量中有大量的矩阵,通过压缩可以节省空间和增加汇聚结果的效率,其中,压缩算法可以采用Snappy压缩算法,Snappy压缩算法提供高速压缩速度和合理的压缩率。
根据上述负荷削减并行计算方法,本发明还提供一种负荷削减并行计算装置,以下就本发明的负荷削减并行计算装置的实施例进行详细说明。
参见图2所示,为本发明一个实施例的负荷削减并行计算装置的结构示意图。该实施例中的负荷削减并行计算装置包括:
数据读取模块201,用于读取支路节点开断数据,将支路节点开断数据均分到数据并行计算平台的多个分区中,其中,数据并行计算平台包括分布式文件系统、MatlabRuntime以及计算引擎。
算法包获取模块202,用于获取Matlab与Java混合编程的负荷削减算法包。
负荷削减量计算模块203,用于在各分区内分别调用负荷削减算法包计算当前分区内的支路节点开断数据,获取支路节点负荷削减量。
可选的,读取支路节点开断数据的步骤可以是从分布式文件系统读取支路节点开断数据,或着是从本地读取支路节点开断情况。
在一个优选实施例中,计算引擎可以使用Spark计算引擎。Spark平台使用了弹性分布数据集(Resilient Distributed Dataset,RDD),为基于内存计算和DAG(DirectedAcyclic Graph,有向无环图)的优化,在Spark平台上可以实施大规模实时并行的电气计算。
融合集成HDFS、Matlab Runtime和Spark,构建数据并行计算平台。HDFS存储负荷削减并行计算数据的输入以及输出。Matlab Runtime提供Matlab计算环境,Spark提供分布式并行计算环境。其中,Matlab Runtime和Spark的整合需要通过管理界面的配置文件在yarn-site.xml的NodeManager高级配置代码段(安全阀)配置Matlab的读写目录。
具体的,从HDFS或本地读取支路节点开断数据后,在Spark上继承org.apache.spark.Partitioner这个类来实现自定义分区功能,将读取到的数据均分到每个spark中的worker上,确保每个worker的计算能力相同,完成负荷削减并行计算。
在其中一个实施例中,算法包获取模块202将Matlab负荷削减串行算法封装为Java类,发布为jar包;对jar包进行测试,若测试成功,将jar包作为负荷削减算法包;若测试失败,重新将Matlab负荷削减串行算法封装为Java类,发布为jar包。
具体的,负荷削减的计算程序通常是由Matlab程序编写的,利用Matlab软件将Matlab负荷削减串行算法封装为Java类,发布为一个完整的jar包,对这个jar包进行本地测试,如果测试成功,该jar包可以作为负荷削减算法包,如果测试失败,则对Matlab负荷削减串行算法重新封装、发布jar包以及测试。
在本实施例中,算法包获取模块202通过对Matlab负荷削减串行算法进行Matlab与Java混合编程,把不同阶段的算法和数据处理交给具有优势的编程语言,大大降低了负荷削减算法并行化开发的难度以及复杂度。在后续使用过程中,当新加入一个负荷削减的算法,只需要对新算法进行Matlab与Java混合编程得到负荷削减算法包,就可以对该算法并行化,具有较好的普适性。
在其中一个实施例中,算法包获取模块202记录Matlab负荷削减串行算法的输入数据的值和类以及输出数据的值和类型;根据输入数据的值和类在Java中构建与Matlab相对应的数据结构;导入jar包,根据jar包获取Java程序;将数据结构传入Java程序,获取数据结构的执行结果,对比数据结构的执行结果与Matlab负荷削减串行算法的输出数据,若执行结果的值和类型与输出数据的值和类型相同,测试成功。
具体的,算法包获取模块202记录Matlab负荷削减串行算法的输入数据的值和类以及输出数据的值和类型,导入Matlab软件提供的“javabuilder.jar”文件,针对Matlab负荷削减串行算法的输入数据类型,在Java中编写和Matlab相对应的数据结构。编写Java程序,对jar包中的Matlab负荷削减串行算法的Java类创建一个对象,传入编写的数据结构,运行Java程序,得到执行结果。将执行结果与Matlab负荷削减串行算法的输出数据进行对比,如果执行结果的值和类型和输出数据的值和类型一样,则本地测试成功,如果执行结果的值和类型和输出数据的值和类型不一样,则本地测试失败。
在本实施例中,算法包获取模块202通过对jar包进行本地测试的方法,确保分区调用的负荷削减算法包能够正确使用。减少错误出现概率,提高负荷削减并行计算的效率。
在其中一个实施例中,负荷削减量计算模块203导入负荷削减算法包至计算引擎;在计算引擎中根据负荷削减算法包获取目标算子;通过目标算子对支路节点开断数据进行并行计算。
在本实施例中,负荷削减量计算模块203可以将负荷削减算法包导入至计算引擎,进而生成目标算子,目标算子可以对支路节点开断数据直接进行计算,实现负荷削减算法的应用,达到并行计算的目的。
具体的,负荷削减量计算模块203将数据读取模块201读取到数据均分到各个分区内以后,每个分区的计算引擎导入负荷削减算法包,编写程序获取目标算子,对均分到该分区上的支路节点开断数据进行计算,所获得的计算结果为支路节点负荷削减量。
以计算引擎为Spark为例进行说明,负荷削减量计算模块203将数据读取模块201读取到的数据均分到每个spark中的worker上以后,启动worker的每一个分区上mapPartitions算子,通过Java代码或者Scala代码导入负荷削减算法包,使用Scala语言编写程序获得目标算子,对均分到该分区上的支路节点开断数据进行计算。其中Scala开发代码精简、执行效率高,同时Scala语言是无缝衔接Java的。
在其中一个实施例中,负荷削减量计算模块203在分区内的并行计算结果是下一阶段计算的参数时,缓存本阶段并行计算结果,导入负荷削减算法包至计算引擎进行下一阶段计算。
对于一个大型的电力辅助系统的负荷削减计算常常具有几十万个任务、每个任务有几十次迭代,这几十万个任务频繁的消耗I/O。在本实施例中,负荷削减量计算模块203可以将计算过程分为多个阶段的,在每一阶段分区计算完成后,将该阶段的计算结果进行缓存,并且对该计算结果进行下一阶段的计算。
以计算引擎为Spark为例进行说明,在每一阶段worker上的分区计算完成后,将该阶段计算结果缓存为RDD,在内存中存储数据,需要持久化时才到磁盘,减少了磁盘I/O的消耗,实现轻量级快速处理,提高了负荷削减计算的速度。
在其中一个实施例中,负荷削减量计算模块203自定义序列化目标算子,压缩各分区内的支路节点负荷削减量;收集各分区内的支路节点负荷削减量的压缩数据。
Matlab给Java提供的类型本身是不支持序列化的,所以需要自定义序列化,具体的,负荷削减量计算模块203可以使用Kyro算法,Kryo是一个快速高效的Java序列化框架,可以快速序列化以及反序列化。对jar包创建的目标算子自定义序列化,在需要再次使用同样的目标算子时,可以反自定义序列化得到目标算子,无需再次调用负荷削减算法包,加快负荷削减并行计算的速度,提高负荷削减并行计算效率。各分区内的通过并行计算得到的支路节点负荷削减量中有大量的矩阵,通过压缩可以节省空间和增加汇聚结果的效率,其中,压缩算法可以采用Snappy压缩算法,Snappy压缩算法提供高速压缩速度和合理的压缩率。
上述负荷削减并行计算装置,数据读取模块读取的支路节点开关数据均分到数据并行平台的多个分区中,负荷削减量计算模块在各分区内调用通过算法包获取模块获取的Matlab与Java混合编程的负荷削减算法包,并行计算当前分区内的支路节点开断数据,获取支路节点负荷削减量,大大降低了负荷削减算法并行化开发的难度以及复杂度,当新加入一个负荷削减的算法,只需要对新算法进行Matlab与Java混合编程得到负荷削减算法包,就可以对该算法并行化,具有较好的普适性。
本发明的负荷削减并行计算装置与本发明的负荷削减并行计算方法一一对应,在上述负荷削减并行计算方法的实施例阐述的技术特征及其有益效果均适用于负荷削减并行计算装置的实施例中。
本发明还提供一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述任一实施例的负荷削减并行计算方法的步骤。
该计算机设备中的处理器所执行的方法与上述实施例中负荷削减并行计算方法相同,此处不再赘述。
本发明一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例的负荷削减并行计算方法的步骤。
该计算机可读存储介质所执行的方法与上述实施例中的负荷削减并行计算方法相同,此处不再赘述。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种负荷削减并行计算方法,其特征在于,包括步骤:
读取支路节点开断数据,将所述支路节点开断数据均分到数据并行计算平台的多个分区中,其中,所述数据并行计算平台包括分布式文件系统、Matlab Runtime以及计算引擎;
获取Matlab与Java混合编程的负荷削减算法包;
在各所述分区内分别调用所述负荷削减算法包,计算当前分区内的支路节点开断数据,获取支路节点负荷削减量。
2.根据权利要求1所述的负荷削减并行计算方法,其特征在于,所述读取支路节点开断数据的步骤包括以下步骤:
从所述分布式文件系统或本地读取支路节点开断数据。
3.根据权利要求1所述的负荷削减并行计算方法,其特征在于,所述获取Matlab与Java混合编程的负荷削减算法包的步骤包括以下步骤:
将Matlab负荷削减串行算法封装为Java类,发布为jar包;
对所述jar包进行测试,若测试成功,将所述jar包作为负荷削减算法包;
若测试失败,则转至将Matlab负荷削减串行算法封装为Java类,发布为jar包的步骤。
4.根据权利要求3所述的负荷削减并行计算方法,其特征在于,所述对jar包进行测试的步骤包括以下步骤:
记录Matlab负荷削减串行算法的输入数据的值和类以及输出数据的值和类型;
根据所述输入数据的值和类,在Java中构建与Matlab相对应的数据结构;
导入所述jar包,根据所述jar包获取Java程序;
将所述数据结构传入所述Java程序,获取所述数据结构的执行结果,对比所述数据结构的执行结果与Matlab负荷削减串行算法的输出数据,若所述执行结果的值和类型与所述输出数据的值和类型相同,测试成功。
5.根据权利要求1所述的负荷削减并行计算方法,其特征在于,所述在各所述分区内分别调用所述负荷削减算法包,计算当前分区内的支路节点开断数据的步骤包括以下步骤:
导入负荷削减算法包至所述计算引擎;
在所述计算引擎中根据所述负荷削减算法包获取目标算子;
通过所述目标算子对所述支路节点开断数据进行并行计算。
6.根据权利要求5所述的负荷削减并行计算方法,其特征在于,所述通过目标算子对所述支路节点开断数据进行并行计算步骤之后,还包括:
若所述分区内的并行计算结果是下一阶段计算的参数,则缓存本阶段并行计算结果,转至导入负荷削减算法包至所述计算引擎的步骤,进行下一阶段计算。
7.根据权利要求5的负荷削减并行计算方法,其特征在于,所述通过所述目标算子对所述支路节点开断数据进行并行计算之后,还包括以下步骤:
自定义序列化所述目标算子,压缩各所述分区内的支路节点负荷削减量;
收集各所述分区内的支路节点负荷削减量的压缩数据。
8.一种负荷削减并行计算装置,其特征在于,包括:
数据读取模块,用于读取支路节点开断数据,将所述支路节点开断数据均分到数据并行计算平台的多个分区中,其中,所述数据并行计算平台包括分布式文件系统、MatlabRuntime以及计算引擎;
算法包获取模块,用于获取Matlab与Java混合编程的负荷削减算法包;
负荷削减量计算模块,用于在各所述分区内分别调用所述负荷削减算法包计算当前分区内的支路节点开断数据,获取支路节点负荷削减量。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述负荷削减并行计算方法的步骤。
10.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述负荷削减并行计算方法的步骤。
CN201710806361.9A 2017-09-08 2017-09-08 负荷削减并行计算方法及装置 Active CN107679701B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710806361.9A CN107679701B (zh) 2017-09-08 2017-09-08 负荷削减并行计算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710806361.9A CN107679701B (zh) 2017-09-08 2017-09-08 负荷削减并行计算方法及装置

Publications (2)

Publication Number Publication Date
CN107679701A true CN107679701A (zh) 2018-02-09
CN107679701B CN107679701B (zh) 2021-02-05

Family

ID=61134757

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710806361.9A Active CN107679701B (zh) 2017-09-08 2017-09-08 负荷削减并行计算方法及装置

Country Status (1)

Country Link
CN (1) CN107679701B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536645A (zh) * 2018-04-04 2018-09-14 北京科东电力控制系统有限责任公司 用于电力市场交易业务的内核并行计算方法及装置
CN111861860A (zh) * 2020-07-23 2020-10-30 哈尔滨工业大学(威海) 一种面向ai智能soc芯片的图像加速处理系统
CN114924772A (zh) * 2022-07-15 2022-08-19 浙江大华技术股份有限公司 一种算法包的更新方法及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436534A (zh) * 2012-01-13 2012-05-02 浙江省电力试验研究院 一种电力系统仿真方法
US20130066924A1 (en) * 2008-12-23 2013-03-14 Honeywell International Inc. Method and apparatus for utilizing matlab functionality in java-enabled environment
CN106445676A (zh) * 2015-08-05 2017-02-22 杭州海康威视系统技术有限公司 一种分布式数据计算的任务分配方法和任务分配装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130066924A1 (en) * 2008-12-23 2013-03-14 Honeywell International Inc. Method and apparatus for utilizing matlab functionality in java-enabled environment
CN102436534A (zh) * 2012-01-13 2012-05-02 浙江省电力试验研究院 一种电力系统仿真方法
CN106445676A (zh) * 2015-08-05 2017-02-22 杭州海康威视系统技术有限公司 一种分布式数据计算的任务分配方法和任务分配装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GNPOWEL: "hadoop调用matlab程序", 《百度文档》 *
周小娟: "Java-Matlab 混合编程的研究", 《电子设计工程》 *
陈云: "分布式电力大数据计算分析平台设计与实现", 《中国优秀硕士学位论文全文数据库》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536645A (zh) * 2018-04-04 2018-09-14 北京科东电力控制系统有限责任公司 用于电力市场交易业务的内核并行计算方法及装置
CN108536645B (zh) * 2018-04-04 2021-10-01 北京科东电力控制系统有限责任公司 用于电力市场交易业务的内核并行计算方法及装置
CN111861860A (zh) * 2020-07-23 2020-10-30 哈尔滨工业大学(威海) 一种面向ai智能soc芯片的图像加速处理系统
CN111861860B (zh) * 2020-07-23 2023-04-21 哈尔滨工业大学(威海) 一种面向ai智能soc芯片的图像加速处理系统
CN114924772A (zh) * 2022-07-15 2022-08-19 浙江大华技术股份有限公司 一种算法包的更新方法及设备
CN114924772B (zh) * 2022-07-15 2022-10-25 浙江大华技术股份有限公司 一种算法包的更新方法及设备

Also Published As

Publication number Publication date
CN107679701B (zh) 2021-02-05

Similar Documents

Publication Publication Date Title
Nguyen et al. Studying the impact of dependency network measures on software quality
CN105446799A (zh) 一种计算机系统中进行规则管理的方法及系统
Roychoudhury et al. Efficient simulation of hybrid systems: A hybrid bond graph approach
CN107679701A (zh) 负荷削减并行计算方法及装置
US20130282194A1 (en) Method for microgrid controls development
CN105205154A (zh) 数据迁移方法以及装置
CN106878363A (zh) 一种信息处理方法、装置及系统
CN112819258A (zh) 银行网点到店客户数量预测方法及装置
Zhang et al. Incremental network configuration verification
Poltronieri et al. Chaostwin: A chaos engineering and digital twin approach for the design of resilient it services
CN110764785B (zh) 基于开源组件的电力行业云平台工具链及云平台运维方法
Moutai et al. A fog-based approach for distributed cloud testing: a VR-assist rental testing case study
CN106295808A (zh) 飞机嵌入式实时诊断推理算法试验方法
Wang et al. Pipeline provenance for cloud‐based big data analytics
Zhang et al. Test case prioritization for regression testing based on function call path
CN115529315A (zh) 一种云边协同系统
CN114492052A (zh) 一种全局流级别网络仿真方法、系统及装置
CN114492846A (zh) 基于可信执行环境的跨域联邦学习方法及系统
CN107256158A (zh) 电力系统负荷削减量的检测方法和系统
CN115455426A (zh) 基于漏洞分析模型开发的业务错误分析方法及云端ai系统
Dindokar et al. Elastic partition placement for non-stationary graph algorithms
Kamri et al. Machine Learning Approach for Smart Self-diagnosing Autonomic Computing Systems
Legowo et al. Data Management 4.0 for Financial Service Authority (FSA): A Case Study in Indonesia
KR101863966B1 (ko) 컨설팅 서비스 제공 시스템 및 방법
CN105760291B (zh) 一种回归测试方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231027

Address after: 510620, No. two, No. 2, Tianhe South Road, Guangzhou, Guangdong, Tianhe District

Patentee after: Guangzhou Power Supply Bureau of Guangdong Power Grid Co.,Ltd.

Patentee after: SHENZHEN INSTITUTES OF ADVANCED TECHNOLOGY CHINESE ACADEMY OF SCIENCES

Address before: 510620, No. two, No. 2, Tianhe South Road, Guangzhou, Guangdong, Tianhe District

Patentee before: GUANGZHOU POWER SUPPLY Co.,Ltd.

Patentee before: SHENZHEN INSTITUTES OF ADVANCED TECHNOLOGY CHINESE ACADEMY OF SCIENCES