可调度分析

2024-10-15

可调度分析(精选8篇)

可调度分析 篇1

1丹麦风电概况

丹麦是世界上风电装机和风电发电量占总电力装机和发电量比例最高的国家。截止2012年底, 丹麦风电装机416.2MW。丹麦的早期陆上风电场多是小型风电场、通过配电网分散接入电网, 而后期大型海上风电场集中接入输电网。

2风电运行的市场机制

(一) 市场概况

丹麦电力市场主要分为备用市场 (Reservemarket) 、日前市场 (Dayaheadmarket或spotmarket) 、日内市场 (Intradaymarket) 和实时市场 (Regulatingmarket或Realtimemarket) 四类。

(二) 市场定价机制

(1) 备用市场。备用市场的买方为电网公司, 卖方为所有可提供备用容量的发电厂, 主要用于紧急情况下保持电力系统的稳定运行。

(2) 日前市场。日前市场中的所有并网发电厂及电力需求方都参与市场竞价, 并根据电力需求与供给确定每小时电价。日前市场主要用于各发电企业根据市场竞价结果确定次日24点发电计划及各小时电价。

(3) 日内市场。在日前市场竞价结束后, 各并网电源可能因为机组故障、线路故障等原因, 尤其是风电企业对风电功率预测结果不断更新后, 可能需要调整日前市场确定的次日24点发电计划, 这类调整需要在日内市场完成。日内市场从每日的14点开始, 直到该小时上网电量最终确认的前一个小时结束。

(4) 实时市场。实时市场从每日的零时开始24时结束。为监督各并网电源是否按照发电计划上网发电, 并保持电力系的稳定运行, TSO对并网电源的出力调整需要在实时市场中完成。

(三) 辅助服务

为了确保电力系统从发电厂到消费者之间稳定可靠的电力传输, 避免电力供应的波动和中断, 丹麦国家电网提供辅助服务。丹麦国家电网公司购买三种不同类型的备用, 并根据系统的反应时间来利用这些备用平衡电力系统。

3可再生能源优先调度经验总结

(一) 通过适应风电特点的电力市场机制, 风电参与电力市场中日前、日内等各个发电计划制定环节, 促进风电优先调度

从实践经验来看, 多数风电一般都参与电力市场, 与其他电源一样参与竞争。电力市场机制对促进风电等可再生能源优先调度的作用主要包括:一是风电在市场机制中发挥边际成本优势, 保证风电等可再生能源优先调度。电力市场机制按经济性最优原则确定机组发电计划, 风电边际成本较低, 在充分竞争市场机制下能够凭借其成本优势保证其优先调度。二是市场机制下自由、开放、多样的交易方式, 为风电场实现盈利开辟多种渠道, 充分调动风电场自身促进风电消纳的积极性。

(二) 不断提高风电功率预测水平, 为风电场参与电力市场并及时调整发电计划提供重要技术支撑

风电功率预测是电网调度维持功率平衡、保证电力系统稳定运行的重要参考, 同时也是风电企业参与电力市场的基础, 预测精度对风电企业的经济效益有着显著影响。一方面, 对于调度运行人员而言, 风电功率预测精度影响备用容量的需求评估和竞价, 同时, 实时滚动的预测结果对于保持电力系统的稳定运行意义重大;另一方面, 对于风电企业而言, 风电功率预测是风电企业参与电力市场的基础条件, 其短期预测、超短期滚动预测对于确定每小时发电计划、市场竞价以及功率差额所需支付的费用有着完全直接的关系。

(三) 相对灵活的电源结构, 有效提升系统调峰能力, 为风电等可再生能源实现优先调度提供保障

从丹麦的电力系统电源构成来看, 燃气机组占比较高, 燃气机组启动迅速、调峰性能好、运行灵活性高, 能够很好的适应风电的波动性和不确定性, 是支撑风电迅猛发展和保持电网安全稳定运行的重要基础。

(四) 积极开展需求侧管理, 有效辅助风电优先调度、保证电网安全稳定运行

从目前高比例地区风电运行实践来看, 需求侧管理资源是系统紧急运行情况下, 保证系统安全稳定运行的重要资源。

参考文献

[1]李俊峰, 时璟丽.国内外可再生能源政策综述与进一步促进我国可再生能源发展的建议[J].可再生能源, 2006 (1) :1-6.

[2]李京京, 任东明, 庄幸.可再生能源资源的系统评价方法及实例[J].自然资源学报, 2001 (4) :373-380.

县级调度自动化现状分析 篇2

随着经济的发展,电网的建设已经成为国家经济生产的重要支柱,是保证社会主义经济增长的重要组成部分。由于经济发展,对电网负荷的要求逐渐提升,给电网的发展提出了一定的要求,做为电力系统的核心部分—调度自动化系统,要不断的提高自身的服务水平,加强系统运行的监控,为调度过程提供准确的信息,对提高供电质量具有重要的作用,所以,分析县级调度自动化能够有效的促进电力企业的发展。

一、县级电力调度自动化发站的现状

从县级自动化发展过程出发,研究县级电力调度自动化发展需要从应用现状、主要特点这两方面出发,加强县级调度自动化管理。目前,县级调度自动化已经经过了一段时间的发展,自动化功能能够与国外同一水平的自动化功能保持一致,在设计的过程中一般都是以开放型的系统结构形式进行,应用过程中主要是以软件以及透明接口这方面出发,增强整体的封闭性,使系统的驱动过程更加标准化。调度过程中OPEN-2000本身属于重点的科技项目。在其中具有很强的综合性,系统技术包含了很多分支结构,有SCADA、DMS、PAS、AGC等,其中适应性很强,能够与省、市、县三级活动联系在一起。这些系统集合了多个电力部门之间的协作,形成了一个开放式的能量供应管理系统。大规模的投影技术以及调度信号等,都具有很广阔的发展前景,是未来电力调度发展的趋势。

在系统中,电力系统的拓扑结构在综合运用中运用了很多高科技的技术,能够显示出电厂的单线图,电力设备在运行一般都建立了数据存储模式,同时也建立了电网系统模型,构建数据库也在其中起到很重要的作用。在支撑平台这方面,系统本身具有很强的开放性,本身也呈现一种分布式的状态。人机界面的管理系统中可以直接将这些内容向服务对象阐明。系统的EMS的支撑软件和管理系统在应用中接口都是SQL,属于同一的接口形式。对自主研发软件和第三方开发软件功能具有重要的作用。对于前置机的软件,本身的能量管理系统良好,客户服务器的内容都在管理系统中,所以在应用中可以按照应用形式采用对象型的应用方法和应用语言,是一种常用的形式。

二、县级电力调动自动化功能的特点

从县级电力自动化调度出发,本身的调度功能具有很强的扩展性。调度系统在设计的过程中是采用分层次和分布式的管理形式,系统本身具有很强的灵活性,各个环节的扩展功能也很强,适合不同形式的调度。自动化系统中包含的模块也很多,模块本身具有多样性,在收集数据处理信息的时候,一般都采用远程遥控的模式。系统的报警反应,打印报表以及安全管理这些方面都很强,本身画面的编辑以及画面的可控性都具有一定特点。用户在调度的过程中,可以采用结合不同的需要降低使用风险,加强了电网的可靠性运行。

自动化调度系统本身还具有一定的开放性。电力调度系统是结合GIM模式进行开发的,本身可以兼容软件,软件设备在升级的过程中可以从不同的领域出发,本身的应用范围也很广。系统本身的调度过程充分利用了开发性很高的网络平台,重点内容集中在中间软件以及设备的控制模式中,电力单位的各个系统网络逐渐扩大,网络平台也得到了广泛的应用,对适应互联网络以及网络开发等方面具有重要的作用,是值得推广的性能。

电力调度自动化系统属于三层结构形式,服务器可以处理多个用户的数据,利用计算机技术以及通信技术等。信息技术在通信过程中制约着电网的控制运行,对保证电网的安全运行和稳定运行具有重要的作用。服务器中的数据可以在运行中实现数据的自动传输,系统的运行也在全面的范围内,对系统产生一定的影响。调度系统本身具有很全面的管理权限。电网系统出现故障的时候能够将其隔离在系统中,不会影响整个系统的相互调度,调度的作用在于对整个系统的监控和管理,不会影响到整个系统正常运行。另外调度主站在其中能够为调度行为起到监控和管理的作用,对判断和分析电网是否正常运行以及管理网络的正常运行起到监控作用。

三、县级调度自动化现状分析

从我国信息技术发展角度出发,信息技术的发展程度不断加深。电网的数字化运行包含了很多方面的内容。具体为:从数字化通信的角度出发,调度的自动化控制中心能够与其他的模块联系在一起,实现数字通信的畅通化。其次,数字信息化的过程中,电网信息源在输出和运行过程中实现了比较通畅的信息模拟信号,电子设备在收集数据和监控数据的时候,自动化设备很容易产生一种新型的功能。自动化设备也能转变成数字化的形式,是通过收集和监控网络来实现的。调度中进行统一分配数据的时候,要提高数据的利用效率,保证电力系统能够正常运行,使县级自动调度的安全性和经济性都有很大程度的提高。

结束语

经济发展要求电网的自动化调度程度不断提高。以往的自动化调度形式都是以安全性为主的。现阶段提升电力系统自动化调度要兼顾安全性和经济性,加强电力系统的可靠性和稳定性运行。实现自动化调度过程的稳步提升。

参考文献

[1]王广颖.县级调度自动化网的安全与病毒防治策略[J].魅力中国,2010,(20):124-125.

[2]李琳,成爱英.县级调度自动化一体站在使用中的存在的问题及防范措施[J].中国电子商务,2013,(9):101.

[3]续小红.县级调度自动化的运行管理与维护[J].企业家天地:中旬刊,2012,(11):86-86.

基于风量可调度的矿井风量调节 篇3

随着矿井的生产推进,矿井的通风网络结构、阻力分布、通风设施、通风动力等都会随之变化,致使通风系统网络的分支风量也发生变化[1]。当通风系统网络分支风量的变化超过一定范围时就会引起瓦斯积聚、瓦斯超限等问题,威胁矿井安全生产[2]。为了满足某一特定工作点的用风需求,需要对其他分支进行风阻调节。

近年来,国内外许多学者对风阻调节展开了深入研究[3,4,5,6,7]。Shamir等[8]在流体网络研究中引入灵敏度分析,将其与网络解算结合,避免了某些参数变化所引起的不必要的迭代计算;吴奉亮等[9]用灵敏度优选矿井风量调节点及调节参数;史东涛等[10]引入灵敏度衰减率来研究风量调节的风阻临界值。但是,利用风量灵敏度分析法只能确定各分支对某个分支的敏感程度,通过调节需调分支中敏感度较大的分支风阻来改变该分支风量、压力分配[10],没有从定量的角度确定需调分支风阻调节范围以及调节该分支后各分支风量变化范围。

为此,笔者提出了基于风量可调度的矿井风量调节方法,以风量调节理论为基础,建立风量可调度模型,利用风网解算确定被调分支风阻可调范围,进而从定量角度求得需风分支风量可调度。

1 风量调节

