一种网络分析应用多用户并发作业调度系统及方法与流程

文档序号:19188245发布日期:2019-11-20 01:44阅读:165来源:国知局
一种网络分析应用多用户并发作业调度系统及方法与流程

本发明涉及电力系统分析和电力系统自动化领域,具体涉及一种基于cpu/gpu集群的网络分析应用多用户并发作业调度系统及方法。



背景技术:

特高压交直流混联大电网的快速发展,跨区跨省电网联系日益紧密。交直流耦合、跨区资源优化配置、局部故障影响全局化、间歇性新能源发电大规模并网、清洁能源消纳等问题要求国、分、省各级调度网络分析应用具备全网统一分析能力和高性能计算能力。网络分析应用分析和评估电网运行情况、分析故障对电网安全运行产生的影响,为其他在线分析应用提供准确的实时数据断面,主要包括状态估计、调度员潮流、灵敏度分析、静态安全分析、短路电流计算、概率潮流等功能。因全网统一网络分析具有服务多样化、仿真模型复杂、计算规模巨大等特点,导致网络分析计算速度低,因此近几年,对网络分析应用的研究主要集中在提升网络分析计算速度和精度方面,以及适应特高压互联大电网一体化运行的计算模式研究。

为提升网络分析计算速度,传统做法主要有两种:一是采用边界等值、模型简化或算法简化等措施。如抗差状态估计对量测坏数据进行了有效处理,但相比传统状态估计方法,其迭代次数增多,计算耗时增加;在进行静态安全分析故障扫描时,先采用直流法潮流进行故障预筛选,再对可能越限的故障进行详细扫描,受算法精度制约,故障漏扫的现象普遍存在;灵敏度分析方面采用基于潮流灵敏度矩阵、分布因子等方法,其计算速度得到了大幅提升,但由于简化了算法,相比摄动法其精度较差。二是为避免模型、算法简化带来的网络分析计算精度问题,近年来有些学者基于多路多核cpu并行计算方法提升网络分析计算速度,该方法一般采用分任务或电网模型分区的粗粒度并行计算方法,受方法并行度和cpu的并行处理能力限制,其对大规模电网分析计算的加速性能存在瓶颈。

综上分析,因为多级调控中心、多用户、多任务网络分析作业对全网统一网络分析计算的高并发请求,导致网络分析计算速度低,不能为其他在线分析应用提供准确的实时数据断面,所以如何提高网络分析计算速度急需解决。



技术实现要素:

为了解决现有技术中所存在的上述不足,本发明提供一种基于cpu/gpu集群的网络分析应用多用户并发作业调度系统及方法。

本发明提供的技术方案是:一种网络分析应用多用户并发作业调度系统,所述系统为由cpu计算节点和cpu+gpu计算节点构成的cpu/gpu集群;

在所述cpu/gpu集群中将任一cpu计算节点作为作业调度管理器,并在其余cpu计算节点和cpu+gpu计算节点上部署作业调度协调服务;

所述作业调度管理器,用于接收多个客户端提交的作业以及为接收到的作业分配计算资源管理;

所述作业调度协调服务,用于跟踪作业运行情况及计算资源使用情况;

所述cpu计算节点和cpu+gpu计算节点,用于计算分配的作业。

优选的,所述作业调度管理器,包括:

作业池、作业调度器和资源管理器;

所述作业池,用于接收多个客户端提交的作业请求,并对多个作业请求按作业调度策略设定的排序原则进行排序,获得作业排序情况;基于所述作业排序情况向作业调度器发起作业计算请求;

所述作业调度器,用于向所述资源管理器发起计算资源请求,并根据资源管理器返回的可用计算资源和作业类别对接收到的作业请求分配计算资源,并向作业调度协助服务按分配原则下发作业分配指令;

所述资源管理器,用于管理计算资源,基于作业调度器发送的资源请求向所述作业调度器返回可用计算资源;

其中,所述作业调度策略为先来先服务+回填算法+优先级调度策略。

基于同一发明构思,本发明还提供了一种网络分析应用多用户并发作业调度方法,包括:

多个客户端向作业调度管理器提交作业请求;

所述作业调度管理器基于多个作业请求以及计算资源情况,对接收到的作业分配计算资源,并向计算集群中的对应计算节点的作业调度协调服务下发分配指令;

所述作业调度协调服务基于分配指令向计算节点发出作业计算命令;

计算节点进行作业计算,并通过作业调度协调服务向作业调度管理器返回计算资源情况和作业运行情况;

