CN104504257A - 一种基于双重并行计算的在线Prony分析方法 - Google Patents

一种基于双重并行计算的在线Prony分析方法 Download PDF

Info

Publication number
CN104504257A
CN104504257A CN201410773382.1A CN201410773382A CN104504257A CN 104504257 A CN104504257 A CN 104504257A CN 201410773382 A CN201410773382 A CN 201410773382A CN 104504257 A CN104504257 A CN 104504257A
Authority
CN
China
Prior art keywords
parallel
node
task
computing
tasks
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
CN201410773382.1A
Other languages
English (en)
Other versions
CN104504257B (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.)
State Grid Corp of China SGCC
Economic and Technological Research Institute of State Grid Hubei Electric Power Co Ltd
Original Assignee
State Grid Corp of China SGCC
Economic and Technological Research Institute of State Grid Hubei Electric Power 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 State Grid Corp of China SGCC, Economic and Technological Research Institute of State Grid Hubei Electric Power Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201410773382.1A priority Critical patent/CN104504257B/zh
Publication of CN104504257A publication Critical patent/CN104504257A/zh
Application granted granted Critical
Publication of CN104504257B publication Critical patent/CN104504257B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种基于双重并行计算的在线Prony分析方法,涉及电力系统调度自动化领域和计算机高性能计算领域。该方法针对大电网发生低频振荡情况下,振荡参数辨识采用传统基于串行Prony算法资源利用率低、计算速度慢的弊端,提出了多计算节点的分布式并行,有效地进行任务调度和负载均衡,极大地降低系统的响应时间。首次实现了Prony数学模型上的并行化设计,采用多线程并行计算技术实现了Prony的多线程并行计算。本发明能够同步实现对电网多支路、多个电气量的振荡幅值、频率、初相位和衰减因子等参数的在线辨识,有效提高了计算分析速度,能够更好的适应大电网同步在线计算的要求。

Description