矿井通风网络内风量调节过程是按照供风要求,使网络内风流从不平衡到平衡的过程。风量调节必须遵循网络风流变化的基本规律。根据风量平衡定律,网络内任意节点处各风路风量的代数和为零,即

式中dqi为各风路风量的变化量。

对于风压平衡定律,综合考虑网络风路风阻、风量的变化以及有无通风机等多种情况,可得

式中:ri为网络内风路风阻;tgθi为通风机特性曲线的斜率。

2 风量可调度模型

2.1 风量可调度概念

矿井通风系统局部风量调节过程中,为了便于选择风量调节的最佳分支,引入风量可调度这一新概念来量化分支j风阻变化对分支i风量的影响大小。

灵敏度dij用于表述分支j的风阻Rj变化对分支i风量Qi的影响程度,风量可调度与灵敏度关系为

式中:ΔRj=Rj-Rj0,为分支j的风阻变化量;ΔQi=Qi-Qi0,为分支i的变化量,即分支i相对于分支j的风量可调度。

2.2 风量可调度的计算

灵敏度衰减率[10,11]表示通风网络灵敏度随风阻变化的情况,用tij表示:

由式(4)可知,在通风网络参数变化时,风网工作状态也会变化,但是变化快慢程度不同。因此,灵敏度dij随风阻Rj的改变而变化。通过大量通风网络试验计算和模拟分析发现,灵敏度dij和风阻Rj之间总是符合如下关系式:

式中:a,b,c为常数,可通过数据分析拟合求得。

由式(3)和式(5)可得

对分支j使用增阻调节法,则分支i的风量变化量由分支j的风阻调节范围决定。假设分支j的风阻可调范围为Rj∈[u,v],利用面积积分公式对式(6)两边Rj积分,可得风量可调度为

2.3 风阻调节范围的确定

对分支j进行增阻调节时,各个分支的风量Qi随风阻Rj的变化而变化。利用通风网络解算程序,分支j风阻变化一次,就会获得一组各个分支的风量Q=[q1,q2,…,qn]T。通过大量通风网络试验计算和模拟分析发现,风量Qi和风阻Rj之间总是符合如下关系式:

利用通风网络解算程序,可以解得分支j风阻变化时各个分支的风量Qi。在调节分支j的风阻时,整个通风网络的各个分支风量都会受到影响,与分支j处于并联或串联关系的分支,其风量随Rj的改变变大或变小。为了满足各个分支的正常工作生产要求,风量随Rj变化而变小的分支,其风量不能低于最低需风量。因此,分支j的风阻Rj调节范围[u,v]主要取决于风量随Rj变化而变小的分支。

3 算例分析

通风网络G= (V,E)如图1 所示,|V|=7,|E|=11,风阻列向量R = [1.373 4,1.471 5,1.177 2,0.981,0.784 8,2.943,0.588 6,3.924,4.120 2,5.886,2.246 7]T,风阻单位为Ns2/m8。分支11安装有通风机,通风机风压特性曲线:hf=1 046.3+5q-0.85q2。假设分支8需要增加2m3/s的风量,选择增阻法调节风阻,使风路8的用风地点风量满足要求,按照上述算法选择可调分支。

3.1 通风网络的解算

在已知各个分支风阻和通风机风压特性曲线的前提下,运用Matlab编程解算通风网络G =(V,E),可得此时各个分支风量Q= [8.655 1,8.192 8,4.561 2,5.399 8,7.535 5,2.425 4,11.629 5,5.218 4,4.093 9,2.793 0,16.846 8],单位为m3/s。

3.2 分支7风阻调节范围的确定

选择最佳可调分支时,以调节分支7的风阻R7为例。随着分支7的风阻R7增大,其他各个分支的风量随之变化,利用Matlab进行风网解算,求得不同R7下的其他各个分支的风量。随着分支7风阻增大,各个分支风量增大或减小,如图2所示。

为了满足各个分支的生产需要,风量减小的分支其风量不能低于最低需风量。因此,在确定分支7的风阻调节范围时,主要考虑风量减小的分支其风阻是否满足要求,其中随着分支7风阻增大而风量减小的有分支1、2、4、5、7、9、11。由于分支3受分支7 风阻变化影响很小,故不予考虑。运用Origin画出分支1、2、4、5、7、9、11 的风量随分支7的风阻R7增大而减小的曲线,如图3所示。

煤矿井下各个用风地点的需风量不仅受瓦斯涌出浓度的影响,还受作业人数、炸药量、机械设备的影响。为了满足井下各个用风地点的需风要求,每个分支风量不能低于最低需风量。计算得到的各个分支最低需风量见表1。

从图3和表1可以看出,随分支7风阻增大,分支4、5、7、11的风量减小较快,且相比于其他分支最先低于最低需风量,以分支4、5、7、11的最低需风量为横实线画图,所得图形如图4所示。

由图4可知,各个分支的风量变化曲线与其最低需风量Qmin直线相交的交点中,R7最小值是分支5的风量变化曲线与其最低需风量Q5min=5.213 7m3/s的交点。 下面确定交点的风阻值。随着分支7的风阻增大,分支5 的风量减小,风量Q5和风阻R7之间总是满足式(8)。运用通风网络解算程序,可得风量Q5与灵敏度d87随风阻R7变化的数据,见表2。

利用Matlab软件的Power幂函数拟合处理后可得风量Q5随风阻R7变化的曲线,如图5所示。

分支5的风量Q5与分支7的风阻R7的关系为

将分支5 的最低需风量Q5min=5.213 7 m3/s代入式(7),可得R7=3.023 5Ns2/m8,即为分支7风阻的最大可调值。R7初始值为0.588 6Ns2/m8,则分支7 的风阻调节范围[u,v]= [0.588 6,3.023 5]。

3.3 分支7风量可调度的计算

在确定分支7的风阻调节范围后,利用式(5)求解风量可调度。运用Matlab编程求得灵敏度d87随分支7的风阻R7变化的数据(表2)。利用Matlab软件的Power幂函数拟合处理后可得灵敏度d87随风阻R7变化的曲线,如图6所示。

灵敏度d87与风阻R7的关系为

式中d87表示分支7风阻改变对分支8风量的影响。

通过确定的分支7 风阻调节范围[u,v]=[0.588 6,3.023 5],利用式(5)、式(8)求出分支8的风量可调度ΔQ8=2.628 8 m3/s,由此对分支7增阻调节,能使分支8增大风量为2.628 8m3/s,满足分支8增加风量2m3/s的要求。因此,只要对分支7增阻调节就可使分支8的风量达到需风要求。

4 结语

基于风量可调度的矿井风量调节方法利用Matlab编程,通过风网解算求出各个分支风量。对大量数据模拟分析和实验研究发现,风量可调度ΔQi与灵敏度dij之间总是符合关系式ΔQi=dijΔdi。该方法从定量的角度直观体现出调节分支j的风阻对分支i的风量影响大小,便于矿井井下风量调节时可调分支的选择以及风阻调节范围的确定。

摘要:由于通风网络中分支的风量相互影响,针对改变分支风阻重新分配风量的方法会造成风量减小较快的分支风量不能满足最低需风要求的问题,基于风量调节基本理论建立了风量可调度模型,提出了基于风量可调度的矿井风量调节方法。该方法利用风网解算确定被调分支风阻可调范围,进而从定量角度求得需风分支风量可调度。利用该方法计算风量可调度便于选择最佳风阻调节分支以及确定风阻调节范围与风量变化量。

关键词:风量调节,灵敏度,风网解算,风量可调度

参考文献

[1]黄元平.矿井通风[M].徐州:中国矿业大学出版社,1990:47-79.

[2]HOWARD L H,MUTMANSKY J M,RAMANI R V,et al.Mine ventilation and air conditioning[M].New York:Wiley,1997:35-40.

[3]周心权,吴兵,杜红兵.矿井通风基本概念的理论基础分析[J].中国矿业大学学报,2003,32(2):133-137.

[4]王树刚,王继仁,洪林.矿井正常和灾变时期通风网络解算的数学模型[J].辽宁工程技术大学学报,2003,22(4):436-438.

[5]刘惠德,连英立,艾婷.基于组件式GIS的矿井通风安全管理与决策支持软件的开发[J].工矿自动化,2008,34(6):69-71.

[6]WANG Y J.Solving mine ventilation networks with fixed and non-fixed branches[J].Mining Engineering,1990,42(12):1342-1346.

[7]曲素荣,贾燕茹.矿井主通风机变频调速系统技术改造[J].工矿自动化,2009,35(8):86-88.

[8]SHAMIR U,HOWARD C D D.Water distribution systems analysis[J].Journal of Hydraulics Division Asce,1968,94(1):219-234.

[9]吴奉亮.用灵敏度优选矿井风量调节点及调节参数[J].矿业安全与环保,2011,38(5):1-3.

[10]史东涛.基于灵敏度的风量异常与风量调节的分析研究[D].西安:西安科技大学,2008.

可调度分析 篇4

为了实现一定的计算要求, 现代电子技术主要采用两种方法:第一种是通用微处理器方法;第二种是专用处理器方法 (Application Specific Integrated Circuits, ASIC) , 即专用集成电路方法。现代通用处理器的体系结构与传统的冯.诺伊曼结构相比虽然己经有了很大的变化, 但是其基本框架仍然是以冯·诺伊曼结构为基础, 它的特点是使用范围广, 但计算效率低。另一方面, ASIC方法以完全硬件的方式来实现计算任务, 它的主要特点是为特定计算任务专门设计, 可得到较高的运算速度及效率, 设计的约束基本上是在物理层次的实现上, 但这种方法的最大缺陷是它几乎没有任何“弹性”, 即为某种应用而设计的ASIC无法用于另一种应用, 稍有变化则必需修改原来的电路。综合比较微处理器方法和ASIC方法, 一种新的技术路线与方法应运而生, 即可重构计算。它既具有ASIC的高性能、高速度和高可靠性, 又具有微处理器的高度通用性和强大的可编程功能, 从而恰好弥补了两者各自的缺陷。可重构处理器可以在比微处理器具备更高效率的同时, 取得比ASIC 更高的灵活性。更进一步的, 当应用程序与可重构处理器的结构匹配得较好, 且拥有足够的处理并行度的时候, 它可以获得与微处理器相比更高的吞吐率和更低的功耗, 因此可重构系统是上述几种解决方案的折中方案, 其灵活性接近RISC处理器, 而工作效率接近ASIC处理器。

由于C/C++程序无法直接映射到可重构阵列上执行, 所以需要编译器对C/C++程序进行处理, 根据将要映射到可重构阵列上的代码部分生成配置信息, 输入数据等。编译器工作流程如图1所示。

采用可重构系统实现一个计算逻辑的整个运行时间开销包括:对可重构阵列进行配置时带来的延时和通用处理器向可重构阵列输入数据的时间;可重构阵列向通用处理器输出运算结果的时间;用于实际计算的时间。目前, 制约可重构计算广泛应用的一个重要因素就是通用处理器和可重构阵列之间的配置传输时间, 数据传输时间相对于计算时间仍然太长, 如何加速配置过程和数据传输过程已经成为可重构系统的重要研究课题。