所述作业调度管理器基于计算节点返回的作业运行情况向对应客户端返回执行结果;

其中,所述作业调度管理器为cpu计算节点;

所述计算集群包括:多个cpu计算节点和多个cpu+gpu计算节点。

优选的,所述作业调度管理器基于多个作业请求以及计算资源情况,对接收到的作业分配计算资源,并向所述计算资源对应计算节点的作业调度协调服务下发分配指令,包括:

多个客户端向作业池提交作业请求,在作业池中按作业调度策略设定的排序原则对作业进行排序;

作业池根据作业排序情况向作业调度器发起作业计算请求;

作业调度器向资源管理器发起计算资源请求,并根据资源管理器返回的可用计算资源和作业类别对接收到的作业请求分配计算资源,向作业调度协助服务按分配原则下发作业分配指令;

其中,所述作业调度管理器包括作业池、作业调度器和资源管理器;

所述作业调度策略为先来先服务+回填算法+优先级调度策略。

优选的,所述排序原则,包括:

当系统中有状态估计应用正在进行计算时,其他作业的计算应该等待状态估计计算结束后进行;

当作业的启动方式存在某时刻某应用的同时触发或同时运行,此时需已运行的作业运行完成后再运行下一个作业;

其中,作业的启动方式包括:周期运行、事件触发运行和人工启动。

优选的,所述分配原则,包括:

作业分配原则和资源分配原则。

优选的,所述作业分配原则,包括:

根据计算资源情况配置可同时运行的最大作业数量;

基于作业的配置文件分配计算节点;

其中,状态估计、调度员潮流采用cpu并行加速,静态安全分析、摄动法潮流计算、遮断容量扫描采用cpu+gpu并行加速。

优选的,所述资源分配原则,包括:

对于采用cpu并行的网络分析作业,优先选择仅具有cpu的计算节点,若cpu计算节点无空闲,则选择空闲的cpu+gpu计算节点进行计算;

对于采用cpu+gpu并行加速的网络分析作业,选择cpu+gpu异构计算节点进行计算;

为减少通信延迟和通信耗时,同一个网络分析作业尽量在同一个计算节点进行计算。

优选的,所述计算节点进行作业计算,并通过作业调度协调服务向作业调度管理器返回计算资源情况和作业运行情况,包括:

计算节点进行作业计算,并通过上传心跳分别向资源管理器上报计算资源情况、向作业调度器上报作业运行情况;

作业调度器将作业运行情况发送至作业池,为作业排序提供依据。

优选的,所述作业调度协调服务基于分配指令向计算节点发出作业计算命令,还包括:

当作业出错或超时时,强制结束异常作业,并将作业情况上报至作业调度管理器。

与最接近的现有技术相比,本发明提供的技术方案具有以下有益效果:

本发明提供的技术方案,所述系统为由cpu计算节点和cpu+gpu计算节点构成的cpu/gpu集群;在所述cpu/gpu集群中将任一cpu计算节点作为作业调度管理器,并在其余cpu计算节点和cpu+gpu计算节点上部署作业调度协调服务;所述作业调度管理器,用于接收多个客户端提交的作业以及为接收到的作业分配计算资源管理;所述作业调度协调服务,用于跟踪作业运行情况及计算资源使用情况;所述cpu计算节点和cpu+gpu计算节点,用于计算分配的作业。可以满足多级调控中心、多用户、多任务网络分析作业对全网统一网络分析计算的高并发请求,能为其他在线分析应用提供准确的实时数据断面,提高了网络分析计算速度。

本发明提供的技术方案,通过基于cpu/gpu集群的网络分析应用多用户并发作业调度方法,负责作业从用户提交开始直到给用户返回执行结果的全部过程,以及计算资源的收集、组织、监控和访问许可控制,从而满足同构及异构计算环境下多级调控中心对全网统一网络分析计算的高并发请求,解决多级调度、多用户、多任务网络分析作业调度问题。

附图说明

图1为本发明多用户并发作业调度的流程图;

图2为本发明多用户并发作业调度的详细流程图;

图3为本发明实施例中4个用户并发作业调度的流程图。

具体实施方式

为了更好地理解本发明,下面结合说明书附图和实例对本发明的内容做进一步的说明。