一种基于双重并行计算的在线Prony分析方法
技术领域
本发明涉及电力系统调度自动化领域和计算机高性能计算领域,更具体是提供一种基于双重并行计算的在线Prony分析方法,在电网发生低频振荡过程中,实现对电网多支路、多个电气量的同步在线参数辨识。
背景技术
电力系统在扰动下会发生电机转子间的相对摇摆并在缺乏阻尼的情况下引起持续振荡,振荡频率范围在0.1~2.5Hz,故称为低频振荡。低频振荡问题属于小扰动稳定范畴,随着互联电力系统的规模扩大、远距离重负荷输电系统的投入运行、快速自动励磁调节器和快速励磁系统的应用,国内外不少电力系统出现了低频振荡问题,低频振荡是影响电力系统的安全稳定运行的重要因素之一。
对于由外界持续周期性功率扰动引起的系统低频振荡即强迫功率振荡,最有效的措施是快速定位并切除扰动源,为此专利《一种区域互联电网强迫功率振荡扰动源位置判断方法》(专利号:ZL201110390520.4)提出了“能流方向因子”的物理概念,采用Prony分析方法对支路的有功功率、起始节点频率数据进行参数辨识,求解各支路的能流方向因子,通过能流方向因子确定支路势能的大小及流动方向,并据此判断扰动源位置。
广域测量系统(WAMS)由基于全球定位系统(GPS)的同步相量测量单元(PMU)及其通信系统组成,能够在广域电力系统中同步、高速采集机组和运行设备的有功功率、无功功率、电压、电流、相角以及重要的开关信号,是一种能对电力系统动态过程进行监测和分析的工具。广域测量系统为电网的频振荡的监测、振荡事件分析和振荡预防及抑制等几个方面提供了新的技术手段。
Prony算法是一种能够根据采样值直接估算出信号频率、衰减、幅值和初相位的分析方法。它针对等间距采样点,假设模型是由一系列的具有任意振幅、相位、频率和衰减因子的指数函数的线性组合。
Prony算法的数学模型
离散时间的函数形式:
X ^ ( n ) = Σ i = 1 k b i z i n , n = 0,1,2 . . . , N - 1 - - - ( 1 )
(n)为X(n)的近似,式中bi和zi假定为复数,k为迭代次数,N为采样点数即:
b i = A i exp ( j , θ i ) z i = exp [ ( α i + j 2 π f i ) Δt ] - - - ( 2 )
式中:Ai为振幅,θi为相位,αi为衰减因子,fi为频率,Δt为采样间隔。
Prony方法的关键是认识到(n)的拟合是一常系数线性差分方程的齐次解。即:
X ^ ( n ) = - Σ i = 0 k α i X ^ ( n - i ) , n = k , k + 1 , . . . . . . N - 1 ; - - - ( 3 )
亦有:
X(n)=-[α1X(n-1)+α2X(n-2)+...+αkX(n-k)]    (4)
其中:n=k,k+1,......N-1
计算流程
根据上式中的数学思想,Prony计算的处理过程如下:
1、最小二乘计算
式(4)是一个差分方程,对参数αi进行最小二乘估计,使误差平均和为最小。为了简化书写,用xn=x(n)来表示第n个采样值。为保证计算精度,取迭代次数k=N/2,可得
N-k个方程如下:
X k - 1 X k - 2 . . . X 1 X 0 X k X k - 1 . . . X 2 X 1 . . . . . . . . . . . . X N - 2 X N - 3 . . . X N - k X N - 1 - k · α 1 α 2 . . . α k = - X k X k + 1 . . . X N - 1 - - - ( 5 )
简写为:H·α=-h    (6)
由公式(5)可知总平方误差W1为:
W 1 = Σ m = k m = N - 1 ( x m + a 1 x m - 1 + . . . + a i x m - i + . . . . . . a k x m - k ) 2 - - - ( 7 )
由W1分别对α1、α2、……、αk求导,从而得出Prony的法方程:
R 1,1 R 1,2 R 1,3 . . . R 1 , k R 2,1 R 2,2 R 2,3 . . . R 2 , k R 3,1 R 3,2 R 3,3 . . . R 3 , k . . . . . . . . . . . . . . . R k , 1 R k , 2 R k , 3 . . . R k , k · α 1 α 2 α 3 . . . α k = r 1 r 2 r 3 . . . r k - - - ( 8 )
其中式(8)中的各元素计算如下:
R i , j = Σ m = k m = N - 1 x m - j x m - i ; i , j = 1,2 , . . . . . . , k ; - - - ( 9 )
r i = - Σ m = k m = N - 1 x m x m - i ; - - - ( 10 )
2、求解线性方程组
由式(8)(9)(10)的计算结果,利用高斯约旦消元法求解线性方程组。得到
α=R-1·r;α=(α12,...,αk)T;    (11)
3、解高次方程根
式(4)转换为
x(n)+α1x(n-1)+α2x(n-2)+...+αkx(n-k)=0    (12)
将式(1)代入式(12)得到特征多项式如下:
zk1zk-12zk-2+...+αk=0    (12)
解高次方程根的过程可以转化为求解如下矩阵的特征值过程:
- α 1 - α 2 . . . - α k - 1 - α k 1 0 . . . 0 0 . . . . . . . . . . . . . . . 0 0 1 0 0 0 0 0 1 0 - - - ( 13 )
求解矩阵特征值得到z=(z1、z2、……、zk)T。.
4、矩阵乘法及求解方程组
这部分是Prony算法中最耗时的计算过程,为了确定待定系数b1、b2、…、bk,将z代入式(1),得到方程组如下:
1 1 1 . . . 1 z 1 z 2 z 3 . . . z k z 1 2 z 2 2 z 3 2 . . . z k 2 . . . . . . . . . . . . . . . z 1 N - 1 z 2 N - 1 z 3 N - 1 . . . z k N - 1 · b 1 b 2 b 3 . . . b k = x 1 x 2 x 3 . . . x N - 1 - - - ( 14 )
式(14)左右两侧矩阵和左侧矩阵的转置矩阵做乘法运算,然后进行高斯消元法求出b:
b=(b1、b2、...、bk)T
5、结果输出
根据以上结果可以算出幅值Ai、相位θi、频率fi和衰减因子αi
A i = | b i | θ i = arctan ( lm ( b i ) / Re ( b i ) ) / 2 πΔt α i = lm ( z i ) / Δt f i = arctan ( lm ( z i ) / Re ( z i ) ) / 2 πΔt i = 1,2 , . . . , k ; - - - ( 15 )
Prony的并行化:
本发明利用的单机并行化工具是OpenMP,运用OpenMP的两种并行方式:隐式任务并行和显式任务并行进行Prony的并行化改造。
隐式任务并行:隐式任务是由OpenMP提供的for和Section等编译指导语句形成的隐式并行区域生成的任务,隐式任务并行是对隐式任务指定调度方式、任务划分方式和数据控制方式并并行执行。隐式任务并行只需指定需要并行的部分,即可由OpenMP自动完成并行化,并在每次计算完成后自动汇总结果。隐式任务并行主要适用于结构规则的程序。这一类程序中,无数据相关性且划分后子任务的大小差异不大,如规则的for循环等。对此类程序,隐式任务并行能达到很高的效率。
显式任务并行:显式任务是使用OpenMP的task指令指定的任务。task指令定义了与任务及其数据环境关联的代码。显式任务并行中,只要线程遇到任务构造(指定为task的部分),就会生成新任务,并将新任务放置到OpenMP的任务共享队列(work-sharing)中。work-sharing队列是OpenMP内部队列的实现方式,各个核心(线程)共享这个队列,并依次从任务队列中取任务来并行计算。显示并行下,需要在每次并行计算完成后显式汇总结果。显式任务并行主要适用于不规则程序的并行化。在不规则程序中,数据可能存在相关性,划分得到的子任务差异可能较大,此时适宜采用显式任务并行进行程序并行化设计。
静态调度:OpenMP中使用schedule调度子句时,schedule(static,size)指定的调度方式,当编译指导语句没有带schedule调度子句时,大部分系统中默认采用static调度方式。这种调度方式非常简单,静态调度可以使用参数size也可以不使用参数size,有n次循环迭代,t个线程时,使用参数size分配给每个线程size次连续的迭代计算,不使用size分配给每个线程n/t次连续的迭代计算。
动态调度:OpenMP中使用schedule调度子句时,schedule(dynamic,size)指定的调度方式,动态调度依赖于运行时的状态动态确定线程所执行的迭代,由于线程启动和执行完的时间不确定,所以迭代被分配到哪个线程是无法事先知道的。动态调度可以使用参数size也可以不使用参数size,不指定size参数时是将迭代逐个地分配到各个线程,使用size参数时,每次分配给线程的迭代次数为指定的size次。
伪共享现象:伪共享是指几个在逻辑上并不包含在同一个内存单元内的数据,由于被CPU加载在同一个缓存行当中,当在多线程环境下,被不同的核心执行,导致缓存行失效而引起的大量的缓存命中率降低的现象。
在专利《一种区域互联电网强迫功率振荡扰动源位置判断方法》(专利号:ZL201110390520.4)所述方法中,计算量最大的步骤在于通过Prony方法实现能流方向因子的参数辨识。由于能流方向因子计算需要对电网中的多条振荡支路的有功功率和频率分量同时进行Prony参数辨识计算,当前主要是基于串行Prony计算方法,随着电网规模的扩大采用传统的串行计算方法计算速度不能满足在线分析的要求,需要采用并行计算。其次,由于Prony算法的上下文关联性较高,无法在结构上将计算任务划分并行,属于不规则的并行结构,因此在并行计算中需要基于Prony算法的数学模型进一步优化其并行结构,提高算法的并行效率,为此提出以下发明方法。
发明内容
本发明提供了一种基于双重并行计算的在线Prony分析方法,该方法针对大电网发生低频振荡情况下,振荡参数辨识采用传统基于串行Prony算法资源利用率低、计算速度慢的弊端,提出了Prony的双重并行的计算方法,该方法能够实现多机上分布式并行和单机多核并行计算。双重并行计算提高了Prony方法的计算效率,能够同步实现对电网多支路、多个电气量的振荡幅值、频率、初相位和衰减因子等参数的在线辨识,为大电网支路能流方向因子计算提供了有效的参数在线辨识方法。
为了实现上述目的,本发明首先构建了由多机构成的分布式计算平台。该分布式计算平台中的节点类型分为两种:管理节点Master和计算节点Slave。Master节点包括三项功能:计算时间检测,即在任务分配前对当前分布式计算环境中各节点的计算时间进行校验;节点状态监测,即对Slave的当前状态进行监控,防止节点因意外宕机;负载均衡,Master动态调整节点任务量,使每个节点的任务量大致相等。Slave节点从Master节点接收任务并完成计算,将结果回送给Master节点并等待下一个任务的到来。
其次,本发明针对多线程并行计算模式完成了Prony数学模型的并行化,实现了单节点内多核计算平台上的Prony并行计算。本发明将Prony算法的最小二乘计算、求解线性方程组、解高次方程根、矩阵乘法及求解方程组等各步骤分别进行并行化处理,使核间任务达到负载均衡,提高计算节点资源利用率和计算效率。
基于上述设计,最终实现了一种基于双重并行计算的在线Prony分析方法。
一种基于双重并行计算的在线Prony分析方法,该方法包含下列步骤:
(a)在由I条支路和J个节点组成的交流互联电网中,各支路和所有节点均装设同步测量单元PMU;计算平台由一个客户端、一个管理节点和C个计算节点组成的机群构成,其中Ci表示第i个计算节点,Pi为Ci的核数,Cij表示Ci中的第j个核,i=1,2,…,C,j=1,2,3,…,Pi
(b)当电网中发生低频振荡时,将PMU采集的M条支路E个电气量包括:有功功率ΔP、频率Δω,取同一时间段采样数据为一组发送给计算平台进行Prony分析,则需要分析的任务数为N=EM,M=1,2,…,I;每一类电气量中包含Len个采样数据,500≤Len≤3000;
(c)多机并行计算过程,首先,进行计算节点能力测试,即客户端将接收到的N个任务发送给管理节点,管理节点从N个任务中任意选取一个任务,同时发送给Ci节点上进行计算,i=1,2,…,C,记录每个节点对该任务的执行时间,节点Ci的执行时间记为Ti,根据第i节点的执行时间与C个节点总执行时间的比例对各计算节点的计算能力进行判别,根据计算能力的强弱对各计算节点进行排序,作为任务分配的依据。然后,将N个计算任务分配到各计算节点开展多机并行计算,节点Ci分配到的任务数为Ni
T = Σ i = 1 c T i
N i = [ T i T N ] , i = 1,2 , . . . , C
将Ni个任务发送到计算节点Ci上计算,未能整除余下的任务根据计算能力排序依次分配到各计算节点,由Ci进行单节点多线程并行计算;
(d)单节点多核并行计算过程:单节点多线程的并行化采用OpenMP的隐式任务并行和显式任务并行技术实现;当节点Ci接收到的任务数为Ni,每个任务的数据长度为Len,第m个采样数据为Xm,m=1,2,…,Len;Prony计算过程中取迭代次数k=Len/2;
此步骤包含以下计算过程:
(d1)最小二乘计算元素求解
R u , v = Σ m = k m = N - 1 X m - v X m - u , u , v = 1,2 , . . . . . . , k
r u = - Σ m = k m = N - 1 X m X m - v
采用隐式任务并行方式对Ru,v、ru进行并行计算,采用静态调度方式进行子任务的分配与调度,将Ru,v、ru平均划分为Pi个子任务,每个子任务负责[k/Pi]×k个数据;由OpenMP将划分得到的Pi个子任务自动分配到核Cij上执行,i=1,2,…,C;j=1,2,3,…,Pi;并行计算后得到Ru,v和ru,u=1,2,…,k;v=1,2,…,k;
(d2)采用高斯约旦消元法求解线性方程组:
R 1,1 R 1,2 R 1,3 . . . R 1 , k R 2,1 R 2,2 R 2,3 . . . R 2 , k R 3,1 R 3,2 R 3,3 . . . R 3 , k . . . . . . . . . . . . . . . R k , 1 R k , 2 R k , 3 . . . R k , k · α 1 α 2 α 3 . . . α k = r 1 r 2 r 3 . . . r k
得到
α=(α1、α2、...、αk)T
采用隐式并行策略实现高斯约旦消元法求解线性方程组的并行化;高斯约旦消元法要求进行k次消元,每次消元过程需要对k个方程进行消元,将k个方程的消元过程分配到Pi个核上并行执行,每个核分配[k/Pi]个方程的消元;划分时,使任务划分的数据间隔为一个高速缓存行的整数倍大小,防止伪共享现象,并在调度上采用动态调度方式。划分后的子任务将由OpenMP自动调度到核Ci1、Ci2、…、CiPi上计算;计算后得到α1、α2、…、αk;(d3)将α1、α2、…、αk代入式
X(n)=-[α1X(n-1)+α2X(n-2)+...+αkX(n-k)]
求解高次方程
zk1zk-12zk-2+...+αk=0
即求解如下矩阵的特征值:
- α 1 - α 2 . . . - α k - 1 - α k 1 0 . . . 0 0 . . . . . . . . . . . . . . . 0 0 1 0 0 0 0 0 1 0
采用显式任务并行方式实现矩阵特征值的并行求解;求解过程需要k次循环,每次循环过程分为两个部分的计算,一是与其他任务有数据相关的部分,即对矩阵元素更新部分,二是无数据相关的部分,即计算出特征值部分;主线程只负责执行有数据相关的部分,无数据相关的部分利用task指令显式构造并行任务,添加到任务队列中,在OpenMP的调度下由其他线程执行。核Ci1执行主线程,在其对元素更新之后,将其余计算部分显式构造成子任务添加到任务队列中,进而由空闲的核Ci2、...、CiPi取子任务并执行;最后显式汇总求得:
z1、z2、……、zk
(d4)求解线性方程组
1 1 1 . . . 1 z 1 z 2 z 3 . . . z k z 1 2 z 2 2 z 3 2 . . . z k 2 . . . . . . . . . . . . . . . z 1 N - 1 z 2 N - 1 z 3 N - 1 . . . z k N - 1 · b 1 b 2 b 3 . . . b k = x 1 x 2 x 3 . . . x N - 1
采用隐式任务并行方式完成并行计算,将转置矩阵分为Pi个较小的矩阵块,每个矩阵块大小为(k/Pi)×N,这样就产生Pi个矩阵相乘的子任务,指定调度方式为静态调度,Pi个子任务由OpenMP自动调度到核Ci1、Ci2、...、CiPi上完成并行计算;并行计算后得到k个方程,用高斯约旦消元法和隐式任务并行方式进行线性方程组的并行求解,指定调度方式为动态调度;并行计算得到b1、b2、…、bk
(d5)将以上求出的zu和bu代入下式:
A u = | b u | θ u = arctan ( lm ( b u ) / Re ( b u ) ) / 2 πΔt α u = lm ( z u ) / Δt f u = arctan ( lm ( z u ) / Re ( z u ) ) / 2 πΔt u = 1,2 , . . . , k
计算出每个任务的幅值Au、相位θu、频率fu和衰减因子αu,u=1,2,…,k;
对分配到的Ni个计算任务重复步骤(d1)至(d5),完成节点Ci上的Ni个计算任务,得到Ni个任务对应电气量的振幅、频率、初相位、衰减因子的值;
(e)在每个节点完成其负责的Ni个计算任务后,将各电气量的振幅、频率、初相位和衰减因子的值发送到管理节点;由管理节点汇总C个计算节点的结果,将结果返回给客户端。
本发明与现有技术相比,具有以下优点:
1.采用并行处理技术对Prony计算过程进行了全面的并行化改造。首次实现了Prony数学模型上的并行化设计,利用多核CPU计算平台,采用多线程并行计算技术实现了Prony的多核多线程并行计算,提高了Prony算法的计算速度。并行Prony计算过程在数据规模较大时能获得更高的加速比;同时随着核数的增多,并行Prony计算能达到更高的加速比,实施效果如图4所示。
2.针对大电网低频振荡情况下多支路同步在线计算需求,本发明设计了分布式计算平台,建立了两重并行结构的处理框架——计算节点间的分布式并行与计算节点内部的多线程并行。在分布式计算中,有效地进行任务调度和负载均衡,极大地降低系统的响应时间,提高了系统的处理速度和效率,并具有良好的可扩展性。
3.本发明设计的双重并行计算方式,以简单的接口对外提供服务,内部采用多种计算方法,但对用户层程序是完全透明的,因此使用方便、简单易用。同时,本发明所建立的Prony并行计算系统,结构简单、层次清晰,利用本发明定义的并行计算规则建立,克服了传统并行及分布式计算系统繁琐的约束,实现了更好的计算效率。
附图说明
图1为双重并行计算平台体系结构示意图。
图2为Prony计算的多机并行过程示意图。
图3为Prony计算的多核并行过程示意图。
图4为Prony计算的多核并行与串行比较的加速比曲线。
具体实施方式
本发明提供了一个基于双重并行计算的Prony分析方法,下面结合案例对本发明的多机和多核并行计算过程和实施效果做进一步说明。
实施例一
一种基于双重并行计算的在线Prony分析方法,该方法包含下列步骤:
(a)在由I条支路和J个节点组成的交流互联电网中,各支路和所有节点均装设同步测量单元PMU;计算平台结构如图1所示,由一个客户端、一个管理节点和C个计算节点组成的机群构成,其中Ci表示第i个计算节点,Pi为Ci的核数,Cij表示Ci中的第j个核,i=1,2,…,C,j=1,2,3,…,Pi
(b)当电网中发生低频振荡时,将PMU采集的M条支路E个电气量包括:有功功率ΔP、频率Δω,取同一时间段采样数据为一组发送给计算平台进行Prony分析,则需要分析的任务数为N=EM,M=1,2,…,I;每一类电气量中包含Len个采样数据,500≤Len≤3000;
(c)多机并行计算过程如图2所示。首先,进行计算节点能力测试,即客户端将接收到的N个任务发送给管理节点,管理节点从N个任务中任意选取一个任务,同时发送给Ci节点上进行计算,i=1,2,…,C,记录每个节点对该任务的执行时间,节点Ci的执行时间记为Ti,根据第i节点的执行时间与C个节点总执行时间的比例对各计算节点的计算能力进行判别,根据计算能力的强弱对各计算节点进行排序,作为任务分配的依据。然后,将N个计算任务分配到各计算节点开展多机并行计算,节点Ci分配到的任务数为Ni
T = Σ i = 1 c T i
N i = [ T i T N ] , i = 1,2 , . . . , C
将Ni个任务发送到计算节点Ci上计算,未能整除余下的任务根据计算能力排序依次分配到各计算节点,由Ci进行单节点多线程并行计算;
(d)单节点多核并行计算过程如图3所示。单节点多线程的并行化采用OpenMP的隐式任务并行和显式任务并行技术实现;当节点Ci接收到的任务数为Ni,每个任务的数据长度为Len,第m个采样数据为Xm,m=1,2,…,Len;Prony计算过程中取迭代次数k=Len/2;
此步骤包含以下计算过程:
(d1)最小二乘计算元素求解
R u , v = Σ m = k m = N - 1 X m - v X m - u , u , v = 1,2 , . . . . . . , k
r u = - Σ m = k m = N - 1 X m X m - v
采用隐式任务并行方式对Ru,v、ru进行并行计算,采用静态调度方式进行子任务的分配与调度,将Ru,v、ru平均划分为Pi个子任务,每个子任务负责[k/Pi]×k个数据;由OpenMP将划分得到的Pi个子任务自动分配到核Cij上执行,i=1,2,…,C;j=1,2,3,…,Pi;并行计算后得到Ru,v和ru,u=1,2,…,k;v=1,2,…,k;
(d2)采用高斯约旦消元法求解线性方程组:
R 1,1 R 1,2 R 1,3 . . . R 1 , k R 2,1 R 2,2 R 2,3 . . . R 2 , k R 3,1 R 3,2 R 3,3 . . . R 3 , k . . . . . . . . . . . . . . . R k , 1 R k , 2 R k , 3 . . . R k , k · α 1 α 2 α 3 . . . α k = r 1 r 2 r 3 . . . r k
得到
α=(α1、α2、...、αk)T
采用隐式并行策略实现高斯约旦消元法求解线性方程组的并行化;高斯约旦消元法要求进行k次消元,每次消元过程需要对k个方程进行消元,将k个方程的消元过程分配到Pi个核上并行执行,每个核分配[k/Pi]个方程的消元;划分时,使任务划分的数据间隔为一个高速缓存行的整数倍大小,防止伪共享现象,并在调度上采用动态调度方式。划分后的子任务将由OpenMP自动调度到核Ci1、Ci2、…、CiPi上计算;计算后得到α1、α2、…、αk
(d3)将α1、α2、…、αk代入式
X(n)=-[α1X(n-1)+α2X(n-2)+...+αkX(n-k)]
求解高次方程
zk1zk-12zk-2+...+αk=0
即求解如下矩阵的特征值:
- α 1 - α 2 . . . - α k - 1 - α k 1 0 . . . 0 0 . . . . . . . . . . . . . . . 0 0 1 0 0 0 0 0 1 0
采用显式任务并行方式实现矩阵特征值的并行求解;求解过程需要k次循环,每次循环过程分为两个部分的计算,一是与其他任务有数据相关的部分,即对矩阵元素更新部分,二是无数据相关的部分,即计算出特征值部分;主线程只负责执行有数据相关的部分,无数据相关的部分利用task指令显式构造并行任务,添加到任务队列中,在OpenMP的调度下由其他线程执行。核Ci1执行主线程,在其对元素更新之后,将其余计算部分显式构造成子任务添加到任务队列中,进而由空闲的核取子任务并执行;最后显式汇总求得:
z1、z2、……、zk
(d4)求解线性方程组
1 1 1 . . . 1 z 1 z 2 z 3 . . . z k z 1 2 z 2 2 z 3 2 . . . z k 2 . . . . . . . . . . . . . . . z 1 N - 1 z 2 N - 1 z 3 N - 1 . . . z k N - 1 · b 1 b 2 b 3 . . . b k = x 1 x 2 x 3 . . . x N - 1
采用隐式任务并行方式完成并行计算,将转置矩阵分为Pi个较小的矩阵块,每个矩阵块大小为(k/Pi)×N,这样就产生Pi个矩阵相乘的子任务,指定调度方式为静态调度,Pi个子任务由OpenMP自动调度到核Ci1、Ci2、...、CiPi上完成并行计算;并行计算后得到k个方程,用高斯约旦消元法和隐式任务并行方式进行线性方程组的并行求解,指定调度方式为动态调度;并行计算得到b1、b2、…、bk
(d5)将以上求出的zu和bu代入下式:
A u = | b u | θ u = arctan ( lm ( b u ) / Re ( b u ) ) / 2 πΔt α u = lm ( z u ) / Δt f u = arctan ( lm ( z u ) / Re ( z u ) ) / 2 πΔt u = 1,2 , . . . , k
计算出每个任务的幅值Au、相位θu、频率fu和衰减因子αu,u=1,2,…,k;
对分配到的Ni个计算任务重复步骤(d1)至(d5),完成节点Ci上的Ni个计算任务,得到Ni个任务对应电气量的振幅、频率、初相位、衰减因子的值;
(e)在每个节点完成其负责的Ni个计算任务后,将各电气量的振幅、频率、初相位和衰减因子的值发送到管理节点;由管理节点汇总C个计算节点的结果,将结果返回给客户端。
实施例二
(1)广域测量系统对50条联络线的有功功率和频率数据采用Prony分析方法进行参数辨识,相当于100个Prony计算任务。
(2)设在有1个管理节点和2个8核计算节点C1、C2组成的机群中,当管理节点接收到客户端的任务N=100之后,进行Prony并行计算。
(3)管理节点从N个任务中任意选择一个任务,将这个任务同时发送到C1和C2上进行计算,记录每个节点对该任务的执行时间。本例中C1的执行时间为T1=0.037s,C2执行时间为T2=0.035s。根据T1/(T1+T2)和T2/(T1+T2)将N1=51个任务发送到C1上计算,N2=49个任务发送到C2上计算。由C1和C2分别进行单机多线程并行计算。
(4)C1接收到的任务数为N1,C2接收到的任务数为N2。指定C1用于并行的核数为P1≤8,C2用于并行的核数为P2≤8。将N1个任务依次用P1个核并行处理,N2个任务依次用P2个核并行处理。
表1单个任务不同核数不同采样值计算时间和加速比
(5)C1将计算得到的51个任务的幅值A、频率f、初相位θ和衰减因子α发送回管理节点,C2将计算得到的49个任务的幅值A、频率f、初相位θ和衰减因子α发送回管理节点,管理节点将结果转发给客户端。
(6)客户端将C1和C2的结果汇总排序,得到50条联络线功率振荡幅值、频率振荡幅值、支路功率初相位、频率振荡初相位、功率振荡幅值和频率振荡幅值。将多个任务的串行执行时间和并行执行时间做对比,结果表明采用本发明方法有效提高了Prony算法的计算速度,结果比较如表2所示:
表2多个任务串行和并行计算时间和加速比