快速有效的任务调度算法是可重构阵列系统中一个关键问题, 其算法的实质在于将任务映射至可重构阵列上进行加速, 并且根据任务之间存在的数据依赖关系, 重新排列任务之间映射到可重构阵列上的先后顺序, 得到符合满足任务之间数据相关性的任务执行顺序, 并且得到最小的任务调度长度。

1 相关研究

常见的可重构硬件模型包括Morphosys[8], PipeRench[9]和RCA[10][11]已经证明了粗颗粒度的可重构处理器能够有效提高多媒体应用的执行速度, 但是它们仍然存在缺点。Morphosys对并行任务的运算支持不足, PipeRench只能有效处理存在并行性的流水运算, RCA则在处理颗粒较小的运算时存在着硬件面积的浪费, 同时也对并行的任务支持不足, 并且存在配置信息和解码操作数对总线竞争严重的现象。

常见的可重构系统任务调度算法包括表调度算法, 聚簇调度算法, 遗传算法, 基于任务复制调度算法等等。但是有的算法针对的是拥有无限硬件资源的模型, 并不适合现实中硬件资源有限的系统, 例如MD[2], DCP[3] , DSC[4]和 CPFD[5], TCSD[6];有的算法没有考虑任务传输数据和配置信息的通信代价, 实际应用中传输数据和配置信息的通信代价会严重制约可重构系统的性能, 例如CP/MIF[1]和DF/HIS[1];有的算法复杂度过高, 代码运行效率不高, 例如Genetic Algorithm[7]。

本文将提出一种有限个数可重构处理器, 存在通信代价, 能够支持任务并行计算的可重构系统和一种基于这种可重构系统的动态表调度算法。

2 新的可重构阵列架构

本文采用的可重构阵列系统包括:精简指令集处理器 (Reduced Instruction Set Computer, RISC) , 直接存储器访问 (Direct Memory Access, DMA) , 总线 (BUS) , 可重构阵列 (Reconfigurable Cell Array, RCA) , 存储器 (Memory) 组成, 如图2所示。

可重构系统的工作流程是:DMA将RISC或者Memory中的输入数据和配置信息通过AHB写入RCA中, 待RCA运算结束后, RISC直接通过AHB从RCA读出计算结果。

针对上文所提到的相关研究中的缺点和不足, 本文采用一种新的可重构阵列架构, 它的特点是采用多个可以独立进行并行计算的子可重构阵列, 利用其中某一个子可重构阵列的运算时间覆盖另一个子可重构阵列的配置信息的传输时间, 运算数据的输入时间或者运算结果的输出时间。

新的可重构阵列是由四个子可重构阵列, 一个全局配置存储器, 一个全局控制单元, 一个全局状态寄存器, 一个输入数据多路选择器, 一个配置信息多路选择器, 一个输出数据多路选择器组成, 如图3所示。

其中全局配置寄存器中存储指示向子可重构阵列写入配置信息和输入数据, 或者从子可重构阵列读出运算结果的配置信息, 而全局控制单元可以根据全局配置存储器中的配置信息和四个子可重构阵列的状态寄存器的状态, 通过控制多路选择器, 使得某个子可重构阵列和总线进行数据或者配置信息的传输, 而其它的子可重构阵列可独立进行数据的运算。

子可重构阵列是由一个存储输入数据的FIFO, 一个存储配置信息的FIFO, 一个存储输出数据的FIFO, 一个控制单元, 一个状态寄存器, 一个输入寄存器堆, 一个输出寄存器堆, 一个4×4可重构运算阵列组成的, 如图4所示。

其中的可重构运算阵列由4个路由控制单元和16个可重构运算单元 (Reconfigurable Cell, RC) 组成, 如图5所示。

路由控制单元根据配置存储器中的配置信息从输入寄存器堆的相应寄存器或者上一层4个可重构运算单元的结果中选择下一层4个可重构运算单元的输入数据。

这种结构使得利用可重构阵列的运算时间覆盖可重构阵列的配置和数据传输时间成为可能, 可以在硬件开销增加不大的情况下, 显著提高可重构阵列的性能。

3 任务调度算法

在进行硬件任务向可重构阵列映射时, 经常会遇见两者颗粒度上失配:硬件任务所需逻辑资源与可重构阵列所能提供的逻辑资源不匹配。两者的差异要求硬件任务必须进行划分。划分得到的子任务所需要的逻辑资源必须不大于可重构阵列所能提供的逻辑资源, 并且必须能构成有向无环图, 如图6所示, 其中有向无环图的每个节点代表一个划分后得到的子任务Ti, 每个子任务节点的信息包括:任务配置时间 (CT) , 输入数据时间 (LT) , 任务计算时间 (ET) , 输出数据时间 (ST) ;有向线段Ei表示子任务之间的数据依赖关系。为了充分利用可重构阵列的硬件资源, 实现并行计算, 需要对子任务的执行顺序进行调度。任务调度问题的定义如下:

(1) 输入:给定任务图G={T, E}。

(2) 输出:子任务Ti的执行顺序。

(3) 约束条件:保持子任务之间的数据依赖关系。

(4) 目标:使得划分后的任务集合执行时间最短。

由于有向无环图的调度问题是NP-HARD问题, 所以本文提出一种动态表调度算法, 算法的核心是:尽可能让sub_rca处于运算状态, 提高并行运算的sub_rca的数量, 因此在总线和sub_rca均有空闲时, 优先进行任务的配置信息和操作数据传输, 这样就可以让更多的任务同时在sub_rca上运算, 只有在sub_rca全部被占据或者当前待调度任务的前驱任务在sub_rca上时, 才进行sub_rca上任务的计算结果输出。算法步骤如下。

Step1:遍历所有任务节点, 查找未调度任务节点, 将所有前驱任务已经调度的未调度节点放入待调度的任务节点表。

Step2:计算待调度的任务节点表中每个任务节点映射在sub_rca阵列上的最早可能开始运算时间。

Step3:遍历待调度的任务节点表中的节点, 选择最早可能开始运算时间最小的待调度节点, 将其映射到sub_rca上。

Step4:根据所选择的待调度节点的参数, 更新所有的任务节点状态, sub_rca阵列状态, AHB总线状态。

Step5:重复步骤Step1-> Step4直到所有任务节点均已调度为止。

Step6:遍历sub_rca阵列, 将仍在sub_rca阵列上的任务节点, 根据任务执行完成时间从早到晚的顺序依次将运算结果输出, 更新sub_rca阵列状态, AHB总线状态。

算法流程如图7所示。

其中, 待调度节点Ti的最早可能开始运算时间Tipe的计算步骤如下:

if (no pre_task is on sub_rca current moment) {

if (there is sub_rca in idle state) {

Tipe=Tbi+CTi+LTi;

}else{

find out the task on sub rca that will finish earliest;

set the number of this task to earliest;

if (Tearliestf>Tbi) {

Tipe=Tearliestf+STearliest+CTi+LTi;

}else{

Tipe=Tbi+STearliest+CTi+LTi;

}

}

}else{

find out the task on sub_rca that will finish earliest;

set the number of this task to earliest;

if (Tearliestf>Tbi) {

Tipe=Tearliestf+STearliest;

}else{

Tipe=Tbi+STearliest;

}

while (on sub_rca exists result of pre_task not sent to bus)

{

find out the task on sub_rca that will finish earliest;

set the number of this task to earliest;

if (Tearliestf>Tipe) {

Tipe=Tearliestf+STearliest;

}else{

Tipe=Tipe+STearliest;

}

}

Tipe=Tipe+CTi+LTi;

}

Tbi:the time that bus starts in idle state.

Tjf:the time that task No.j finishes.

CTj:the time that configures task No.j to sub_rca.

LTj:the time that transfers the data of task No.j to sub_rca.

SYj:the time that sends the result of task No.j to bus.

4 实验结果及分析

验证平台是在SOCDesigner上搭建的系统模型, RISC采用的是ARM926EJ-S, 总线采用的是AHB, RCA采用SystemC编写的行为级模型。

矩阵乘法常被应用于许多视频处理算法中, 整数余弦变换/反变换 (DCT/IDCT) 是H.264中的核心算法, 快速傅里叶变换 (FFT) 是傅里叶变换 (DFT) 的一种计算机快速算法, 是离散数字信号处理的基础, 在采用相同的软件代码和映射硬件任务的条件下, 表1是与RCA的对比。

由表1可以看出, MAT_MUL相比原有的性能上有10.8%的提高, IDCT相比原有的性能上有11.3%的提高, FFT相比原有的性能上有8.7%的提高, 但是8×8DCT由于任务划分使得子任务之间存在很多的数据传输, 导致可重构阵列的计算时间无法有效的弥补由于任务划分而产生的额外数据传输所造成的性能损失。

5 结束语

提出了一种新的可重构阵列模型和基于其特点的任务调度算法, 完成了其在SOCDesigner平台上的软硬件协同验证。但是仍有大量工作需要做, 包括任务调度算法的优化, 硬件模型RTL代码的编写, 综合和时序分析, 以及布局布线等。

但是根据实验结果, 可以看出:

(1) 配置信息和操作数据之间仍然存在着对总线的竞争。

(2) 缺少对硬件任务进行最优划分的算法, 使得划分后的任务之间独立性不高, 较多的数据传输限制了系统的性能。

(3) 目前的可重构系统和任务调度算法由于受到子可重构阵列粒度的限制, 处理数据依赖关系紧密的任务集合时, 性能仍然存在不足。

因此还需要许多工作以提高该可重构阵列的性能。

摘要:提出了一种可以利用计算时间覆盖配置时间和数据传输时间的可重构阵列结构, 并且针对该可重构阵列结构提出了一种表调度算法进行任务调度。在SOCDesigner平台上进行了软硬件协同仿真, 对于IDCT, FFT, 4×4矩阵乘法新可重构阵列相比原来的可重构阵列有平均约10%的速度提升。

关键词:可重构,覆盖,表调度,协同仿真

参考文献

[1]Kasahara H, Narita S.Practical Multiprocessor Scheduling Algo-rithms for Efficient Parallel Processing[Z].IEEE Transactions onComputers, 1984.

[2]Wu Min-You, Gajski D.Hypertool:A Programming Aid for Mes-sage-Passing Systems[Z].IEEE Transactions on Parallel and Dis-tributed Systems, 1990.

[3]Yu-Kwong Kwok, Ishfaq Ahmad.Dynamic Critic-al-Path Schedu-ling:An Effective Technique for Allo-cating Task Graphs to Multi-processors[Z].IEEE Transactions on Parallel and Distributed Sys-tems, 1996.

[4]Yang Tao.DSC:Scheduling Parrallel Tasks on an Unbounded Num-ber of Processers[Z].IEEE Transactio-ns on Parallel and Distribu-ted Systems, 1994.

[5]Ahmad I, Kwok Y.A New Approach to Sched-uling Parallel Pro-grams Using Task Duplication[C].Proc.Int'1 Conf.Parallel Pro-cessing, 1994.