在网络分析应用中计算速度一直存在瓶颈,从2007年开始,gpu逐步被应用于通用科学计算,随着nvidia公司推出了统一编程架构(computeunifieddevicearchitecture,cuda)和第3代专用计算卡,gpu已经成为最重要的高性能并行计算(highperformancecomputing,hpc)技术之一。和多核cpu相比gpu的特点是浮点计算能力强和内存带宽高,是一种面向吞吐优化的硬件体系架构,擅长在大量数据上同时进行相同运算,gpu不擅长加速不规则问题(指计算过程由图和树等复杂数据结构驱动的算法),不规则问题的并行度和计算量可能会剧烈变化,且逻辑分支复杂,不符合gpu的架构。gpu在电力系统分析计算中已有初步的应用研究,目前还没有大规模推广,随着gpu技术的发展进步、相关并行算法研究的进一步开展以及人工智能技术的大量引入,gpu在电力系统分析计算中将有广泛的应用前景,其中利用新型高性能计算软硬件技术,并结合适用的算法和调优应用程序,研究异构多核和同构多核集群环境下的网络分析高性能计算方法是其中一个研究方向。

进一步的,对cpu/gpu在网络分析应用中的适用性分析,包括:

经测试及研究发现,单潮流加速的效果并不是特别理想,随着矩阵规模的增大,逐步出现加速效果,在10000节点处紧获得2倍加速比。考虑到成本效益比,状态估计、调度员潮流应用更适合cpu操作。

批处理潮流的加速效果较好,对于小节点系统,呈现出惊人的加速比,非常适合应用于小规模系统的概率潮流(蒙特卡洛仿真法);对于大节点系统也能得到100倍以上的加速效果,适合灵敏度分析、静态安全分析等应用。

另外,设置多卡gpu和gpu集群时可以有效避免因内存不够导致的无法一次完成所有批量潮流计算的问题,能够进一步提高计算效率。

对于全网统一网络分析具有服务多样化、仿真模型复杂、计算规模巨大等特点,为提升网络分析计算速度,可搭建cpu/gpu计算集群,采用cpu并行加速或cpu+gpu并行加速的方法,实现网络分析计算新能的提升。由于cpu擅长处理复杂逻辑,而gpu具有强大的浮点计算能力,为此各网络分析应用应根据计算类型和计算规模选择其适用性的硬件,同时不同网络分析应用、不同用户、不同调控中心之间存在依赖关系或优先级调度问题,为此需要通过基于cpu/gpu集群的网络分析应用多用户并发作业调度,解决多级调度、多用户、多任务网络分析作业调度问题。

实施例1

本发明提供了一种网络分析应用多用户并发作业调度系统,所述系统为由cpu计算节点和cpu+gpu计算节点构成的cpu/gpu集群;

在所述cpu/gpu集群中将任一cpu计算节点作为作业调度管理器,并在其余cpu计算节点和cpu+gpu计算节点上部署作业调度协调服务;

所述作业调度管理器,用于接收多个客户端提交的作业以及为接收到的作业分配计算资源管理;

所述作业调度协调服务,用于跟踪作业运行情况及计算资源使用情况;

所述cpu计算节点和cpu+gpu计算节点,用于计算分配的作业。

实施例中,所述作业调度管理器,包括:

作业池、作业调度器和资源管理器;

所述作业池,用于接收多个客户端提交的作业请求,并对多个作业请求按作业调度策略设定的排序原则进行排序,获得作业排序情况;基于所述作业排序情况向作业调度器发起作业计算请求;

所述作业调度器,用于向所述资源管理器发起计算资源请求,并根据资源管理器返回的可用计算资源和作业类别对接收到的作业请求分配计算资源,并向作业调度协助服务按分配原则下发作业分配指令;

所述资源管理器,用于管理计算资源,基于作业调度器发送的资源请求向所述作业调度器返回可用计算资源;

其中,所述作业调度策略为先来先服务+回填算法+优先级调度策略。

实施例2

如图1所示,基于同一发明构思本发明还提供了的一种基于cpu/gpu集群的网络分析应用多用户并发作业调度方法,包括:

(一)作业调度流程

在cpu/gpu集群中,指定某cpu计算节点作为作业调度管理器,并部署作业调度服务,实现作业调度和计算资源管理,在其他cpu和gpu计算节点部署作业调度协调服务,用于跟踪作业运行情况及计算资源使用情况。其中作业调度管理器包括作业池、作业调度器和资源管理器。

如图2所示,作业调度流程如下:

(1)客户端提交作业计算需求;

(2)多级调度多用户的网络分析应用作业请求被送到作业池,在作业池中对作业进行排序;

(3)作业池根据作业排序情况向作业调度器发起作业计算请求;

(4)作业调度器向资源管理器发起计算资源请求,并根据资源管理器返回的可用计算资源情况和作业类别,向作业调度协助服务下发作业分配指令;