Claims (1)

1.一种基于双重并行计算的在线Prony分析方法,其特征在于,该方法包含下列步骤:
(a)在由I条支路和J个节点组成的交流互联电网中,各支路和所有节点均装设同步测量单元PMU;计算平台由一个客户端、一个管理节点和C个计算节点组成的机群构成,其中Ci表示第i个计算节点,Pi为Ci的核数,Cij表示Ci中的第j个核,i=1,2,…,C,j=1,2,3,…,Pi
(b)当电网中发生低频振荡时,将PMU采集的M条支路E个电气量包括:有功功率ΔP、频率Δω,取同一时间段采样数据为一组发送给计算平台进行Prony分析,则需要分析的任务数为N=EM,M=1,2,…,I;每一类电气量中包含Len个采样数据,500≤Len≤3000;
(c)多机并行计算过程,首先,进行计算节点能力测试,即客户端将接收到的N个任务发送给管理节点,管理节点从N个任务中任意选取一个任务,同时发送给Ci节点上进行计算,i=1,2,…,C,记录每个节点对该任务的执行时间,节点Ci的执行时间记为Ti,根据第i节点的执行时间与C个节点总执行时间的比例对各计算节点的计算能力进行判别,根据计算能力的强弱对各计算节点进行排序,作为任务分配的依据,然后,将N个计算任务分配到各计算节点开展多机并行计算,节点Ci分配到的任务数为Ni
T = Σ i = 1 C T i
N i = [ T i T N ] , i = 1,2 , . . . , C
将Ni个任务发送到计算节点Ci上计算,未能整除余下的任务根据计算能力排序依次分配到各计算节点,由Ci进行单节点多线程并行计算;
(d)单节点多核并行计算过程:单节点多线程的并行化采用OpenMP的隐式任务并行和显式任务并行技术实现;当节点Ci接收到的任务数为Ni,每个任务的数据长度为Len,第m个采样数据为Xm,m=1,2,…,Len;Prony计算过程中取迭代次数k=Len/2;
此步骤包含以下计算过程:
(d1)最小二乘计算元素求解
R u , v = Σ m = k m = N - 1 X m - v X m - u , u , v = 1,2 , . . . . . . , k
r u = - Σ m = k m = N - 1 X m X m - v
采用隐式任务并行方式对Ru,v、ru进行并行计算,采用静态调度方式进行子任务的分配与调度,将Ru,v、ru平均划分为Pi个子任务,每个子任务负责[k/Pi]×k个数据;由OpenMP将划分得到的Pi个子任务自动分配到核Cij上执行,i=1,2,…,C;j=1,2,3,…,Pi;并行计算后得到Ru,v和ru,u=1,2,…,k;v=1,2,…,k;
(d2)采用高斯约旦消元法求解线性方程组:
R 1,1 R 1,2 R 1,3 . . . R 1 , k R 2,1 R 2,2 R 2,3 . . . R 2 , k R 3,1 R 3,2 R 3,3 . . . R 3 , k . . . . . . . . . . . . . . . R k , 1 R k , 2 R k , 3 . . . R k , k · α 1 α 2 α 3 . . . α k = r 1 r 2 r 3 . . . r k
得到
α=(α1、α2、...、αk)T
采用隐式并行策略实现高斯约旦消元法求解线性方程组的并行化;高斯约旦消元法要求进行k次消元,每次消元过程需要对k个方程进行消元,将k个方程的消元过程分配到Pi个核上并行执行,每个核分配[k/Pi]个方程的消元;划分时,使任务划分的数据间隔为一个高速缓存行的整数倍大小,防止伪共享现象,并在调度上采用动态调度方式。划分后的子任务将由OpenMP自动调度到核Ci1、Ci2、…、CiPi上计算;计算后得到α1、α2、…、αk
(d3)将α1、α2、…、αk代入式
X(n)=-[α1X(n-1)+α2X(n-2)+...+αkX(n-k)]
求解高次方程
zk1zk-12zk-2+...+αk=0
即求解如下矩阵的特征值:
- α 1 - α 2 . . . - α k - 1 - α k 1 0 . . . 0 0 . . . . . . . . . . . . . . . 0 0 1 0 0 0 0 0 1 0
采用显式任务并行方式实现矩阵特征值的并行求解;求解过程需要k次循环,每次循环过程分为两个部分的计算,一是与其他任务有数据相关的部分,即对矩阵元素更新部分,二是无数据相关的部分,即计算出特征值部分;主线程只负责执行有数据相关的部分,无数据相关的部分利用task指令显式构造并行任务,添加到任务队列中,在OpenMP的调度下由其他线程执行。核Ci1执行主线程,在其对元素更新之后,将其余计算部分显式构造成子任务添加到任务队列中,进而由空闲的核取子任务并执行;最后显式汇总求得:
z1、z2、……、zk
(d4)求解线性方程组
1 1 1 . . . 1 z 1 z 2 z 3 . . . z k z 1 2 z 2 2 z 3 2 . . . z k 2 . . . . . . . . . . . . . . . z 1 N - 1 z 2 N - 1 z 3 N - 1 . . . z k N - 1 · b 1 b 2 b 3 . . . b k = x 1 x 2 x 3 . . . x N - 1
采用隐式任务并行方式完成并行计算,将转置矩阵分为Pi个较小的矩阵块,每个矩阵块大小为(k/Pi)×N,这样就产生Pi个矩阵相乘的子任务,指定调度方式为静态调度,Pi个子任务由OpenMP自动调度到核上完成并行计算;并行计算后得到k个方程,用高斯约旦消元法和隐式任务并行方式进行线性方程组的并行求解,指定调度方式为动态调度;并行计算得到b1、b2、…、bk
(d5)将以上求出的zu和bu代入下式
A u = | b u | θ u = arctan ( lm ( b u ) / Re ( b u ) ) / 2 πΔt α u = lm ( z u ) / Δt f u = arctan ( lm ( z u ) / Re ( z u ) ) / 2 πΔt , u = 1,2 , . . . k
计算出每个任务的幅值Au、相位θu、频率fu和衰减因子αu,u=1,2,…,k;
对分配到的Ni个计算任务重复步骤(d1)至(d5),完成节点Ci上的Ni个计算任务,得到Ni个任务对应电气量的振幅、频率、初相位、衰减因子的值;
(e)在每个节点完成其负责的Ni个计算任务后,将各电气量的振幅、频率、初相位和衰减因子的值发送到管理节点;由管理节点汇总C个计算节点的结果,将结果返回给客户端。
CN201410773382.1A 2014-12-12 2014-12-12 一种基于双重并行计算的在线Prony分析方法 Active CN104504257B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410773382.1A CN104504257B (zh) 2014-12-12 2014-12-12 一种基于双重并行计算的在线Prony分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410773382.1A CN104504257B (zh) 2014-12-12 2014-12-12 一种基于双重并行计算的在线Prony分析方法