[6]Li Guodong, Chen Daoxu, Wang Daming, et al.Task Clusteringand Scheduling to Multiproce-ssors with Duplication[C].Procee-dings of the Internat-ional Pa rallel and Di stributed ProcessingSymposi-um (IPDPS'03) :April 22-26, 2003.

[7]Singh H, Youssef A.Mapping and Scheduling Heterogeneous TaskGraphs Using Genetic Algorit-hms.Proc[Z].Heterogeneous Com-puting Workshop, 1996.

[8]Singh H, Lee Ming-Hau.MorphoSys:an integ rated reconfigurablesystem for data-parallel and computation-intensive applications[Z].IEEE Transactions on Volume, 2000.

[9]Goldstein S C, Schmit H.PipeRench:a reconfigurable architectureand compiler[Z].Computer, 2002.

[10]肖钰, 刘雷波.应用于视频处理的可重构流处理器的设计与实现[J].器件与应用, 2008.

可调度分析 篇5

高性能计算在过去的数十年中已经在各个学科中得到了普及。随着应用的不断扩展和需求的提高, 推动了计算机性能的不断发展。近年来, 使用FPGA (Field Programmable Gate Array) 来进行高性能计算引起了很多计算机研究工作者的兴趣。Xilinx公司列举了7个使用Xilinx FPGA的高性能计算项目[1];Dimond等研究人员在FPGA上实现了相当于CPU速度370倍的有限差分方法解偏微分方程[2]。可见FPGA作为高性能计算的加速部件值得展开深入研究。

HRCA (Heterogeneous Reconfigurable Computing Array) 即超混合深度可重构计算阵列是项目课题组提出基于FPGA进行高性能计算的新型计算机系统[3]。系统采用CPU+FPGA的混合计算结构, 使用FPGA的计算性能, 利用CPU进行调度与存储管理, 充分发挥两者的性能优势。该系统由多个可重构计算部件构成计算阵列, 以CPU为调度核心, 执行高性能计算任务。

本文将研究介绍HRCA的结构, 并且研究在HRCA结构中, 任务调度的优化算法。

1 HRCA中任务调度的必要性

图1是HRCA原型机系统示意图。在一个可重构计算部件上, 即一个FPGA中划分多个局部可重构区域, 形成局部可重构的单核, 每个单核可载入一个算核, 通过可重构网络互联。

每个算核对应一个算粒, 算粒解决一个具体的应用或应用的一部分, 如复数乘法算粒, 矩阵乘法算粒等。算核是具有一定通用性的执行单元, 在整个应用中可以反复使用。HRCA内部有一CPU称为强核, 图中可重构部分使用一个FPGA来实现。FPGA都有单独的存储部件与之相连。HRCA原型机中选用的是Xilinx公司生产的Virtex系列FPGA芯片, 芯片内部包含一个Power PC处理器。

图中的强核为CPU, 负责HRCA内算核和算粒的调度、算粒在算核上的执行与片外存储访问。由于当前的FPGA生产技术, FPGA上可重构逻辑门的数量有一定的限制, 通过实验发现, 在一个Virtex-5的芯片上, 只能实现N-Body FMM算法的一个算核的计算任务, 但是由于半导体工艺的发展, 三维封装的引入, 能够使FPGA上的逻辑门数量在未来几年内不断增加。比如Xilinx公司最新的Virtex-7家族中最高性能的芯片比Virtex-5家族中最高性能的芯片查找表数量增加了6倍, 触发器增加了12倍[4,5]。我们有理由相信, FPGA在未来几年的发展之后, 其规模已经不再适应在一片FPGA上只完成一项算核的计算任务, 而是能够载入多个复杂的算核。

在HRCA执行计算任务时, 一个单核就可以完成一项算核的计算任务, 如何在各个单核上部署算核的计算, 对于HRCA的计算性能上有重大影响。

当一个FPGA上的所有可重构算核区域均部署上算核后, 所有算核同时执行将带来巨大的数据访问需求。如果HRCA上的存储器无法提供这样的数据访问速率, 则HRCA将遇到“存储墙”问题而大大降低系统的执行性能。因此消除或者减少存储墙的影响是提高HRCA运行效率的关键。

在HRCA上任务调度系统的一个重要的要求就是:在应用程序允许的条件下, 使得所有算核对于数据访问的需求的总和是平稳的, 尽量减少对于数据访问需求量的变动。在所有高性能计算机系统结构中, 对于调度程序的要求都是减少计算时间, 提高计算速度。在HRCA结构中, 对于调度程序的要求是同样的, 但是它是通过减少存储墙的影响的手段来获得的, 这是HR-CA调度系统的特点之一。

高性能计算应用中经常出现的迭代计算, 由于两次迭代间的数据相关性, 会导致计算部件暂停计算以便等待数据, 从而产生性能下降。本文提出的调度方法, 使两次迭代间需要传输数据的过程在上一次迭代计算结束前开始, 将计算与数据交换同步进行, 缩短了计算部件等待数据的时间。此方法在提高多HRCA的结构的计算性能时, 效果特别突出, 因为不同HRCA可能位于不同机柜, 通信时间会远远大于板上通信, 提前开始多HRCA间的数据交换过程能提高总体计算时间。

2 基于HRCA结构的性能优化调度及验证

2.1 在HRCA上分配算核及算粒调度的要求

计算通信比指的是一段程序计算时间与通信时间的比值。算核的计算通信比指该算核完成一次计算的时间与CPU读写一次该算核完成计算所需要的所有数据时间的比值, 是算核的属性之一。由于每个HRCA上有多个算核同时运行, 导致了数据读写需求的增加。本节提出在HRCA上的调度原则, 是使在HRCA上的计算, 其总体计算通信比能够尽量平稳, 提高系统利用率。

2.2 N-Body FMM算法简介

N-Body (多体) 问题是天体物理、流体力学以及分子动力学的基础问题之一, 是高性能计算领域最具代表性、最有影响力以及最具挑战性的问题之一[6]。本文提出的调度优化方法通过N-body FMM算法进行验证, 在此对FMM算法进行简单介绍。

N-body问题是解决在空间中N个粒子受到相互作用的影响而产生运动的问题。每个粒子有其位移、速度、质量等属性, 单次迭代计算模拟一个极短时间间隔内的移动, 多次迭代计算模拟一段时间内粒子的移动轨迹。

本文使用的N-Body算法是由Greengard和Rokhlin提出的FMM算法, 对粒子的位移关系形成树形结构, 对位势函数在远场作多极子展开, 再转化为近场的局部展开。该算法能够在任意计算精度下达到O (N) 的算法复杂度[7]。

2.3 单次迭代计算中的调度优化方法

在HRCA中, 算核所需要的数据以及算核输出的结果均由CPU负责与片外存储进行通信, CPU和算核处于一个芯片内, 其通信时间远远小于CPU与片外存储通信的时间, 所以这里只考虑CPU与存储之间的通信时间。

由于几十年来存储器的发展速度远不及计算部件的发展速度。计算部件的性能以每年55%的速度增长, 而存储器只有以每年10%的速度增长[8]。“存储墙”在这里更加严重的体现了。

约定:算核集中包含n个算核{Ci} (i=1, 2, …, n) , 算核Ci对应求解算粒实例M (i, j) (j=1, 2, …, NMi) 。NCL是HRCA中单核的数量。一个HRCA最多可同时放置NCL个算核。放置的算核可以执行某一类型算粒。算粒类型Mi的计算数量为NMi, 即算核Ci需要执行NMi次。算粒类型表示解决某一具体问题的算法描述, 算核是其硬件描述。每个算核执行一次时间为tCi。

假设在不考虑访存限制的情况下, 一个HRCA上放置了算核{C1, C2, …, CNCL}, 一个应用总的执行时间为。若算核Ci所每次执行需要的数据量为DRi, 那么, 单个算核的平均访存速度为一个HRCA内, 总体的访存速度的需求将达到

当FPGA片外存储能够提供的访存速度为MS≥AStotal时, 则HRCA上的各个算核将工作连续不中断地工作;而当访存速度为MS

合并的方法描述如下:

在FPGA上同时载入计算通信比较高的算核与计算通信比较低的算核。

若有算核Ci和Cj, 计算时间和访存速度需求分别为tCi, ASCi和tCj, ASCj。且满足 (ASCi×NCL)

那么, 此时系统的总数据访问速度需求为:

则有:ASCi×NCL

通过这样的方法, 达到平衡通信与计算的目的, 提高系统的效率。

2.4 单次迭代计算中的调度优化方法的实现

本文所进行的实验分为两个部分, 首先是FMM在HRCA上算核的开发, 主要依据基于计算库Pet SC的Pet FMM代码。在项目组以前工作[9,10,11,12]的基础之上实现了以下算核:P2M、M2M、M2L、L2L、L2P、PP。

分析FMM算法可知M2L算粒与L2L算粒都是对数结构从上向下扫描的过程, 并且M2L和L2L的执行次数相同, 且M2L的输出为L2L的输入, 由此, 将算核M2L与L2L进行合并, 成为新算核M2L2。将两个算法同时部署在同一FPGA上所形成的新算核省去了M2L中原有的输出需求和L2L的输入需求[13]。最终算核为P2M、M2L2、L2P、PP。

本实验平台为Xilinx ML507, 所用芯片为XC5VFX70TFFG1136, 开发环境为ISE12.4 (lin64) , 模拟器为ISim 12.4 (lin64) 。各算核资源情况如表1所示。多算核调度采用程序模拟方式。

其中, T为展开系数的项数, 与精度有关, 项数越多精度越高, 本文选取T=17。P为一个FMM盒子中的粒子个数, 本文中P=8。

n P表示一个FMM应用中粒子的个数, n Box表示FMM算法中, 底层叶子盒子的个数, 下文同。

表1中IO次数以及IO需求中的读取单元为一个复数, 一个复数包含两个64位的双精度浮点数。各算核访问存储速度需求示意如图2所示。

按照原始FMM算法, 假设HRCA具有16个单核, 即FPGA上能够放置NCL=16个算核, 且各算粒逐个完成计算。即整个算法分为5个阶段, 每个阶段FPGA上部署16个相同的算核进行计算。一个阶段结束后, 对FPGA进行重构, 部署下一阶段算核, 直至算法结束。

由于各算粒顺序执行, 执行过程中的各时刻对应的总体存储访问速度需求如图3所示。表2所列的是各算粒执行完成时间, 与图3相对应。整个执行过程持续时间为6 855 068 336 ns。

由图3可知, 在整个运行过程中, L2P算粒计算阶段所需要的访存速度最大, 为1.235 G次/秒, 由于每次传输两个64位双精度浮点数, L2P阶段仅数据传输就达到了19.76 GB/s是PP阶段的71倍, 假设片外存储能提供的最大读写能力为277.78M次/秒, 则L2P阶段由于片外存储速度限制, 执行时间将会降至10 125 026 us, 执行一次迭代时间将会超过16秒。所以采取M2L2算核与L2P算核同时计算的策略。

本文将M2L2和L2P计算分为两个阶段。第一个阶段, HR-CA上只放置M2L2算核, 称为a阶段;在第二阶段, HRCA同时放置M2L2和L2P算核, 称为b阶段。

如图4所示, 为M2L2和L2P阶段扩展树节点的方式, 在树的前三层, 以广度优先的方式进行扩展, 即计算完成树的一个节点后, 将其所有子节点盒子放入M2L2的计算队列, 由于上文已经确定在M2L2和L2P计算的开始阶段, FPGA上只放置了16个M2L2算核, 广度扩展可以迅速使16个单核上的算核都开始计算, 提高系统的使用率。而其余各层将以深度优先的方式进行扩展, 即计算完成后, 只将一个未完成计算的子盒子节点放入计算队列, 以迅速抵达叶子节点, 当叶子节点计算完成后, 将对应盒子中的8个粒子的L2P的算粒放入L2P计算队列。此过程相当于有16颗子树同时进行深度优先的计算。这样的方法既保证能够充分使用HRCA上的资源, 又能够使M2L2和L2P开始计算的时间最接近。

另一个需要考虑的问题是b阶段部署L2P算核的数量, 由于系统提供的存储访问能力为277.78 M次/秒, 故在HRCA计算节点上最多同时放置3个L2P算核, 以保证L2P阶段的访存需求没有明显高于系统的存储访问能力。

经实验, 粒子数量为1 024时, 当a阶段计算完成第280个M2L2算粒后, 启动局部重构为最优, 局部重构将部分原来放置M2L2算核的单核重构成为L2P算核, 即从a阶段进入b阶段。A阶段完成M2L2算粒的数量称为触发重构的数量。FMM运行时间为7 326 688 us (n P=1 024) 。

经过算核合并后, 当n P=8 388 608, n Box=1 048 576, a阶段触发重构数量为313 424。得到的运行结果如图5所示。

经模拟, 最终FMM运行时间为6 855 226 us。

2.5 多次迭代计算的调度优化方法

在FMM计算的初始化过程中, 需要对所有粒子进行建树的操作, 需要花费一定的时间。这样导致了如图6所示的计算过程。HRCA算核完成一次迭代计算后, 下一次迭代必须等待数据交换完成后开始, 造成HRCA上单核利用率的降低。

该问题不仅仅出现于N-Body FMM算法, 在高性能计算中会出现迭代计算, 如LU分解等。所以解决二次迭代之间由于数据交换和计算初始化引起的性能下降问题具有普遍意义。

以FMM算法为例, 当粒子分配到多个HRCA同时计算时, 在一次FMM迭代结束之后, 需要调整粒子的位移状态, 将粒子重新分布, 重新进行建树操作, 如图7所示。白色粒子表示计算前的位移, 黑色粒子表示计算后得到的位移结果, FMM算法中建树的操作是一个数据密集型计算。另外当粒子的位移发生变动时, 可能会出现有些粒子需要迁移到相邻的FPGA上, 需要的通信时间就比较长, 特别是相邻的FPGA在物理位置上可能相距比较远, 例如不同的FPGA位于不同的机柜。因此两次迭代之间的数据交换可能需要比较长的时间, 将会大幅度降低计算性能, 故必需要进行优化。

通过调度M2L、L2L和L2P的计算顺序, 使处于边缘位置的盒子先进行计算, 从而提前进行数据交换, 由于迭代间的数据交换在CPU完成, 而FMM的计算在FPGA中完成, 故可以同步进行。采取这样的调度策略后, 计算过程如图8所示。可见经过优化调度后, 使各部件充分利用, 达到提高系统使用率的作用。

2.6 多次迭代计算调度优化的实现

在2.4节描述了FMM算法在HRCA上分配算核的实例, 为了遍历树时能充分利用FPGA的资源和迅速达到叶子节点, 调度算法采用了先广度优先再深度优先的策略将M2L2算粒放入执行队列, 为了缩短边缘粒子交换数据的时间, 在深度优先的扩展策略中, 再需要满足边缘优先的扩展策略, 以使边缘粒子的数据交换能够尽快进行, 使数据交换和计算能够同时进行。

而计算完成65 408个粒子的时间, 即所有边缘粒子的时间为5 794 993 584 ns, 在L2P完成时间6 549 698 864 ns, 提前了754 705 280 ns。

3 实验分析

本文提出了在HRCA体系结构上的调度策略, 通过实验证明了在HRCA上进行高性能计算, 调度单核上重构算核, 能够有效地降低计算任务对于片外存储的访问速度需求。由FMM算法实验可知, 当粒子个数为8 388 608个时, 系统提供存储速度为无穷大的情况下, 经过优化后的执行时间为6 855 226 us。未经优化过的运行时间6 855 067 us。优化后的时间仅比未经优化的情况慢159 us, 万分之零点三的时间损失却能将对片外存储最大速度需求从未经优化的1.2G次/秒降至277.78 M次/秒。假设片外存储能提供的最大读写能力为277.78 M次/秒, 则因未经优化L2P阶段计算由于片外存储速度限制, 执行一次迭代时间将会超过16秒, 而优化调度后不存在该问题, 优化效果十分明显。可以有效地提高系统的使用率, 达到加速计算任务的目的。

为了提前执行边缘数据交换的工作, 采用了先广度优先再深度优先的扩展策略, 深度优先中采用边缘优先的扩展策略。完全可以脱离FMM的其他4个算粒独立进行计算, 若能够将PP在此之前完成, 则提前的时间将占总执行时间的11.52%。这样就可以给数据交换留出足够通信时间。

但是由于FPGA局部重构涉及到片外存储的速率、可重构器件的自身属性等诸多条件, 本文中的实验没有进行重构时间的假设, 是造成实验误差的主要来源, 同时M2L2算粒所需要的数据量与所在层级相关, 是造成本实验误差的次要来源。这将在今后的工作中继续研究实现。

4 结语

本文针对HRCA的结构进行算核和算粒调度优化研究, 提出了在HRCA上分配算核执行算粒的优化方法:通过算核的合理分配, (1) 达到平稳通信速率的效果; (2) 提前完成数据相关区域计算, 为HRCA之间数据交换预留了时间。所有优化方法均以N-body FMM算法为例进行了验证, 并有良好的实验结果。

综上所述, HRCA系统的结构在合理的算核调度下将会有明显的加速作用, 有着十分广阔的应用前景。

摘要:针对一种新型的高性能计算机结构:超混合深度可重构计算机阵列 (HRCA) , 提出两个在HRCA上任务分配的调度优化方法。 (1) 通过算核的优化分配减轻或消除由于算核分配引起的数据通信量急剧增加而导致的“存储墙”问题; (2) 通过算粒的调度, 将两次迭代间的数据交换与计算时间相重叠, 缩短计算部件由数据交换导致的等待时间。以N-body FMM算法为例, 验证了两种方法有效地降低了系统对于片外存储访问速度需求, 提高了系统的利用率。

可调度分析 篇6

虚拟信道复用技术是AOS研究的一项重要内容。由于航天器信源种类多, 数据产生随机性强, 而且对于实时性和完整性要求也不一致, 所以设计出性能良好的虚拟信道调度算法以满足多用户需求是当前研究的重点。关于这一问题的研究已经取得了一些初步成果。文献[4]提出一种基于优先级的调度算法, 能够满足突发性数据和低速率数据的传输要求, 但是该算法仅针对遥测数据进行设计, 并没有考虑到高速率的科学实验和语音、视频等数据传输。文献[5]提出一种基于动态优先级的虚拟信道调度算法, 该算法定义了虚拟信道紧迫度函数进行调度, 但没有注意到同一条虚拟信道中各数据帧的紧迫度是不同的, 而且未考虑在同步时隙中没有同步数据时应如何有效利用该时隙, 因此实际应用中系统的时延较大。文献[6]对文献[5]提出的算法进行改进, 在设计新的虚拟信道紧迫度函数时考虑到虚拟信道剩余帧数量的影响, 但在调动中仍未注意到虚拟信道紧迫度与帧紧迫度的不同。

本文针对上述问题, 提出了一种基于帧紧迫度的边界可移动虚拟信道调度算法。与他人研究的不同之处在于, 该算法采用同步/异步边界可移动混合复用方式, 将虚拟信道划分为同步虚拟信道和异步虚拟信道。在调度策略上, 同步虚拟信道采用周期轮询调度策略;在同步时隙无有效数据时, 根据调度机制选择一路有效的其它同步数据或异步数据来占用该同步时隙。这样, 减少了发送填充数据帧的机会, 相应地减少了时延, 提高了信道的利用率。异步虚拟信道采用基于帧紧迫度的虚拟信道调度策略, 由于区分了帧紧迫度和虚拟信道紧迫度, 解决了传统动态调度算法中VC被服务后紧迫度重置为1所造成的其他数据帧此前等待时间被忽略的问题。理论分析和仿真结果表明, 与传统的动态调度算法及边界不可移动的调度算法相比, 本文提出的算法具有更小的平均调度时延、最大调度时延与剩余量, 明显提高了信道利用率, 更适于在空间链路中进行复杂信源的调度。

1传统的动态调度算法的不足

1.1传统的动态调度算法描述

传统的动态优先级调度算法[4] (traditional dynamic priority scheduling algorithm, TDPSA) 主要考虑两个因素:传输紧迫度基数B与传输紧迫度系数m。

传输紧迫度基数B是指一个VC从申请传输时刻开始到当前调度时刻的延迟。以一帧的传输时间为一个单位调度时刻, 则在第k个调度时刻, 第i个VC的传输紧迫度基数Bi (k) 为:

传输紧迫度加权系数m, 反映VC对传输实时性的不同要求。对第i个VC而言, 若实时性要求高, 可则赋予一个数值较大的mi;反之, 可赋予一个数值较小的mi。

定义在第k个调度时刻, 第i个VC的传输紧迫度为:

在任一调度时刻, 首先传输Di (k) 值最高的VC中的数据帧;如果有多个VC同时具有最高的Di (k) 值, 传输其中mi值最大的VC中的数据帧;如果Di (k) 值与mi值都相同的VC也不止一个, 则传输其中序号最小的VC中的数据帧;如果此时各VC中均无完整的数据帧, 则传输填充数据帧。

1.2传统的动态调度算法的不足

TDPSA算法能够满足对实时性要求高的虚拟信道的传输要求, 并且能够避免速率高的VC垄断物理信道, 造成速率低的VC数据帧得不到传输的情况。但是该算法存在下述两个问题:

1) 该算法调度时只考虑了VC的紧迫度, 没有考虑到VC里的各个数据帧进入VC缓存的时间是不同的, 因此每个数据帧具有自己的等待时间, 而按该算法调度, 当一个VC缓存区里有多个数据帧时, 只要该VC被服务了, 在第一个数据帧被传出后, 缓存中所有其他等待帧的VC紧迫度Di (k) 都重置为1, 此时会造成其他数据帧此前已经等待的时间被忽略, 所以不能正确反映调度模块的真实性。