(5)作业调度协调服务向可用计算节点发出作业计算命令;

(6)计算节点进行作业计算,并通过上传心跳分别向资源管理器上报计算资源情况、向作业调度器上报作业运行情况;

(7)作业调度器将作业运行情况发送至作业池,为作业排序提供依据。

(二)作业调度策略

1、上述作业调度流程的步骤(2)中的作业排序需遵循以下原则:

(1)状态估计是网络分析应用的基础应用,其他网络分析应用需在状态估计计算结果的基础上进行计算,故在实时态下,当系统中有状态估计应用正在进行计算时,其他网络分析应用的计算应该等待状态估计计算结束后进行;

(2)网络分析应用的启动方式包括周期运行、事件触发运行、人工启动,故可能存在某时刻某应用的同时触发或同时运行,此时同样需已运行的某应用作业运行完成后再运行下一个作业;

2、上述作业调度流程的步骤(4)中作业分配时需遵循以下原则:

(1)由于存在多系统、多用户、多任务的网络分析作业的同时运行,当作业过多时,可能出现服务器cpu占用过多,甚至cpu占用达100%,从而影响系统的正常运行,为此根据计算资源情况配置可同时运行的最大作业数量;

(2)由于gpu和cpu的体系结构和编程模型存在差异,故不同网络分析应用在软件编程实现之前就已明确实采用cpu并行还是采用cpu+gpu并行,为此通过配置文件设置网络分析应用适用的计算节点。建议状态估计、调度员潮流采用cpu并行加速,静态安全分析、摄动法潮流计算、遮断容量扫描采用cpu+gpu并行加速。

本发明提供的作业分配策略没有针对计算节点硬件本身的计算能力进行任务分配,而是首先结合网络分析应用计算规模和类型选择是采用cpu计算节点还是cpu+gpu异构计算节点,然后才是根据计算节点情况进行任务分配。该方法可以更充分利用不同计算机硬件特性,可更有效的提高网络分析应用计算速度。

3、在上述步骤5中,当网络分析作业出错或超时时,强制结束异常作业,并将作业情况上报至作业调度管理器。

4、为此基于cpu/gpu集群的网络分析应用多用户并发作业调度采用的作业调度策略为先来先服务+回填算法+优先级调度策略,具体如下:

·整体调度策略为先来先服务,满足公平性原则;

·对于周期性启动作业和具有依赖关系的作业,采用回填算法进行调度;

·对于紧急事件启动作业设置较高优先级,采用优先级调度策略。

本发明提供的作业调度策略结合优先级、作业依赖关系或关联关系按照“先来先服务+回填算法+优先级调度策略”对作业进行排序。本发明提供的作业调度策略可有效避免有依赖关系或关联关系的网络分析应用因错误的计算顺序而导致计算结果出错,从而提供网络分析应用的计算准确性;同时用户人员可通过设置作业优先级使紧急作业可插队提前运行,从而按需满足业务需求,为调控业务提供有效的业务支撑。

其中,上述策略的定义如下:

(1)先来先服务(fcfs,firstcomefirstserve)

fcfs是最简单也是最明显的调度策略。所有的作业根据进入排队的顺序开始执行。当队列中的下一个作业不能得到资源开始执行时,fcfs不会去尝试队列中后面的作业。fcfs最大的优点是易于高效实现,而且能够保证系统的公平性,作业的执行顺序是可以预见的。本方法中把按先来先服务生成的队列称为原始队列。

(2)优先级调度(priority)

优先级调度算法是一种比较通用的策略。首先,系统根据各种不同的参数(用户优先级、作业类型等)计算出作业的优先级,然后根据优先级对作业进行排列,生成作业队列,系统根据作业队列来逐一考虑是否运行该作业。优先级策略的使用最好地体现了系统的公平性。本方法中将优先级高的作业按优先级顺序插入原始队列中,形成新的作业队列。对于本领域人员而言,紧急事件即按配置文件预先设置好的。

(3)回填算法(backfilling)

backfilling就是充分利用作业管理系统在作业调度时产生的时间空隙,从作业等待队列中选择合适的作业插入到这段时间段内运行,而不影响预约作业的按时运行,从而有效利用了系统资源,避免系统资源的浪费,提高了系统的利用率和吞吐率。在backfilling算法中,用户需要在提交作业时指定运行该作业所需处理机的个数和其预计运行的时间,一般来说作业所需处理机的数目不会在运行过程中发生改变,因而作业可以用一个矩形来表示,其横轴表示其运行时间,纵轴表示所需要的处理机的个数。

(三)计算资源分配

上述步骤(4)中,计算资源分配遵循以下原则:

(1)对于采用cpu并行的网络分析作业,优先选择仅具有cpu的计算节点,若cpu计算节点无空闲,则选择空闲的cpu+gpu计算节点进行计算;

(2)对于采用cpu+gpu并行加速的网络分析作业,选择cpu+gpu异构计算节点进行计算;

(3)为减少通信延迟和通信耗时,同一个网络分析作业尽量在同一个计算节点进行计算。

本发明所提出的方法能够为同构及异构集群(cpu集群和cpu+gpu集群的混合集群)计算环境下的网络分析应用提供作业调度服务,满足多级调度、多用户、多任务网络分析作业的高并发计算请求,为网络分析应用的快速计算提供技术支撑。

实施例3

本实施例以某cpu/gpu集群有3个cpu计算节点,2个cpu+gpu计算节点(简称gpu计算节点)为例,其中gpu1计算节点有两块gpu计算卡,gpu2计算节点有一块gpu计算卡,某时刻,用户1和用户2人工启动状态估计计算、用户3人工启动调度员潮流计算、用户4人工启动静态安全分析计算,同时用户1周期启动遮断容量扫描,用户3周期启动状态估计计算,同时系统中还有3个正在运行的网络分析计算,分别是:用户1的遮断容量扫描(运行在gpu1计算节点)、用户3的调度员潮流(运行在cpu1计算节点)、用户4的状态估计(运行在cpu2计算节点)。此时作业调度流程如图3所示,图3中采用网络分析应用的英文简称,具体如下:

状态估计:rtnet

调度员潮流:dpf

静态安全分析:ca

遮断容量扫描:scc

具体作业调度流程如下:

(1)发起计算请求。用户1发起rtnet、scc计算请求,分别记为rtnet_1,scc_1;用户2发起rtnet计算请求,记为rtnet_2;用户3发起dpf、rtnet计算请求,记为dpf_3、rtnet_3;用户4发起ca计算请求,记为ca_4。

(2)作业池中形成作业队列。作业池中有3个正在运行的作业,分别为用户1的scc(记为scc_1_r)、用户3的dpf(记为dpf_3_r)、用户4的rtnet(记为rtnet_4_r),则正在运行的作业队列为scc_1_r、dpf_3_r、rtnet_4_r。待计算的作业队列为:rtnet_1、scc_1、rtnet_2、dpf_3、rtnet_3、ca_4。

(3)作业池中作业队列排序。用户1有正在运行的scc_1_r,则周期启动的scc_1需待scc_1_r运行结束后才可启动;用户3有正在运行的dpf_3_r,且dpf基于rtnet结果进行,则人工启动的dpf_3需待dpf_3_r和rtnet_3运行结束后才可启动;用户4有正在运行的rtnet_4_r,且ca基于rtnet的结果进行,则人工启动的ca_4需待rtnet_4运行结束后才可启动;人工启动的优先级高于周期启动。综上,排序后的待计算作业队列为:rtnet_3、rtnet_1、rtnet_2、scc_1、dpf_3、ca_4;其中scc_1、dpf_3、ca_4需暂时挂起,待正在运行的相关依赖作业完成并返回结束信号后启动运行。

(4)作业池根据排序后的作业队列向作业调度器发送作业计算请求。

(5)计算资源请求。作业调度器向资源管理器发起资源请求,资源管理器汇总分析各计算节点的作业调度协调服务反馈的资源信息,并将可用资源信息反馈给作业调度器,其中计算节点gpu1可同时运行2个作业,计算节点gpu2可同时运行1个作业。

(6)作业分配。在计算资源充足的情况下,为提高作业运行效率,作业调度器尽量将作业分配给不同节点,具体分配方案如下:rtnet_3分配给空闲的计算节点cpu3;rtnet_1分配给计算节点cpu1;rtnet_2分配给计算节点cpu2;待scc_1_r运行结束后,将scc_1分配给有空闲资源的gpu计算节点;待dpf_3_r和rtnet_3运行结束后,将dpf_3分配给有空闲资源的gpu计算节点;待rtnet_4_r运行结束后,将ca_4分配给有空闲资源的gpu计算节点。

(7)作业调度协调服务根据作业调度器的作业分配情况启动相关作业,并及时反馈作业计算情况和资源利用情况。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上仅为本发明的实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在申请待批的本发明的权利要求范围之内。

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