Publications (2)

Publication Number Publication Date
CN104504257A true CN104504257A (zh) 2015-04-08
CN104504257B CN104504257B (zh) 2017-08-11

Family

ID=52945654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410773382.1A Active CN104504257B (zh) 2014-12-12 2014-12-12 一种基于双重并行计算的在线Prony分析方法

Country Status (1)

Country Link
CN (1) CN104504257B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104865497A (zh) * 2015-04-30 2015-08-26 国电南瑞科技股份有限公司 基于扩展Prony算法的低频振荡就地化在线辨识方法
CN105740209A (zh) * 2016-01-28 2016-07-06 大连海事大学 一种Givens迭代的Prony低频振荡分析方法
CN106228013A (zh) * 2016-07-25 2016-12-14 国网江苏省电力公司电力科学研究院 一种电力线段平行视角下的弧垂计算方法
CN107220113A (zh) * 2017-07-31 2017-09-29 西安电子科技大学 基于并行的自适应决策效率优化方法
CN107908477A (zh) * 2017-11-17 2018-04-13 郑州云海信息技术有限公司 一种用于射电天文数据的数据处理方法及装置
CN108880947A (zh) * 2018-08-09 2018-11-23 锐捷网络股份有限公司 一种多种业务请求并发性的测试方法及装置
CN108897850A (zh) * 2018-06-28 2018-11-27 深圳云之家网络有限公司 一种数据处理方法及装置
CN111326216A (zh) * 2020-02-27 2020-06-23 中国科学院计算技术研究所 一种针对大数据基因测序文件的快速划分方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1602535A (zh) * 2001-12-12 2005-03-30 西门子公司 获得未来电压和/或电流变化的方法
CN101685480A (zh) * 2008-09-27 2010-03-31 国家电力调度通信中心 一种用于大电网安全稳定分析的并行计算方法和计算平台
CN102136733A (zh) * 2011-03-08 2011-07-27 浙江大学 一种关于电力系统低频振荡特性的时频域综合分析方法
CN102411118A (zh) * 2011-12-01 2012-04-11 武汉华中电力电网技术有限公司 一种区域互联电网强迫功率振荡扰动源位置判断方法
CN102944798A (zh) * 2012-11-29 2013-02-27 武汉华中电力电网技术有限公司 一种负阻尼低频振荡与强迫功率振荡判别方法
CN103645422A (zh) * 2013-12-18 2014-03-19 国家电网公司 一种发电厂内部扰动引起电网强迫功率振荡在线分析方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1602535A (zh) * 2001-12-12 2005-03-30 西门子公司 获得未来电压和/或电流变化的方法
CN101685480A (zh) * 2008-09-27 2010-03-31 国家电力调度通信中心 一种用于大电网安全稳定分析的并行计算方法和计算平台
CN102136733A (zh) * 2011-03-08 2011-07-27 浙江大学 一种关于电力系统低频振荡特性的时频域综合分析方法
CN102411118A (zh) * 2011-12-01 2012-04-11 武汉华中电力电网技术有限公司 一种区域互联电网强迫功率振荡扰动源位置判断方法
CN102944798A (zh) * 2012-11-29 2013-02-27 武汉华中电力电网技术有限公司 一种负阻尼低频振荡与强迫功率振荡判别方法
CN103645422A (zh) * 2013-12-18 2014-03-19 国家电网公司 一种发电厂内部扰动引起电网强迫功率振荡在线分析方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
S.F.MCGINN ETAL: ""parallel gaussian elimination using openMP and MPI"", 《INTERNATIONAL SYMPOSIUM ON HIGH PERFORMANCE COMPUTING SYSTEMS AND APPLICATIONS 2002》 *
S.Y.SUN ETAL: ""analysis of low frequency oscillation mode based on PMU and prony method"", 《POWER AND ENERGY ENGINEERING CONFERENCE 2009》 *
刘森: ""基于Prony算法的电力系统低频振荡在线辨识研究"", 《中国优秀硕士论文全文数据库 工程科技Ⅱ辑》 *
徐胜利: ""利用openMP技术实现线性方程组并行求解"", 《信息网络安全》 *
胡辉: ""矩阵乘法和高斯-约旦消元法并行实现的研究"", 《上海航天》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104865497A (zh) * 2015-04-30 2015-08-26 国电南瑞科技股份有限公司 基于扩展Prony算法的低频振荡就地化在线辨识方法
CN105740209A (zh) * 2016-01-28 2016-07-06 大连海事大学 一种Givens迭代的Prony低频振荡分析方法
CN105740209B (zh) * 2016-01-28 2018-06-29 大连海事大学 一种Givens迭代的Prony低频振荡分析方法
CN106228013A (zh) * 2016-07-25 2016-12-14 国网江苏省电力公司电力科学研究院 一种电力线段平行视角下的弧垂计算方法
CN107220113A (zh) * 2017-07-31 2017-09-29 西安电子科技大学 基于并行的自适应决策效率优化方法
CN107908477A (zh) * 2017-11-17 2018-04-13 郑州云海信息技术有限公司 一种用于射电天文数据的数据处理方法及装置
CN108897850A (zh) * 2018-06-28 2018-11-27 深圳云之家网络有限公司 一种数据处理方法及装置
CN108897850B (zh) * 2018-06-28 2021-12-28 深圳云之家网络有限公司 一种数据处理方法及装置
CN108880947A (zh) * 2018-08-09 2018-11-23 锐捷网络股份有限公司 一种多种业务请求并发性的测试方法及装置
CN111326216A (zh) * 2020-02-27 2020-06-23 中国科学院计算技术研究所 一种针对大数据基因测序文件的快速划分方法