2) 动态调动算法适用于复杂的星上信源, 而在传输星上信源数据时, 很多时候需要将虚拟信道划分为同步虚拟信道与异步虚拟信道, 并且会遇到在同步时隙中对应的同步虚拟信道没有同步数据时的情况。这时应考虑如何有效利用该同步时隙。传统的动态调度算法为保证数据流的连续性, 此时会发送填充数据帧, 如图2所示。但是这样不仅降低了物理信道的使用率, 而且阻碍了其他同步或异步数据帧利用该同步时隙。因而性能受到很大影响。

2基于帧紧迫度的边界可移动虚拟信道调度算法

本文提出的新算法将调度时隙划分为同步时隙和异步时隙, 在同步 (异步) 时隙调度的虚拟信道即为同步 (异步) 虚拟信道, 用于传输同步 (异步) 数据。在同步时隙, 采用轮询调度算法传输同步虚拟信道中的数据帧;如果该同步时隙没有同步数据, 则根据调度机制选择其他同步数据或异步数据来占用该时隙。在异步时隙, 采用基于帧紧迫度的虚拟信道调度算法传输异步虚拟信道中的数据帧。这样可减少传输填充数据帧的机会, 提高信道的利用率。

2.1同步虚拟信道调度算法

在同步时隙, 虚拟信道采用轮询调度算法, 即对系统中每个VC按照严格的顺序轮流占用物理信道并传输数据帧。

如果当前VC无有效同步数据, 则传输其他同步VC中当前第一帧等待时间最大者的数据帧。定义第i个VC当前第一帧等待时间Twi为

式 (3) 中, kΔt是当前调度时刻, Tai是第i个VC当前第一帧的到达时间。

如果有两个以上的同步VC当前第一帧等待时间相同, 则传输序号最小者的数据帧;如果在该同步时隙各VC均无有效同步数据, 则根据异步虚拟信道调度算法传输异步虚拟信道数据帧;只有当所有VC均无完整数据帧, 才传输填充数据帧。这时, 同步时隙利用情况如图3所示。与图2相比较, 易知此时同步时隙的得到了很好的利用, 提高了物理信道的利用率。

2.2异步虚拟信道调度算法

在异步时隙, 采用基于帧紧迫度的虚拟信道调度算法。该算法考虑三个因素:各VC的当前第一帧等待时间、最大调度时延、静态优先级。

第i个VC的第一帧等待时间记为Twi, 其定义如式 (3) , Twi的值越小, 说明当前第一帧等待时间越长。

第i个VC的最大调度时延记为Tmax i, 当VC缓存中的帧等待时间超过Tmax i时, 这些帧将会丢失。

第i个VC的静态优先级记为Pi, 其值反映VC对传输实时性的要求。对实时性要求高的VC可赋予一个数值较小的Pi, 反之, 可赋予一个数值较大的Pi。

这样, 第i个VC帧紧迫度函数F可定义如下:

将式 (3) 代入式 (4) , 得到:

VC的帧紧迫度F的值越小, 说明该VC对实时性的要求越高。所以应该优先传输帧紧迫度F值较小的VC的数据帧。

该算法调度过程为:在异步时隙, 首先传输F值最小的VC中的数据帧;如果多个VC同时具有最小F值, 传输P值最小的VC中的数据帧;如果同时具有最小F值和最小P值的VC也不止一个, 则传输序号最小的VC中的数据帧;如果没有有效的异步数据则传输填充数据帧。

从公式 (5) 可知, 算法保证VC中每个帧的等待时间都被考虑, 从而避免了传统动态调度算法中因调度导致VC紧迫度重置, 从而其他数据帧等待时间被忽略的问题。

3仿真结果

3.1仿真模型的建立

本文选择载人航天器信源模型对虚拟信道动态调度算法的性能进行研究。这是因为本文提出的算法属于动态调度算法, 而动态调度算法适用于具有多种类型数据且数据率变化较大的星上信源。因此, 在选择信源模型时, 应考虑选择具有这种特点的信源数据, 才能更好地测试动态调度算法的性能。载人航天器的最大特点是多用户和多业务需求, 满足上述要求, 故选择9路VC下行传输航天器用户所需要的全部数据[7]。其中, VC1~VC6属于异步虚拟信道, VC7和VC8属于同步虚拟信道, VC9用于产生并传输填充数据帧。虚拟信道的划分具体如下:

VC1:采用路径业务, 传输平台系统网数据, 重要性最高, 实时性高 (要求延时小) , 数据比特率为10 Mbps;

VC2:采用路径业务, 传输生理遥测数据, 重要性较高, 数据比特率为10 Mbps;

VC3:采用路径业务, 传输延时遥测数据, 重要性一般, 数据比特率为35 Mbps;

VC4:采用网间业务, 传输网间业务数据, 重要性一般, 数据比特率为2 Mbps;

VC5:采用路径业务, 传输高速有效载荷的试验数据, 重要性一般, 数据比特率为75 Mbps;

VC6:采用位流业务, 传输高速有效载荷的CCD图像类数据, 数据比特率为95 Mbps;

VC7:采用位流业务, 传输视频监视的操作监视数据, 数据比特率为44 Mbps;

VC8:采用位流业务, 传输话音和视频等视频会议数据, 数据比特率为11 Mbps;

VC9:产生并传输填充数据帧。在任一调度时刻, 如果其他VC中都为空, 则将在VC9中产生一个空数据帧并通过物理信道进行传输。

3.2系统仿真流程图与仿真参数设置

使用MATLAB软件进行系统仿真。对本文提出的基于帧紧迫度的边界可移动虚拟信道动态调度算法和传统动态优先级调度算法 (TDPSA) 及基于帧紧迫度的边界不可移动的调度算法 (scheduling algorithm based on frame urgency, SABFU) 进行仿真比较。所谓SABFU算法指的是同步虚拟信道与异步虚拟信道调度过程与本文提出的算法相同, 但是二者之间的边界是不可移动的。三种算法仿真流程图如图4~图6所示。

评价虚拟信道调度算法对系统性能的影响指标主要有:

1) 平均调度时延:某一虚拟信道在统计时间段内所有数据帧时延的平均值。用于反映调度算法对该信道实时性的平均效应。

2) 最大时延:某一虚拟信道在统计时间段内各帧时延的最大值。

3) 信道利用率:在统计时间段内物理信道传输的有效帧数与总传输帧数的比值。

4) 系统平均调度时延:在统计时间段内在物理信道里传送的所有数据帧时延的平均值。

5) 系统最大时延:在统计时间段内在物理信道里传送的所有数据帧时延的最大值。

6) 系统剩余量:在统计时间段内, 所有虚拟信道缓存中数据帧的数量。

仿真参数设置如下:

1) 总仿真时间T=1 s, 采样观察时刻T_S_time=0.8 s。

2) 物理信道下行链路的传输速率 (单位:Mbps) 的取值范围是285~300。

3) VC1-VC5虚拟信道中的CCSDS包到达时间按泊松分布到达, MPDU的包区长度为lmp=8 000bits, VC6~VC8为一定速率的数据流。

4) 各虚拟信道参数设置如表1所示。

4.3仿真结果与分析

得到仿真结果如图7~图12所示。

从仿真结果可以看出, 与TDPSA算法相比, 本文提出的算法除了重要性一般的VC6的平均调度时延略高之外, 降低了其他各个虚拟信道的平均调度时延、最大时延以及系统平均时延、最大时延, 降低了系统剩余量, 明显提高了信道利用率。如当下行速率为2.88 Mbps时, TDPSA算法的信道利用率为0.976 5, 本文提出新算法的信道利用率为0.979 3, 新算法比TDPSA算法的信道利用率提高了0.3%;而TDPSA算法的系统平均时延、最大时延和剩余量分别为1.416×10-3s、1.474×10-2s、87.4, 新算法的系统平均时延、最大时延和剩余量分别为1.068×10-4s、6.571×10-4s、5.8, 即新算法的系统平均时延、最大时延和剩余量比TDPSA算法的系统平均时延、最大时延和剩余量分别降低了92.4%、95.7%、93.4%。因此, 其性能明显优于TDPSA算法。另一方面, 与SABFU算法相比, 本文提出的算法在信道利用率、系统最大时延、系统剩余量等方面性能基本持平, 而对于系统中各VC尤其是重要性要求高的VC (如VC1~VC4) , 在平均时延、最大时延性能上也有一定程度的提高。如当下行速率为2.85 Mbps时, 对于VC2, SABFU算法的平均时延、最大时延分别为2.381×10-5s、1.1×10-4s, 新算法的平均时延、最大时延分别为2.335×10-5s、1.091×10-4s, 新算法的平均时延、最大时延比SABFU算法的平均时延、最大时延分别降低了1.9%、0.8%。综上所述, 本文提出的算法明显优于传统动态调度算法和边界不可移动的虚拟信道调度算法。

4结论

本文提出了一种新的基于帧紧迫度的边界可移动虚拟信道调度算法, 该算法具有如下特点:

1) 根据信源数据类型将虚拟信道划分为同步虚拟信道和异步虚拟信道。

2) 同步虚拟信道采用轮询调度策略, 异步虚拟信道采用基于帧紧迫度的调度策略, 真实记录了VC中各帧的等待时间, 与传统动态调度算法相比, 降低了各个虚拟信道的平均时延, 最大时延以及系统平均时延、最大时延、剩余量, 从而明显地提高物理信道利用率。

3) 通过调度规则, 在同步时隙无有效同步数据时, 调用其他同步数据或异步数据占用该同步时隙, 与边界不可移动的虚拟信道调度算法相比, 降低了系统中对时延要求高的虚拟信道的平均时延、最大时延。

4) 更适合在空间链路中传输多种不同类型的数据。

综上所述, 本文提出的算法明显优于传统动态调度算法和边界不可移动的虚拟信道调度算法。

参考文献

[1] 方炎申, 邹凯, 陈英武, 等.卫星通信系统星上处理中的调度问题及其算法.计算机仿真, 2005;22 (5) :35—37Fang Yanshen, Zou Kai, Chen Yingwu, et al.Scheduling problem&algorithm for on-board disposal of satellite communications system.Computer Simulation, 2005;22 (5) :35—37

[2] 陈晓敏, 孙辉先.有效载荷数据管理系统新技术实验.中国空间科学技术, 2002;22 (1) :53—58, 69Chen Xiaomin, Sun Huixian.The design of FY-2 satellite Transpohder.Chinese Space Science and Technology, 2002;22 (1) :56—62

[3] 武文红, 李健, 许春凤.AOS多路复用功能几个关键问题的研究.微计算机信息, 2006;22 (30) :102—104Wu Wenhong, Li Jian, Xu Chunfeng.Analyse of several key problem of muliplexing in advanced orbiting systems.Micro Computer Information, 2006;22 (10) :102—104

[4] 王向晖, 王同桓, 李宁宁, 等.一种AOS遥测源包多路调度算法.航天器工程, 2011;20 (5) :83—87Wang Xianghui, Wang Tonghuan, Li Ningning, et al.An efficient algorithm of multiplexing TM service based on the AOS.Spacecraft Engineering, 2011;20 (5) :83—87

[5] Riha A P, Okino C.An advanced orbiting systems approach to quality of service in space-based intelligent communication.networks.Proc of IEEE Aerospace, 2006

可调度分析 篇7

关键词:任意可分负载,动态调度,并行计算

0引言

网格计算技术可以融合各种资源和服务, 在形成超大规模虚拟计算机的同时也将地域分布极广的人和组织联合起来, 为他们提供了一个资源共享、相互协作和交流的平台。要想获得一个高效运行的网格环境, 并行计算时任务调度效率的高低是关键因素之一。在并行计算领域, 处理的任务类型有所不同, 主要分为不可任意划分负载和任意可划分负载。与不可任意划分的任务相比, 后者可以被划分成相互独立的子任务, 由于这些子任务没有相互依赖的关系, 因此各个节点在处理任务的过程中不会产生额外的通讯开销。在图像处理、数据挖掘、信号处理等领域中, 很多应用[1,2,3]都具有任意可划分的特性 (在实际中存在最小的划分单元) 。

绝大多数任意可分任务的调度算法都是针对静态的计算资源, 这类资源的处理能力和网络带宽均是恒定的, 这些算法主要是按照一个特定的调度时序和调度轮数列出闭合式方程组, 通过求解方程组得到各个阶段调度器向每个节点分发的数据量大小, 使得各个节点在整个任务完毕之前均无空闲状态[4]。而对于动态资源, 由于其处理能力和网络带宽均是不可预知的动态变化, 因此很难提前确定一个恰当的调度时序。这方面的研究相对静态资源来说较少, 早期的有DA1、DA2算法[5], 近期主要是DLT算法[6]。但由于资源的动态特性导致调度算法不可能准确无误地预测各个节点上数据块的完成时间, 从而出现的通信竞争使得多个节点上会出现空闲时间, 因此调度效率会受到很大的影响。

本文提出一种针对动态资源的任意可分任务的调度算法PBDLS, 它利用探测技术来预测工作节点当前的状态, 并提出“任务预存”技术, 用来填补由于任务完成时间预测不准而在多个节点上出现的空闲时间, 与传统动态算法相比能够大大提高任务的调度效率。

1计算平台模型

本文研究的目标是由一个master和N个worker构成的星型网络拓扑计算平台, 如图1所示。对于一个可任意划分的任务, worker在处理完本轮所接收的任务后, 会给master返回结果数据, 而master以串行传输的方式发送、接收数据, 即同一时间内发送、接收操作不可重叠, master也不参与任务处理。对于任意一个worker, 计算时间可以与数据的发送、接收时间重叠。

2算法描述

2.1调度模型

对于一个worker, master到第i个worker的传输速率记为Bi;第i个worker向master返回数据的传输速率记为Ri;第i个worker的计算能力记为Si。在介绍PBDLS算法前, 需要先说明一下算法对于工作节点worker的计算能力和传输带宽的估测方法。如图2所示, 对于一个给定量的任务在一个worker上的处理过程分为任务分发、处理和回收三个节点, 则在算法需要记录几个变量:任务的启动时间STT (Start Time of Task) , 任务分发时消耗的通信时间DCT (Duration of Communication Task) , 任务所需的处理时间DPT (Duration of Processing Task) , 结果数据返回时间DRT (Duration of Returning Task) 。需要注意STT是一个时间点信息, 其余的的都是时间长度信息。

在实际应用中, 对于一个任务来说STT和DCT可以在主节点上分发任务时获得, DPT可以附加在返回数据中, 即数据返回完成后获得。由于DPT信息相对于返回数据来说非常小, 因此附加DPT对返回数据通信时间所造成的影响可以忽略。最后DRT信息在数据返回完成后可以获得。

对于一个已完成的大小为X的任务, 通过测量信息所获的的计算能力值为:

Sie=X/DPTi (1)

所获得的从主节点到Pi的传输带宽为:

Bie=X/DCTi (2)

所获得的从Pi到主节点的传输带宽为:

Rie=X/RCTi (3)

2.2PBDLS算法

PBDLS算法分为两大阶段:初始探测预存阶段和多轮调度阶段。

初始探测预存阶段 master首先依次向每个worker发送两轮少量任务, 每个worker每轮接收的任务量相同, 记为η/2, 然后等待worker返回处理结果。该阶段主要是两个目的, 首先第一轮的少量任务是为了对各个worker进行性能探测, 即通过测量该任务的执行时间和数据传输时间可以获得当前worker的计算和传输能力的估测值, 利用这些估测值可以指导后续阶段任务的发送。第二轮少量任务的发送是为了填补第一轮任务在完成后进行数据返回时所留下的该worker上的计算空闲。接下来是多轮调度阶段。

多轮调度阶段 该阶段master对请求返回数据的worker进行处理并向该worker发送一定量的新任务, 并期望该轮新发送任务在一个给定的时间τ内完成。则对于第i个worker, 其第j轮所接收的任务大小Li, j:

Li, j=τ/ (1/Bi, j-1+1/Ri, j-1+1/Si, j-1) (4)

另外, 由于所研究的模型中master不能并行收发数据, 因此master在处理完一个传输请求后, master的处理队列中可能有以下三种情况:有一个worker在等待返回数据;有多个worker在等待返回数据;没有worker等待返回。

对于第一种情况, master正常处理该请求, 并根据式 (4) 所计算出来的值向该节点发送新的任务。

对于第二种情况, master的处理队列这里采用了FIFO (First In First Out) 的结构, 因此优先处理先请求返回的worker。

对于第三种情况, 传统的算法处理都是master不做任何操作直到有请求到来, 而PBDLS算法在这种情况下会做以下处理:

设变量ntaski为第i个worker上当前的任务数, 如果ntaski≤1, 则让master再次向每个节点发送一定量任务, 发送量同该节点上轮的相同。如果ntaski>1, 则master不做任何操作。这样的处理方式同初始探测预存阶段的目的相同, 即利用多存一个任务来填补后续可能出现的计算空闲时间。同时由于ntaski条件的限制, 不会让某个worker缓存过多的任务, 从而造成负载过度失衡, 影响整体的调度效率。

图3给出了PBDLS算法在四个动态变化的worker上运行示例图。可以看到master首先顺次发送两轮任务, 其中第二个worker首先返回任务, 由于该节点上还有一个缓存任务, 所以该节点在返回第一轮的处理结果时继续处理缓存的任务, 因此填补了由于等待收发任务所形成的计算空闲, 提高了调度效率。

从上面对PBDLS算法的描述可以看出, 该算法是根据上一轮任务的发送和执行时间来获取估测值, 从而决定下一轮任务发送的大小, 同时在初始探测预存阶段和多轮调度阶段中按照一定的规则进行任务预存, 尽可能地填补由于任务收发而在各节点上形成的计算空闲时间, 进而大大提高了调度效率。

3对比算法

我们将用三种算法 (DA1、DA2和DLT) 与PBDLS算法比较。

DA1算法按照一个预先给定的访问时间值进行任务发送, 但是该算法需要在算法启动时预先知道动态计算资源当前的确切状态, 这与实际需求仍有些差距。

DA2算法是在每轮向各个worker发送固定大小的任务, 可以明显地看出, 由于没有自适应调整机制, 该算法在网络环境变化较大的时候其性能会快速下降。

DLT算法利用探测技术来预测网络中worker的工作状态, 把任务分多个阶段向各个worker发送, 尽量保证每个阶段的任务都同时完成。该算法在忽略任务返回量所占用的传输时间的情况下, 具有较好的调度效率, 否则, 由于返回时间的存在, 在一个特定阶段内, 任务只能一次返回, 从而会形成大量的计算空闲时间。

4实验结果与分析

利用SimGrid工具进行了仿真, 该工具可以自定义生成动态的网络环境, 即网络中的各个节点的计算能力及传输带宽都随机变化。比较算法是DA1、DA2和DLT算法。

仿真环境是一个具有10个worker的行星网络, 各个worker的计算能力与传输带宽随机变化, 其最大计算能力S=1任务/秒, 最大传输带宽B=R=30任务/秒, 总任务量Ltotal=2000, η=0.05, 数据返回比δ=1, 即一个任务执行完后得数据返回量与任务量相等。

用SimGrid生成两大组动态网络环境:低背景负载和高背景负载。低背景负载下, 计算能力和网络带宽的平均被占用率约为12.5%;高背景负载下计算能力和网络带宽的平均被占用率约为76.3%。

图4和图5分别给出了低、高背景动态负载下PBDLS与三种算法DA1、DA2、DLT的比较结果。两图中的纵坐标“相对处理能力T”是“理想完成时间”与调度仿真时间与的比值。“理想时间”指忽略所有传输时间时, 任务并行运行下的完成时间。设ϕ为表示某个后台负载率, 则理想完成时间大约为Ltotal (1-ϕ) SΝ。两图中横坐标的参考调度轮数M定义如下:

Μ=LtotalLΝ (5)

其中L为多轮调度阶段每个worker首次的发送量, N为worker的数量。由于对于任务可分任务的调度来说, 多轮调度的方式可以在各个worker之间形成计算时间覆盖传输时间的效果, 尤其是在静态多轮调度研究中, 适当的调度轮数下可以最大程度地进行时间覆盖, 从而整体上大大缩短收发任务时所形的计算空闲, 可以有效地提高任务执行效率。因此我们在这里引入参考调度轮数M, 即在动态环境下期望任务调度在几轮后结束, 通过调整M可以对算法进行更加全面的观察。

图4和图5中的每个点都是10组实验的平均值, 即每个点都按照对应的平均背景负载率生成10组动态网络环境进行仿真, 然后取其平均值的结果。从仿真实验结果可以看出, PBDLS算法整体上明显优于另外三种算法。同时PBDLS算法的, T随着参考调度轮数M的增加先上升后下降。这主要是因为在M较小时, 每个worker的初始发送量L较大, 这样PBDLS不能依靠足够的调度轮数去完成“时间覆盖”操作, 因此整体任务完成效率较低。M过大的时候, 由于L的取值过小, 虽然可以完成一些“时间覆盖”, 但是由于动态环境的不可预知性, 出现计算空闲的几率相应的也大大提高, 因此任务处理性能反会下降。

5结论

PBDLS算法针对动态网络环境, 通过探测技术对网络中的各个节点的计算能力和网络带宽进行跟踪, 同时提出“任务预存策略”, 尽可能地填补由于预测偏差而出现的计算空闲时间, 与同类算法相比, 大大提高了调度算法的效率, 且具有更加稳定的性能。

参考文献

[1]康雨, 闫相国, 郑崇勋, 等.医学可视化网格平台的设计与实现[J].西安交通大学学报, 2007, 41 (8) :1000-1002.

[2]Kwangil K, Robertazzi TG.Signature search time evaluation in flat filedatabases[J].IEEE Trans on Aerospace and Electronic Systems, 2008, 44 (2) :493-502.

[3]Hung T G, Robertzzi T G.Scheduling nonlinear computational loads[J].IEEE Trans on Aerospace and Electronic Systems, 2008, 44 (3) :1169-1182.

[4]Bharadwaj V, Ghose D, Man V, et al.Scheduling divisible loads in par-allel and distributed systems[M].Los Alemitos, USA:IEEE ComputerSociety Press, 1996.

[5]Drozdowski M.Selected Problems of Scheduling Tasks in MultiprocessorComputing Systems[M].Insytut InformatYki Plitechnika PoznanskaPress, 1997.

可调度分析 篇8

日本大地震造成的福岛核电站核燃料泄漏事件使全球出现核恐慌,国际社会对于核电的认识也在发生改变,在安全与绿色之间寻求平衡,风能、太阳能、水能和传统的火电将被重新认识。在过去的一段时间,以风能为代表的可再生能源装机容量保持了迅猛的增长并将可能进一步大规模增长。维基百科全书显示,截至2011年3月底,我国风电累计装机容量已达到4.2×107 k W,但是落后的电网建设和调度管理让将近1/4的风电设备处于空转状态,风电产能浪费问题日趋严重。其主要原因之一是由于风能等可再生资源具有间歇性、随机性和反调峰性[1,2,3,4,5,6],大规模并网后,需要在原来的运行基础上额外安排一定容量的旋转备用以响应间歇式电源功率的随机波动,这会给电力系统安全调度带来负面影响。

为了平抑风电场的间歇性和随机性,很多文献从不同的角度考虑了可再生资源的间歇式发电问题,从技术层面来分析大致可以分为以下6种方式:

a.提高风力发电系统短期功率预报精度[7,8],尽可能减少由于风电接入对系统调峰容量增量的需求;

b.完善风机并网技术标准,引导产业开发适应电网要求的装备,使风机具有低电压穿越和有功、无功控制等技术[9];

c.允许放弃一定的边际电量,降低电网的总体调峰需求和成本,避免电力系统为保障电网安全而增加昂贵的调峰边际成本[10];

d.利用可中断负荷等用户激励响应,减少负荷需求,变相增加系统调峰容量[11];

e.在更广域的范围内配置风电,增强系统调节能力[12];

f.加快储能等新兴能源技术的发展[13,14,15]。

事实上,除了可以采用上述方法抑制风电场间歇性和随机性,还可以在现有的电力生产条件下,加大大容量燃煤机组等常规机组的调峰深度,充分挖掘下调备用空间,但平抑风电间歇性除了要满足负荷和功率平衡约束、发电机组的技术约束以及足够的旋转备用外,还应该具有较强的负荷跟踪能力,而大容量燃煤机的负荷跟踪能力较差,因此文中拟结合大容量燃煤机和可中断负荷建立风电场调度优化模型。一方面可以充分利用经济手段,加大大容量燃煤机组的深度调峰;另一方面充分利用可中断负荷,快速跟踪风机的出力,缓解系统的调频压力。本文拟针对上述问题,提出计及大容量燃煤机组深度调峰和可中断负荷的风电场调度模型,在现有电网条件和电源结构下提高电网消纳大规模间歇式电源的能力。

1 深度调峰与可中断负荷

2006年11月,国家电监会对并网发电厂辅助服务的管理明确规定,要求各区域电监机构结合本区域系统特点出台实施细则,将调峰辅助服务分为无偿调峰和有偿调峰。无偿调峰是机组应达到的基本调峰能力,不进行补偿;基本能力之上的为有偿调峰,采用事先确定的补偿方案。我国的燃煤机组具有很高的装机容量比例,如果能在现有补偿框架下,充分利用经济手段,加大大容量燃煤机组的调峰深度,充分挖掘现有下调备用空间,将是平息风电功率波动的最有效的方式之一,但是大容量燃煤机组深度调峰会面临安全性和经济性两方面的问题。

从安全性角度考虑,大容量燃煤机组深度调峰将增加设备磨损、疲劳和损伤,降低设备安全性和寿命。标识机组安全性的指标主要包括2个,即寿命损耗和最大降负荷速率。从经济性角度考虑,机组能耗特性与负荷量是呈U型变化关系的,过低与过高的负荷量都会造成机组经济性能降低,增大发电成本。因此利用大容量燃煤机组深度调峰平抑风电功率波动应该从2个角度3个方面来考虑,即机组寿命损耗、最大降负荷速率以及机组能耗特性。

可中断负荷能够根据系统的调度指令,减少负荷需求量。当风力机组出力迅速下降时,切除可中断负荷能有效缓解系统的调频压力,变相增加系统旋转备用容量。可中断负荷具有响应速度快、经济性高等优点,对于可中断负荷主要根据用电可中断合同进行建模。

风电机组有功出力变化直接与风速变化相关,出力上升速度可通过调节燃煤机组出力、风轮角度等技术手段加以应用,但是如果风停止,风电机组出力的下降速度是没有任何手段能够调节的,极端情况下风电机组出力可在数分钟内从满发降到零值,这对电网备用容量的调节速率提出了更高的要求,通常的火电机组无法胜任。深度调峰与可中断负荷可在不同的时间尺度下平抑风电场功率波动,前者可调容量大,但响应速度慢,经济性较差;后者可调容量小,但响应速度快,经济性较好。两者之间互为补充,增大大规模风电的接入能力。需要注意的是,利用大容量燃煤机组深度调峰平抑风电波动时,首先需要深刻了解深度调峰机组的调峰性能,提前做好危险点分析与预控措施,做好事故处理预案并进行演练;然后可利用日负荷曲线和典型风电出力曲线,结合优化结果安排调度方案。

2 优化模型

从上述分析可知,如果从经济性来考虑调峰问题,那么优化目标可定义为深度调峰费用和可中断负荷费用最小化。深度调峰费用需要从机组煤耗特性、单位发电容量补偿费用以及机组寿命损耗3个方面考虑;可中断负荷费用则包含负荷备用费用和实际发生的负荷损失补偿2个内容。通过深度调峰和负荷中断方式可以实现含间歇式电源出力的电力系统功率平衡,但是会改变电力系统的潮流,使得电力系统网损增大,应将网损最小化作为优化目标之一。因此可将优化目标定义为

其中,F为调峰的总费用;T为研究周期内的总小时数;N为系统内常规发电机的总数;Pit为第i台发电机在时段t的输出有功功率;M为系统内可中断负荷数;Pjt为第j个可中断负荷在时段t的负荷损失;h(P)为当前潮流下系统中的网损;C为折算为经济指标的系数;f为该发电机对应的深度调峰费用;g为该负荷损失的补偿费用。

其中,a、b、c分别为运行成本函数的系数;Petp i为有偿深度调峰容量,其大小为调峰总容量减去无偿调峰容量;d为深度调峰时的经济补偿系数,也包括了机组寿命损耗补偿费用;e为可中断负荷的赔偿系数。

约束条件则包括动态约束、静态约束以及不等式约束。动态约束主要为发电机爬坡率约束:

其中,αidown为机组出力下降率;αiup为机组出力爬坡率。

静态约束则包括潮流方程约束、发电机出力约束、电压幅值约束、线路潮流约束和可中断负荷量约束:

其中,N为发电机的个数;Nw为风电机组的个数;Dt为负荷在t时刻的大小;Pimin和Pimax分别表示机组i的最小和最大有功功率;Qit表示发电机i在t时刻的无功出力,Qimin和Qimax分别表示机组i的最小无功功率和最大无功功率;Ui表示节点i的电压,Uimin和Uimax分别表示节点i的最小电压和最大电压;P ibranch表示支路i的潮流,Pibranch,min和Pibranch,max分别表示支路i的最小潮流和最大潮流。

3 模型求解

文中利用内点法求解优化调度模型。求解非线性规划首先需要构造如下函数:

其中,f(X)为目标函数;G(X)为等式约束;H(X)为不等式约束;λ、μ为对等式和不等式约束的拉格朗日乘子;γ为扰动因子;Z为松弛变量;ni为不等式维数。

上述方程对各个变量偏微分方程如下:

Hessian矩阵则可写为

上述拉格朗日最优KKT条件为

利用牛顿-拉夫逊法求解上述方程:

通过变换可得:

将式(20)和式(21)代入式(19),得出:

通过如下步骤进行求解:

a.利用式(22)计算△X和△λ;

b.利用式(21)计算△Z;

c.利用式(20)计算△μ。

在求解的过程中,为了得到严格的可行解,提出使用如下仿射步长:

其中,ξ为固定比例因子,本文取0.999 95。

变量的更新规则如下:

4 算例

以新英格兰39节点测试系统为例,对文中算法进行验证。该系统共包含10台发电机,假定第5台发电机为风力发电机,系统的发电机相关参数如表1所示。系统可中断负荷共有3个,分别位于母线3、5和21,可中断负荷的费用按5 000苊/(MW·h)补偿。

图1和图2分别给出了某区域电网负荷预测曲线和典型风机出力曲线,接下来结合该数据和新英格兰39节点测试系统对文中算法进行分析。从图中可以看出负荷最小值在凌晨1点左右,最大值在晚上8点左右;而风机出力最大值在凌晨1点、中午12点及晚上8点左右,风力最小值在晚上8点左右。需要特别注意的是,在凌晨1点风机出力最大而负荷最小,在晚上8点左右风机出力最小而负荷最大,应将此2种情况作为典型情况进行分析。

为了证明文中算法的有效性,利用场景分析法进行分析以下4种典型场景。

a.场景1:风机出力最大而负荷最小,可中断负荷不参与调峰。

b.场景2:风机出力最小而负荷最大,可中断负荷不参与调峰。

c.场景3:风机出力最大而负荷最小,可中断负荷参与调峰。

d.场景4:风机出力最小而负荷最大,可中断负荷参与调峰。

在4种场景下优化结果对比如表2所示。从表中可以看出,场景1与场景3的数据相同,说明可中断负荷在场景3下并没有作用,其原因是此时系统负荷较轻,而可中断负荷的赔付高于发电机深度调峰所需要的费用;场景2与场景4相比,可以发现场景4下,其发电的平均费用下降了1.03苊/(MW·h),这是因为此时负荷较重,风力机组由于无风,几乎没有发电,所有的负荷均有煤电机组承担,煤电机组由于投油枪而导致发电成本增加,其增加幅度高于可中断负荷的赔付金额,尽管此时火电机组仍然有备用容量,优化算法还是选用了切断可中断负荷进行优化,使得总发电成本降低。

利用内点法对日前发电计划进行优化的算法如下:首先利用风机出力及负荷预测曲线计算1点钟的优化调度结果,然后利用该结果和机组的爬坡率确定机组下一个小时的发电容量上限及下限,然后逐步求出所有时刻的计及深度调峰和可中断负荷的优化调度模型。文中求出了24小时优化调度总费用:可中断负荷不参与调峰时,总费用为苊1 200 231;可中断负荷参与调峰时,总费用为苊1 140 893。可以看出,当计及深度调峰和可中断负荷优化时,每天可节省费用苊59 338。

5 结语

本文从含大规模风电场电网经济运行角度出发,提出了一种计及大容量燃煤机组深度调峰和可中断负荷的优化调度模型,以新英格兰测试系统为例,设计多个算例场景,分析了不同场景下的优化结果。当计及深度调峰和可中断负荷时,每天可节省费用$59 338,经济效益显著,具有很好的实用价值。

摘要:从含大规模风电场的电网经济运行角度出发,提出了一种计及大容量燃煤机组深度调峰和可中断负荷的优化调度模型。该模型首先从机组煤耗特性、单位发电容量补偿费用以及机组寿命损耗3个方面定义了深度调峰费用,从负荷备用费用和实际发生的负荷损失补偿2个方面定义可中断负荷费用,建立以深度调峰费用、可中断负荷费用及网损费用之和最小的优化目标,利用内点法对含风电场的电网调度模型进行优化。以新英格兰测试系统为例,分析了4种典型场景下的负荷及费用情况,最后给出了日前调度计划优化结果,结果显示节省费用达4.9%,验证了所提算法的可行性和有效性。

上一篇:勘测设计企业知识管理下一篇:汽机诊断系统