Also Published As

Publication number Publication date
CN104504257B (zh) 2017-08-11

Similar Documents

Publication Publication Date Title
CN104504257A (zh) 一种基于双重并行计算的在线Prony分析方法
Li et al. An online power metering model for cloud environment
CN103645422B (zh) 一种发电厂内部扰动引起电网强迫功率振荡在线分析方法
CN102184297B (zh) 适于微网暂态并行仿真的电气与控制系统解耦预测方法
CN102945198B (zh) 一种表征高性能计算应用特征的方法
CN103346556A (zh) 一种配电网环路快速定位方法
Anand et al. The odd one out: Energy is not like other metrics
Nehra et al. Sustainable energy consumption modeling for cloud data centers
CN110222098A (zh) 基于流数据聚类算法的电力大数据流异常检测
CN105939026A (zh) 基于混合Laplace分布的风电功率波动量概率分布模型建立方法
Gaudette et al. Optimizing user satisfaction of mobile workloads subject to various sources of uncertainties
Singhal et al. Predicting job completion time in heterogeneous mapreduce environments
CN102545218A (zh) 基于电能质量监测系统的在线负荷建模并行计算方法
Zadeh et al. Multi-thread security constraint economic dispatch with exact loss formulation
CN106603661A (zh) 一种适用于云平台的动态资源平衡调度方法
Han et al. Distributed loop scheduling schemes for cloud systems
Cui et al. Modeling the performance of MapReduce under resource contentions and task failures
Drakontaidis et al. Towards energy-proportional anomaly detection in the smart grid
Ding et al. Power grid fault diagnosis method based on CNN image recognition
CN104022501B (zh) 基于模糊理论的配电网状态估计方法
Zhang et al. Performance difference prediction in cloud services for SLA-based auditing
Pan et al. Biasing transition rate method based on direct MC simulation for probabilistic safety assessment
CN105490871B (zh) 一种测试Hadoop集群稳定性的方法及系统
Wang et al. Microgrid Cyber-physical modeling and Channel Fault Analysis
Karimipour et al. PARALLEL DOMAIN‐DECOMPOSITION‐BASED DISTRIBUTED STATE ESTIMATION FOR LARGE‐SCALE POWER SYSTEMS

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant