首页> 中国专利> 异构集群中视频任务并行化方法、装置及异构集群系统

异构集群中视频任务并行化方法、装置及异构集群系统

摘要

本发明实施例提供了一种异构集群中视频任务并行化方法、装置及异构集群系统,所述方法应用于异构集群中的集群调度器,所述异构集群还包括多个节点,所述方法包括:获取任务缓存队列中每个视频任务的特征参数和每个节点的特征参数;将所述每个视频任务的特征参数和每个节点的特征参数输入预先训练的第一深度Q网络DQN,按照每个视频任务的等候时长的长短顺序,依次确定出所述每个视频任务对应的节点;针对每一视频任务,将该视频任务调度至该视频任务对应的节点,以使该节点对该视频任务包括的多个子任务进行并行化处理。本发明实施例可以提高异构集群在处理视频任务时的数据吞吐量,并减少视频任务的处理时间。

著录项

  • 公开/公告号CN109101339A

    专利类型发明专利

  • 公开/公告日2018-12-28

    原文格式PDF

  • 申请/专利权人 北京邮电大学;

    申请/专利号CN201810931427.1

  • 发明设计人 张海涛;唐炳昌;耿欣;马华东;

    申请日2018-08-15

  • 分类号G06F9/50(20060101);G06T1/20(20060101);

  • 代理机构11413 北京柏杉松知识产权代理事务所(普通合伙);

  • 代理人丁芸;项京

  • 地址 100876 北京市海淀区西土城路10号

  • 入库时间 2023-06-19 07:55:44

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-31

    授权

    授权

  • 2019-01-22

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20180815

    实质审查的生效

  • 2018-12-28

    公开

    公开

说明书

技术领域

本发明涉及视频分析技术领域,特别是涉及一种异构集群中视频任务并行化方法、装置及异构集群系统。

背景技术

近年来,对监控视频、航拍视频以及网络视频等大规模视频的分析需求在不断增加。传统的通用计算方式已经无法满足大规模视频分析任务对计算能力的需求。基于异构集群的视频分析技术结合了分布式技术,以及异构设备的高并行度和高计算效率的特点,是目前对大规模视频进行并行化分析的主流解决方案。通常,异构集群包括多个由CPU(CentralProcessing Unit,中央处理器)+GPU(Graphics Processing Unit,图形处理器)组合而成的异构计算设备。异构集群可以充分利用多个异构计算设备的计算特点,来对大规模视频进行并行化分析。

目前,基于异构集群的视频任务并行化方法通常为:利用异构集群的资源使用率、能量消耗等信息作为调度的依据,将视频任务调度到异构集群的各个节点(即各个异构计算设备)上。

然而现有方法在调度视频任务时,仅仅考虑的是异构集群中各个节点的处理能力,并未考虑到视频任务的特性和视频任务对计算资源的需求,可能会将需要GPU加速的视频任务调度到CPU空闲的节点上,而将需要CPU计算资源的视频任务调度到GPU空闲的节点上,这样,导致无法合理地利用异构集群中各节点的计算资源,进而导致整个异构集群在处理视频任务时的数据吞吐量较低,视频任务的处理时间较长。

发明内容

本发明实施例的目的在于提供一种异构集群中视频任务并行化方法、装置及异构集群级系统,以提高异构集群在处理视频任务时的数据吞吐量,并减少视频任务的处理时间。具体技术方案如下:

第一方面,本发明实施提供了一种异构集群中视频任务并行化方法,应用于异构集群中的集群调度器,所述异构集群还包括多个节点,所述方法包括:

获取任务缓存队列中每个视频任务的特征参数和每个节点的特征参数;其中,任一视频任务的特征参数包括:该视频任务的任务类型,以及该视频任务对应的视频的分辨率和大小;任一节点的特征参数包括:该节点的中央处理器CPU利用率、图形处理器GPU利用率、节点内存使用率、GPU显存使用率、节点上行带宽和节点下行带宽;

将所述每个视频任务的特征参数和每个节点的特征参数输入预先训练的第一深度Q网络DQN,按照每个视频任务的等候时长的长短顺序,依次确定出所述每个视频任务对应的节点;其中,所述第一DQN是根据各样本视频任务的特征参数训练得到的,任一样本视频任务的特征参数包括:该样本视频任务的任务类型,以及该样本视频任务对应的样本视频的分辨率和大小;

针对每一视频任务,将该视频任务调度至该视频任务对应的节点,以使该节点对该视频任务包括的多个子任务进行并行化处理。

第二方面,本发明实施例还提供了一种异构集群中视频任务并行化装置,应用于异构集群中的集群调度器,所述异构集群还包括多个节点,所述装置包括:

第一获取模块,用于获取任务缓存队列中每个视频任务的特征参数和每个节点的特征参数;其中,任一视频任务的特征参数包括:该视频任务的任务类型,以及该视频任务对应的视频的分辨率和大小;任一节点的特征参数包括:该节点的中央处理器CPU利用率、图形处理器GPU利用率、节点内存使用率、GPU显存使用率、节点上行带宽和节点下行带宽;

第一确定模块,用于将所述每个视频任务的特征参数和每个节点的特征参数输入预先训练的第一深度Q网络DQN,按照每个视频任务的等候时长的长短顺序,依次确定出所述每个视频任务对应的节点;其中,所述第一DQN是根据各样本视频任务的特征参数训练得到的,任一样本视频任务的特征参数包括:该样本视频任务的任务类型,以及该样本视频任务对应的样本视频的分辨率和大小;

第一调度模块,用于针对每一视频任务,将该视频任务调度至该视频任务对应的节点,以使该节点对该视频任务包括的多个子任务进行并行化处理。

第三方面,本发明实施例还提供了一种异构集群系统,包括:异构集群中的集群调度器和多个节点,每一节点包括节点调度器;

所述集群调度器用于:获取任务缓存队列中每个视频任务的特征参数和每个节点的特征参数;其中,任一视频任务的特征参数包括:该视频任务的任务类型,以及该视频任务对应的视频的分辨率和大小;任一节点的特征参数包括:该节点的中央处理器CPU利用率、图形处理器GPU利用率、节点内存使用率、GPU显存使用率、节点上行带宽和节点下行带宽;将所述每个视频任务的特征参数和每个节点的特征参数输入预先训练的第一深度Q网络DQN,按照每个视频任务的等候时长的长短顺序,依次确定出所述每个视频任务对应的节点;其中,所述第一DQN是根据各样本视频任务的特征参数训练得到的,任一样本视频任务的特征参数包括:该样本视频任务的任务类型,以及该样本视频任务对应的样本视频的分辨率和大小;针对每一视频任务,将该视频任务调度至该视频任务对应的节点,以使该节点对该视频任务包括的多个子任务进行并行化处理;

所述节点中的节点调度器用于:在接收到所述集群调度器所调度的视频任务后,对该视频任务包括的多个子任务进行并行化处理。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如上第一方面所述的一种异构集群中视频任务并行化方法步骤。

第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如上第一方面所述的一种异构集群中视频任务并行化方法步骤。

本发明实施例提供的方案,预先根据各样本视频任务的特征参数训练得到第一DQN,进而在调度任务缓存队列中的每个视频任务时,在获取了每个视频任务的特征参数和每个节点的特征参数后,将每个视频任务的特征参数和每个节点的特征参数输入训练好的第一DQN,使得第一DQN按照每个视频任务的等候时长的长短顺序,依次确定出每个视频任务对应的节点,并依次将每一视频任务调度至该视频任务对应的节点。由于本发明实施例基于各样本视频任务的特征参数来训练第一DQN,因此,利用训练好的第一DQN确定每个视频任务对应的节点时,充分考虑了每个视频任务的特征参数,并合理地利用异构集群中各节点的计算资源来处理每个视频任务,可以提高整个异构集群在处理视频任务时的数据吞吐量,并减少视频任务的处理时间。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的一种异构集群中视频任务并行化方法的流程图;

图2为本发明实施例提供的一种异构集群中视频任务并行化方法的另一流程图;

图3为本发明实施例提供的一种异构集群中视频任务并行化装置的结构图;

图4为本发明实施例提供的一种异构集群系统的结构示意图;

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了提高异构集群在处理视频任务时的数据吞吐量,并减少视频任务的处理时间,本发明实施例提供了一种异构集群中视频任务并行化方法、装置及异构集群系统。

需要说明的是,本发明实施例提供的一种异构集群中视频任务并行化方法,应用于异构集群中的集群调度器。在该异构集群中还包括多个异构计算设备。任一异构计算设备均可以在一段时间内执行一个视频任务,也可以在一段时间内并行执行多个视频任务。每个异构计算设备均包括至少一个CPU计算单元和GPU计算单元。任一CPU计算单元或GPU计算单元均可以在一段时间执行一个视频任务包括的一个子任务,也可以在一段时间内并行执行相同/不同视频任务包括的多个子任务。本实施例中,可以将一个异构计算设备作为一个节点。集群调度器可以按照一定的调度策略,将需要被执行的视频任务调度至异构集群的某一个节点上,由该节点利用本地的计算资源执行该视频任务。具体的,该节点可以利用本地的CPU计算单元的计算资源,和/或GPU计算单元的计算资源来执行该视频任务。

下面首先对本发明实施例所提供的一种异构集群中视频任务并行化方法进行介绍。

如图1所示,本发明实施例提供的一种异构集群中视频任务并行化方法,可以包括如下步骤:

S101,获取任务缓存队列中每个视频任务的特征参数和每个节点的特征参数。

在实际场景中,如果视频应用系统(例如,监控视频系统、航拍视频系统或网络视频系统等)中有需要被执行的视频任务,视频应用系统可以将需要被执行的视频任务提交至异构集群。异构集群中的集群管理器在接收到视频任务后,可以分析视频任务,得到视频任务的特征参数,并将视频任务调度至集群调度器中的任务缓存队列,同时,集群管理器还可以将视频任务的特征参数发送至集群调度器。集群调度器可以基于视频任务的特征参数,以及异构集群的实时资源状态,将该视频任务调度至异构集群中的某一个节点。具体的,异构集群的实时资源状态可以是:异构集群中每个节点的实时的特征参数。

本实施例中,任一视频任务的特征参数可以包括:该视频任务的任务类型,以及该视频任务对应的视频的分辨率和大小。

其中,视频任务的任务类型可以是:视频压缩处理、视频合并处理或视频去噪处理等视频处理领域中的各种视频处理任务。视频任务对应的视频是指:需要被执行该视频任务的视频,即,对该视频执行该视频任务。视频任务对应的视频的分辨率和大小可以反映出执行视频任务所需要的计算资源,所以,这两个特征参数也是影响视频任务的执行效率的重要参数。也就是说,视频任务的执行效率主要取决于视频任务对应的视频的分辨率和大小。

本实施例中,任一节点的特征参数可以包括:该节点的中央处理器CPU利用率、图形处理器GPU利用率、节点内存使用率、GPU显存使用率、节点上行带宽和节点下行带宽。

可以理解,集群调度器的任务缓存队列中缓存了需要被执行的视频任务。对于该任务缓存队列中的某一个视频任务,集群调度器将该视频任务调度至异构集群中的某一个节点后,就会将该视频任务从该任务缓存队列中删除。

S102,将每个视频任务的特征参数和每个节点的特征参数输入预先训练的第一深度Q网络DQN,按照每个视频任务的等候时长的长短顺序,依次确定出每个视频任务对应的节点。

为了将每个视频任务调度至异构集群中的较为合适的节点上,可以预先根据各样本视频任务的特征参数对第一DQN(Deep Q Network,深度Q网络)进行训练,得到训练好的第一DQN。进而,在训练好第一DQN后,可以将每个视频任务的特征参数和每个节点的特征参数输入训练好的第一DQN,使得训练好的第一DQN确定出每个视频任务对应的节点。其中,任一样本视频任务的特征参数包括:该样本视频任务的任务类型,以及该样本视频任务对应的样本视频的分辨率和大小。

在DQN网络中,将初始状态输入DQN后,确定初始动作,再经过一系列的状态转移,最终可以确定每个状态对应的动作。对应于本实施例中,可以将每一个状态对应一个视频任务,将训练好的DQN确定的每一个状态对应的动作认为是:确定该状态对应的视频任务所对应的节点。经过一系列的状态转移,最终可以确定每个视频任务对应的节点。

基于此,将每个视频任务的特征参数和每个节点的特征参数输入预先训练的第一DQN后,可以按照每个视频任务的等候时长的长短顺序,依次确定出每个视频任务对应的节点。具体的,可以将等候时长最长的视频任务对应为初始状态,将等候时长最短的视频任务对应为最后一个状态,依次确定出每个视频任务对应的节点。

可以理解,由于异构集群中的每个节点可以实时地执行各种视频任务,所以异构集群的资源状态在实时变化,具体地,每个节点的可用计算资源会实时地变化,所以可以基于视频任务的特征参数,以及每个节点的实时的可用计算资源,对每个视频任务进行调度。每个节点的可用计算资源可以用每个节点的特征参数来描述。

在确定每个视频任务对应的节点的过程中,可以按照一定的时间间隔,周期性地确定出每个视频任务对应的节点。在一个周期内,针对一个视频任务,可以获取每个节点的在该周期起始时刻的的特征参数;以所获取的每个节点的特征参数和该视频任务的特征参数,构成该视频任务对应的观测信息;再以上一周期的状态信息、上一周期确定的动作和该视频任务对应的观测信息,构成该视频任务对应的状态信息;将该视频任务对应的状态信息输入训练好的第一DQN中,确定本周期的动作,也即确定该视频任务对应的节点。也就是说,本实施例中,可以将针对一个视频任务,确定出该视频任务对应的节点这一过程作为一个周期。在下一个周期,确定下一个视频任务对应的节点。而且,一个周期对应于下文中提到的一次状态转移。

上述时间间隔可以根据实际需要或异构集群的实际情况来确定。本发明对此不进行限定。

通过周期性地确定每个视频任务对应的节点,可以实时地基于每个节点的可用计算资源和每个视频任务的特征参数,来确定每个视频任务对应的节点。进而可以为每个视频任务确定出较为合适的节点。

第一DON的训练过程将在下文中详细介绍。

S103,针对每一视频任务,将该视频任务调度至该视频任务对应的节点,以使该节点对该视频任务包括的多个子任务进行并行化处理。

通过训练好的第一DQN,确定出每个视频任务对应的节点后,就可以将每一视频任务调度至该视频任务对应的节点。进一步,可以由该视频任务对应的节点利用本地的计算资源来执行该视频任务。

通常,视频任务包括多个细粒度的子任务,因而在本实施例中,任一节点可以对调度至该节点的视频任务所包括的多个子任务进行并行化处理,提高该视频任务的执行效率。

该节点对该视频任务包括的多个子任务进行并行化处理的具体方式将在下文中详细介绍。

本发明实施例提供的方案,预先根据各样本视频任务的特征参数训练得到第一DQN,进而在调度任务缓存队列中的每个视频任务时,在获取了每个视频任务的特征参数和每个节点的特征参数后,将每个视频任务的特征参数和每个节点的特征参数输入训练好的第一DQN,使得第一DQN按照每个视频任务的等候时长的长短顺序,依次确定出每个视频任务对应的节点,并依次将每一视频任务调度至该视频任务对应的节点。由于本发明实施例基于各样本视频任务的特征参数来训练第一DQN,因此,利用训练好的第一DQN确定每个视频任务对应的节点时,充分考虑了每个视频任务的特征参数,并合理地利用异构集群中各节点的计算资源来处理每个视频任务,可以提高整个异构集群在处理视频任务时的数据吞吐量,并减少视频任务的处理时间。

以下对本发明实施例中训练第一DQN的过程进行介绍,第一DQN的训练过程可以包括如下步骤A1-A10:

A1,构建初始的第一DQN,以及初始的第一目标神经网络,并初始化回放内存。

本实施例中,为了训练第一DQN,可以构建初始的第一DQN。在初始的第一DQN中,网络参数的值均为初始值。训练的过程就是不断地优化第一DQN中的网络参数。在DQN网络中,输入初始状态s的状态信息,会确定一个初始动作a,在执行这个初始动作a后,会得到一个奖励值r,然后转移至下一个状态。在DQN网络中,定义了一个动作-值函数Q*(s,a),该动作-值函数可以返回从初始状态s出发,执行初始动作a,再经过一系列状态转移后,得到的累积奖励值。那么,训练的目标是:最大化该累积奖励值。在每一次状态转移后,累积奖励值也相应的更新了。

在训练第一DQN的过程中,为了最大化累积奖励值,可以给出一个累积奖励值真值,将每次更新后的累积奖励值与该累积奖励值真值进行对比,根据对比的结果来更新第一DQN的网络参数。

本实施例中,可以构建初始的第一目标神经网络,由第一目标神经网络确定上述累积奖励值真值。

回放内存中存储有转移样本。关于转移样本,将在后续步骤中介绍。

A2,获取各样本视频任务的特征参数;确定各样本视频任务的执行队列,执行队列为t1,t2,...,tn

其中,任一样本视频任务的特征参数,可以包括:该样本视频任务的任务类型,以及该样本视频任务对应的样本视频的分辨率和大小。

在第一DQN中,由于是进行一系列的状态转移确定各样本视频任务对应的样本节点,所以可以预先确定各样本视频任务的执行队列,按照该执行队列,依次确定各样本视频任务对应的样本节点。确定各样本视频任务的执行队列的方式可以有多种,本发明对此并不限定。

A3,令j=1。

其中,j可以表示上述执行队列中样本视频任务的执行序号。

A4,以样本视频任务tj的特征参数和每一样本节点的当前特征参数向量,构成观测信息x(tj);以状态信息s(tj-1)、动作a(tj-1)和观测信息x(tj),构成状态信息s(tj);其中,任一样本节点的特征参数向量是由该样本节点的中央处理器CPU利用率、图形处理器GPU利用率、节点内存使用率、GPU显存使用率、节点上行带宽和节点下行带宽组成的向量。

样本视频任务tj是上述执行队列中的第j个待被调度的样本视频任务。观测信息x(tj)是样本视频任务tj对应的观测信息。状态信息s(tj)是样本视频任务tj对应的状态信息,也就是整个训练过程中第j个状态的状态信息。

本发明实施例中,设定s(t0)=0,设定a(t0)=0。

A5,将状态信息s(tj)输入第一DQN,以使第一DQN确定动作a(tj),输出由动作a(tj)所确定的样本视频任务tj对应的样本节点;基于样本视频任务tj对应的样本节点,计算动作a(tj)对应的奖励r(tj),并根据状态信息s(tj)和动作a(tj),更新每一样本节点的特征参数向量。

将状态信息s(tj)输入第一DQN后,第一DQN会基于当前的网络参数,确定出动作s(tj),动作s(tj)是样本视频任务tj对应的动作,该动作a(tj)即为:确定出样本视频任务tj对应的样本节点。

确定出样本视频任务tj对应的样本节点,意味着可以由该样本节点来执行样本视频任务tj,那么,在该样本节点执行样本视频任务tj的过程中,该样本节点的可用计算资源发生了变化,即该样本节点的特征参数发生了变化,进而使得整个异构集群的数据吞吐量也相应地发生了变化。在本实施例中,可以用异构集群的数据吞吐量的变化情况来表示动作a(tj)对应的奖励r(tj)。具体的,可以获取该样本节点执行样本视频任务tj之前的异构集群的数据吞吐量Tbefore(tj),和该样本节点执行样本视频任务tj之前的异构集群的数据吞吐量Tafter(tj),r(tj)=Tafter(tj)-Tbefore(tj)。从奖励r(tj)的计算式可以看出,如果异构集群的数据吞吐量增加了,可以得到正的奖励值,而且异构集群的数据吞吐量增加越多,奖励值越大,也就说明针对样本视频任务tj的调度决策越好。反之,如果异构集群的数据吞吐量减少了,可以得到负的奖励值,而且异构集群的数据吞吐量减少越多,奖励值越小,也就说明针对样本视频任务tj的调度决策越差。

在该样本节点执行样本视频任务tj的过程中,该样本节点的特征参数发生了变化,所以,可以根据状态信息s(tj)和动作a(tj),更新该样本节点的特征参数。具体的,状态信息s(tj)中包括有该样本节点的变化前的特征参数,根据动作a(tj)可以确定出样本视频任务tj需要消耗的该样本节点的计算资源,即可以确定出该样本节点的特征参数的变化量。那么,可以基于该样本节点的变化前的特征参数和特征参数的变化量,来更新该样本节点的特征参数向量。其他样本节点的特征参数向量可以保持不变。

A6,以样本视频任务tj+1的特征参数和更新后的每一样本节点的特征参数向量,构成观测信息x(tj+1);以状态信息s(tj)、动作a(tj)和观测信息x(tj+1),构成状态信息s(tj+1)。

样本视频任务tj+1是上述执行队列中的第j+1个待被调度的样本视频任务。观测信息x(tj+1)是样本视频任务tj+1对应的观测信息。状态信息s(tj+1)是样本视频任务tj+1对应的状态信息,也就是整个训练过程中第j+1个状态的状态信息。

A7,将转移样本e(tj)存储至回放内存,其中,e(tj)=(s(tj),a(tj),r(tj),s(tj+1))。

从第j个状态到第j+1个状态完成了第j次状态转移,可以将这次状态转移中的相关数据组成一个转移样本e(tj),该转移样本e(tj)是样本视频任务tj对应的转移样本。

A8,从回放内存中随机选取1个转移样本,根据所选取的转移样本,确定第一DQN输出的累积奖励值;根据所确定的累积奖励值和当前第一目标神经网络确定的累积奖励值真值,利用预设的损失函数,计算第一DQN对应的损失值。

进行了一次状态转移后,可以更新累积奖励值。即,进行了一次状态转移后,就可以计算一次累积奖励值,所计算的累积奖励值,可用于计算第一DQN对应的损失值。

本实施例中,可以根据所选取的转移样本,确定第一DQN输出的累积奖励值。具体的,选取出一个转移样本,那么可以根据该转移样本中的状态信息、动作、奖励值和第一DQN的当前网络参数,来确定第一DQN输出的累积奖励值。

预设的损失函数为:L11)=E[(TargetQ1-Q1(s1,a1;θ1))2];其中,L1(θ)表示第一DQN对应的损失值,TargetQ1表示当前第一目标神经网络确定的累积奖励值真值,Q1(s1,a1;θ1)表示第一DQN输出的累积奖励值,θ1表示第一DQN的当前网络参数,s1表示第一DQN的第一个状态的状态信息,a1表示第一DQN确定的第一个动作。

A9,当所计算的损失值不低于第一预设值时,根据所选取的转移样本,更新第一DQN的网络参数,并判断j是否等于多个预定值的一个预定值;若不等于,令j增加1,返回以样本视频任务tj的特征参数和每一样本节点的当前特征参数向量,构成观测信息x(tj)的步骤;若等于,将更新后的第一DQN的网络参数复制到当前第一目标神经网络,以使更新后的第一目标神经网络确定更新后的累积奖励值真值,并令j增加1,返回以样本视频任务tj的特征参数和每一样本节点的当前特征参数向量,构成观测信息x(tj)的步骤。

当所计算的损失值不低于第一预设值时,说明对第一DQN的训练效果还未达到预期的效果,因而可以更新第一DQN的网络参数,继续训练。具体的,可以根据所选取的转移样本中的奖励值,利用梯度下降法来更新第一DQN的网络参数。

更新第一DQN的网络参数后,可以判断j是否等于多个预定值的一个预定值,根据判断结果来确定是否要更新累积奖励值真值。本实施例中,可以将更新后的第一DQN的网络参数复制到当前第一目标神经网络,来更新当前第一目标神经网络的网络参数。由更新后的第一目标神经网络确定更新后的累积奖励值真值。

本实施例中,多个预定值可以是多个依次增加且等差的数值。示例性地,多个预定值可以为:5,10,15,…。这样,就实现了第一DQN每经过一定次数的状态转移就更新累积奖励值真值,例如,每经过5次状态转移就更新累积奖励值真值。

A10,当所计算的损失值低于第一预设值时,结束训练,得到训练完成的第一DQN。

当所计算的损失值低于第一预设值时,说明第一DQN的训练效果达到了预期的效果,训练可以结束,从而得到了训练完成的第一DQN。也就是说,基于训练完成的第一DQN的网络参数,可以确定每个视频任务对应的节点。

一种实现方式中,图1所示实施例中的该节点包括多个计算单元,如图2所示,图1所示实施例中的该节点对该视频任务包括的多个子任务进行并行化处理,可以包括如下步骤:

S201,该节点中的节点调度器获取该视频任务对应的每个子任务的特征参数和每个计算单元的特征参数。

该节点在接收到该视频任务后,可以分析该视频任务,得到该视频任务包括的每个子任务的特征参数。进而该节点的节点调度器可以基于子任务的特征参数,以及该节点的实时资源状态,将子任务调度至该节点中的某一个计算单元。具体的,该节点的实时资源状态可以是:该节点中每个计算单元的实时的特征参数。

本实施例中,任一子任务的特征参数可以包括:该子任务的任务类型,以及该视频任务对应的视频的分辨率和大小。

本实施例中,任一计算单元的特征参数包括:该计算单元的计算资源使用率、内存资源使用率、内存访问速率和数据复制代价。其中,数据复制代价是指将该计算单元所执行的一个子任务复制到另一个计算单元时,所占用的该计算单元的带宽。

S202,该节点中的节点调度器确定每个子任务的执行顺序。

一种实现方式中,确定每个子任务的执行顺序,包括:

根据预先获得的该视频任务的有向无环图,确定每个子任务的执行顺序。

该视频任务的有向无环图中反应了各个子任务之间的依赖关系,一个子任务是有向无环图的一个顶点,有向无环图中的一条边表示这条边的两个顶点之间存在依赖关系。对于一个顶点,只有该顶点的所有源顶点都被执行了,才能执行该顶点。由于基于有向无环图,可以确定出每个顶点的拓扑排序,在该拓扑排序中,只有当一个顶点的全部源节点都出现了,才能出现该顶点。本实施例中,可以将每个顶点的拓扑排序作为每个子任务的执行顺序。其中,对于任一顶点而言,该顶点的源顶点为:与该顶点存在依赖关系且先于该顶点执行的其他顶点。

S203,该节点中的节点调度器将每个子任务的特征参数和每个计算单元的特征参数输入预先训练的第二DQN,按照每个子任务的执行顺序,依次确定出每个子任务对应的计算单元。

为了将每个子任务调度至该节点中的较为合适的计算单元上,可以预先根据各样本子任务的特征参数对第二DQN进行训练,得到训练好的第二DQN。进而,在训练好第二DQN后,可以将每个子任务的特征参数和每个计算单元的特征参数输入训练好的第二DQN,使得训练好的第二DQN确定出每个子任务对应的计算单元。其中,任一样本子任务的特征参数包括:该样本子任务的任务类型,以及该样本子任务对应的样本视频的分辨率和大小。

在DQN网络中,将初始状态输入DQN后,确定初始动作,再经过一系列的状态转移,最终可以确定每个状态对应的动作。对应于本实施例中,可以将每一个状态对应一个子任务,将训练好的DQN确定的每一个状态对应的动作认为是:确定该状态对应的子任务所对应的计算单元。经过一系列的状态转移,最终可以确定每个子任务对应的计算单元。

基于此,将每个子任务的特征参数输入和每个计算单元的特征参数预先训练的第二DQN后,可以按照每个子任务的执行顺序,依次确定出每个子任务对应的计算单元。

可以理解,由于异构集群中的每个节点可以实时地执行各种视频任务,所以异构集群的资源状态在实时变化,具体地,每个节点的可用计算资源会实时地变化,所以可以基于视频任务的特征参数,以及每个节点的实时的可用计算资源,对每个视频任务进行调度。每个节点的可用计算资源可以用每个节点的特征参数来描述。

在确定每个子任务对应的计算单元的过程中,可以按照一定的时间间隔,周期性地确定出每个子任务对应的计算资源。在一个周期内,针对一个子任务,可以获取每个计算单元的在该周期起始时刻的的特征参数;以所获取的每个计算单元的特征参数和该子任务的特征参数,构成该子任务对应的观测信息;再以上一周期的状态信息、上一周期确定的动作和该子任务对应的观测信息,构成该子任务对应的状态信息;将该子任务对应的状态信息输入训练好的第二DQN中,确定本周期的动作,也即确定该子任务对应的计算单元。也就是说,本实施例中,可以将针对一个子任务,确定出该子任务对应的计算单元这一过程作为一个周期。在下一个周期,确定下一个子任务对应的计算单元。而且,一个周期对应于下文中提到的一次状态转移。

上述时间间隔可以根据实际需要或异构集群的实际情况来确定。本发明对此不进行限定。

通过周期性地确定每个子任务对应的计算单元,可以实时地基于每个计算单元的可用计算资源和每个子任务的特征参数,来确定每个子任务对应的计算单元。进而可以为每个子任务确定出较为合适的计算单元。

第二DQN的训练过程将在下文中详细介绍。

S204,该节点中的节点调度器针对每一子任务,将该子任务调度至该子任务对应的计算单元,以使得该计算单元处理该子任务。

通过训练好的第二DQN,确定出每个子任务对应的计算单元后,就可以将每一子任务调度至该子任务对应的计算单元。进一步,可以由该子任务对应的计算单元利用自身的计算资源来执行该子任务。提高该视频任务的执行效率。

以下对本发明实施例中训练第二DQN的过程进行介绍,第二DQN的训练过程可以包括如下步骤B1-B10:

B1,构建初始的第二DQN,以及初始的第二目标神经网络,并初始化回放内存。

本实施例中,为了训练第二DQN,可以构建初始的第二DQN。在初始的第二DQN中,网络参数的值均为初始值。训练的过程就是不断地优化第二DQN中的网络参数。在DQN网络中,输入初始状态s的状态信息,会确定一个初始动作a,在执行这个初始动作a后,会得到一个奖励值r,然后转移至下一个状态。在DQN网络中,定义了一个动作-值函数Q*(s,a),该动作-值函数可以返回从初始状态s出发,执行初始动作a,再经过一系列状态转移后,得到的累积奖励值。那么,训练的目标是:最大化该累积奖励值。在每一次状态转移后,累积奖励值也相应的更新了。

在训练第二DQN的过程中,为了最大化累积奖励值,可以给出一个累积奖励值真值,将每次更新后的累积奖励值与该累积奖励值真值进行对比,根据对比的结果来更新第二DQN的网络参数。

本实施例中,可以构建初始的第二目标神经网络,由第二目标神经网络确定上述累积奖励值真值

回放内存中存储有转移样本。关于转移样本,将在后续步骤中介绍。

B2,获取各样本子任务的特征参数;确定各样本子任务的执行队列,执行队列为q1,q2,...,qi

其中,任一样本子任务的特征参数,可以包括:该样本子任务的任务类型,以及该样本子任务对应的样本视频的分辨率和大小。该样本子任务对应的样本视频是指:包括该样本子任务的样本视频任务对应的样本视频。

在第二DQN中,由于是进行一系列的状态转移确定各样本子任务对应的样本计算单元,所以可以预先确定各样本子任务的执行队列,按照该执行队列,依次确定各样本子任务对应的样本计算单元。确定各样本子任务的执行队列的方式可以有多种,本发明对此并不限定。

B3,令i=1。

其中,i可以表示上述执行队列中样本子任务的执行序号。

B4,以样本子任务qi的特征参数和每一样本计算单元的当前特征参数向量,构成观测信息x(qi),以状态信息s(qi-1)、动作a(qi-1)和观测信息x(qi),构成状态信息s(qi);其中,任一样本计算单元的特征参数向量是由该样本计算单元的计算资源使用率、内存资源使用率、内存访问速率和数据复制代价组成的向量。

样本子任务qi是上述执行队列中的第i个待被调度的样本子任务。观测信息x(qi)是样本子任务qi对应的观测信息。状态信息s(qi)是样本子任务qi对应的状态信息,也就是整个训练过程中第i个状态的状态信息。

本发明实施例中,设定s(q0)=0,设定a(q0)=0。

B5,将所述状态信息s(qi)输入所述第二DQN,以使所述第二DQN确定动作a(qi),输出由所述动作a(qi)所确定的样本子任务qi对应的样本计算单元;基于样本子任务qi对应的样本计算单元,计算所述动作a(qi)对应的奖励r(qi),并根据所述状态信息s(qi)和所述动作r(qi),更新所述每一样本计算单元的特征参数向量。

将状态信息s(qi)输入第二DQN后,第二DQN会基于当前的网络参数,确定出动作a(q1),动作a(q1)是样本子任务qi对应的动作,该动作a(q1)即为:确定出样本子任务qi对应的样本计算单元。

确定出样本子任务qi对应的样本计算单元,意味着可以由该样本计算单元来执行样本子任务qi,那么,在该样本计算单元执行样本子任务qi的过程中,该样本计算单元的可用计算资源发生了变化,即该样本计算单元的特征参数发生了变化,进而使得包含该样本计算单元的目标样本节点的数据吞吐量也相应地发生了变化。在本实施例中,可以用目标样本节点的数据吞吐量的变化情况来表示动作a(qi)对应的奖励r(qi)。具体的,可以获取该样本计算单元执行样本子任务qi之前的目标样本节点的数据吞吐量Tbefore(qi),和该样本计算单元执行样本子任务qi之前的目标样本节点的数据吞吐量Tafter(qi),r(qi)=Tafter(qi)-Tbefore(qi)。从奖励r(qi)的计算式可以看出,如果目标样本节点的数据吞吐量增加了,可以得到正的奖励值,而且目标样本节点的数据吞吐量增加越多,奖励值越大,也就说明针对样本子任务qi的调度决策越好。反之,如果目标样本节点的数据吞吐量减少了,可以得到负的奖励值,而且目标样本节点的数据吞吐量减少越多,奖励值越小,也就说明针对样本子任务qi的调度决策越差。

在该样本计算单元执行样本子任务qi的过程中,该样本计算单元的特征参数发生了变化,所以,可以根据状态信息s(qi)和动作a(qi),更新该样本计算单元的特征参数。具体的,状态信息s(qi)中包括有该样本计算单元的变化前的特征参数,根据动作a(qi)可以确定出样本子任务qi需要消耗的该样本计算单元的计算资源,即可以确定出该样本计算单元的特征参数的变化量。那么,可以基于该样本计算单元的变化前的特征参数和特征参数的变化量,来更新该样本计算单元的特征参数向量。其他样本计算单元的特征参数向量可以保持不变。

B6,以样本子任务qi+1的特征参数和更新后的每一样本计算单元的特征参数向量,构成观测信息x(qi+1);以所述状态信息s(qi)、所述动作a(qi)和所述观测信息x(qi+1),构成状态信息s(qi+1)。

样本子任务qi+1是上述执行队列中的第i+1个待被调度的样本子任务。观测信息x(qi+1)是样本子任务qi+1对应的观测信息。状态信息s(qi+1)是样本子任务qi+1对应的状态信息,也就是整个训练过程中第i+1个状态的状态信息。

B7,将转移样本e(qi)存储至回放内存,其中,e(qi)=(s(qi),a(qi),r(qi),s(qi+1))。

从第i个状态到第i+1个状态完成了第i次状态转移,可以将这次状态转移中的相关数据组成一个转移样本e(qi),该转移样本e(qi)是样本子任务qi对应的转移样本。

B8,从回放内存中随机选取1个转移样本,根据所选取的转移样本,确定第二DQN输出的累积奖励值;根据所确定的累积奖励值和当前第二目标神经网络确定的累积奖励值真值,利用预设的损失函数,计算第二DQN对应的损失值;

进行了一次状态转移后,可以更新累积奖励值。即,进行了一次状态转移后,就可以计算一次累积奖励值,所计算的累积奖励值,可用于计算第二DQN对应的损失值。

本实施例中,可以根据所选取的转移样本,确定第二DQN输出的累积奖励值。具体的,选取出一个转移样本,那么可以根据该转移样本中的状态信息、动作、奖励值和第二DQN的当前网络参数,来确定第二DQN输出的累积奖励值。

预设的损失函数为:L22)=E[(TargetQ2-Q2(s2,a2;θ2))2];其中,L2(θ)表示

第二DQN对应的损失值,TargetQ2表示当前第二目标神经网络确定的累积奖励值真值,Q2(s2,a2;θ2)表示第二DQN输出的累积奖励值,θ2表示第二DQN的当前网络参数,s2表示第二DQN的第一个状态的状态信息,a2表示第二DQN确定的第一个动作。

B9,当所计算的损失值不低于第二预设值时,根据所选取的转移样本,更新所述第二DQN的网络参数,并判断i是否等于多个预定值的一个预定值;若不等于,令i增加1,返回所述以样本子任务qi的特征参数和每一样本计算单元的当前特征参数向量,构成观测信息x(qi)的步骤;若等于,将更新后的所述第二DQN的网络参数复制到当前第二目标神经网络,以使更新后的第二目标神经网络确定更新后的累积奖励值真值,并令i增加1,返回所述以样本子任务qi的特征参数和每一样本计算单元的当前特征参数向量,构成观测信息x(qi)的步骤。

当所计算的损失值不低于第二预设值时,说明对第二DQN的训练效果还未达到预期的效果,因而可以更新第二DQN的网络参数,继续训练。具体的,可以根据所选取的转移样本中的奖励值,利用梯度下降法来更新第二DQN的网络参数。

更新第二DQN的网络参数后,可以判断i是否等于多个预定值的一个预定值,根据判断结果来确定是否要更新累积奖励值真值。本实施例中,可以将更新后的第二DQN的网络参数复制到当前第二目标神经网络,来更新当前第二目标神经网络的网络参数。由更新后的第二目标神经网络确定更新后的累积奖励值真值。

本实施例中,多个预定值可以是多个依次增加且等差的数值。示例性地,多个预定值可以为:5,10,15,…。这样,就实现了第二DQN每经过一定次数的状态转移就更新累积奖励值真值,例如,每经过5次状态转移就更新累积奖励值真值。

B10,当所计算的损失值低于第二预设值时,结束训练,得到训练完成的第二DQN。

当所计算的损失值低于第二预设值时,说明第二DQN的训练效果达到了预期的效果,训练可以结束,从而得到了训练完成的第二DQN。也就是说,基于训练完成的第二DQN的网络参数,可以确定每个子任务对应的计算节点。

相应于上述方法实施例,本发明实施例提供了一种异构集群中视频任务并行化装置,应用于异构集群中的集群调度器,所述异构集群还包括多个节点,如图3所示,所述装置包括:

第一获取模块301,用于获取任务缓存队列中每个视频任务的特征参数和每个节点的特征参数;其中,任一视频任务的特征参数包括:该视频任务的任务类型,以及该视频任务对应的视频的分辨率和大小;任一节点的特征参数包括:该节点的中央处理器CPU利用率、图形处理器GPU利用率、节点内存使用率、GPU显存使用率、节点上行带宽和节点下行带宽;

第一确定模块302,用于将所述每个视频任务的特征参数和每个节点的特征参数输入预先训练的第一深度Q网络DQN,按照每个视频任务的等候时长的长短顺序,依次确定出所述每个视频任务对应的节点;其中,所述第一DQN是根据各样本视频任务的特征参数训练得到的,任一样本视频任务的特征参数包括:该样本视频任务的任务类型,以及该样本视频任务对应的样本视频的分辨率和大小;

第一调度模块303,用于针对每一视频任务,将该视频任务调度至该视频任务对应的节点,以使该节点对该视频任务包括的多个子任务进行并行化。

本发明实施例提供的方案,预先根据各样本视频任务的特征参数训练得到第一DQN,进而在调度任务缓存队列中的每个视频任务时,在获取了每个视频任务的特征参数和每个节点的特征参数后,将每个视频任务的特征参数和每个节点的特征参数输入训练好的第一DQN,使得第一DQN按照每个视频任务的等候时长的长短顺序,依次确定出每个视频任务对应的节点,并依次将每一视频任务调度至该视频任务对应的节点。由于本发明实施例基于各样本视频任务的特征参数来训练第一DQN,因此,利用训练好的第一DQN确定每个视频任务对应的节点时,充分考虑了每个视频任务的特征参数,并合理地利用异构集群中各节点的计算资源来处理每个视频任务,可以提高整个异构集群在处理视频任务时的数据吞吐量,并减少视频任务的处理时间。

可选地,所述该节点对该视频任务包括的多个子任务进行并行化处理,包括:

该节点中的节点调度器获取该视频任务对应的每个子任务的特征参数和每个计算单元的特征参数;其中,该视频任务对应的任一子任务的特征参数包括:该子任务的任务类型,以及该视频任务对应的视频的分辨率和大小;任一计算单元的特征参数包括:该计算单元的计算资源使用率、内存资源使用率、内存访问速率和数据复制代价;

该节点中的节点调度器确定所述每个子任务的执行顺序;

该节点中的节点调度器将所述每个子任务的特征参数和每个计算单元的特征参数输入预先训练的第二DQN,按照所述每个子任务的执行顺序,依次确定出所述每个子任务对应的计算单元;其中,所述第二DQN是根据各样本子任务的特征参数训练得到的,任一样本子任务的特征参数包括:该样本子任务的任务类型,以及该样本子任务对应的样本视频的分辨率和大小;

该节点中的节点调度器针对每一子任务,将该子任务调度至该子任务对应的计算单元,以使得该计算单元处理该子任务。

更进一步地,在图3所示实施例的基础上,本发明实施例所提供的一种异构集群中视频任务并行化装置,还包括:第一训练模块(图中未示出)。

所述第一训练模块用于:

构建初始的第一DQN,以及初始的第一目标神经网络,并初始化回放内存;

获取各样本视频任务的特征参数;确定各样本视频任务的执行队列,所述执行队列为t1,t2,...,tn

令j=1;

以样本视频任务tj的特征参数和每一样本节点的当前特征参数向量,构成观测信息x(tj);以状态信息s(tj-1)、动作a(tj-1)和所述观测信息x(tj),构成状态信息s(tj);其中,任一样本节点的特征参数向量是由该样本节点的中央处理器CPU利用率、图形处理器GPU利用率、节点内存使用率、GPU显存使用率、节点上行带宽和节点下行带宽组成的向量;

将所述状态信息s(tj)输入所述第一DQN,以使所述第一DQN确定动作a(tj),输出由所述动作a(tj)所确定的样本视频任务tj对应的样本节点;基于样本视频任务tj对应的样本节点,计算所述动作a(tj)对应的奖励r(tj),并根据所述状态信息s(tj)和所述动作a(tj),更新所述每一样本节点的特征参数向量;

以样本视频任务tj+1的特征参数和更新后的每一样本节点的特征参数向量,构成观测信息x(tj+1);以所述状态信息s(tj)、所述动作a(tj)和所述观测信息x(tj+1),构成状态信息s(tj+1);

将转移样本e(tj)存储至所述回放内存,其中,e(tj)=(s(tj),a(tj),r(tj),s(tj+1));

从所述回放内存中随机选取1个转移样本,根据所选取的转移样本,确定所述第一DQN输出的累积奖励值;根据所确定的累积奖励值和当前第一目标神经网络确定的累积奖励值真值,利用预设的损失函数,计算所述第一DQN对应的损失值;

当所计算的损失值不低于第一预设值时,根据所选取的转移样本,更新所述第一DQN的网络参数,并判断j是否等于多个预定值的一个预定值;若不等于,令j增加1,返回所述以样本视频任务tj的特征参数和每一样本节点的当前特征参数向量,构成观测信息x(tj)的步骤;若等于,将更新后的所述第一DQN的网络参数复制到当前第一目标神经网络,以使更新后的第一目标神经网络确定更新后的累积奖励值真值,并令j增加1,返回所述以样本视频任务tj的特征参数和每一样本节点的当前特征参数向量,构成观测信息x(tj)的步骤;

当所计算的损失值低于第一预设值时,结束训练,得到训练完成的第一DQN。

可选地,所述第二DQN的训练过程包括:

构建初始的第二DQN,以及初始的第二目标神经网络,并初始化回放内存;

获取各样本子任务的特征参数;确定各样本子任务的执行队列,所述执行队列为q1,q2,...,qi

令i=1;

以样本子任务qi的特征参数和每一样本计算单元的当前特征参数向量,构成观测信息x(qi),以状态信息s(qi-1)、动作a(qi-1)和所述观测信息x(qi),构成状态信息s(qi);其中,任一样本计算单元的特征参数向量是由该样本计算单元的计算资源使用率、内存资源使用率、内存访问速率和数据复制代价组成的向量;

将所述状态信息s(qi)输入所述第二DQN,以使所述第二DQN确定动作a(qi),输出由所述动作a(qi)所确定的样本子任务qi对应的样本计算单元;基于样本子任务qi对应的样本计算单元,计算所述动作a(qi)对应的奖励r(qi),并根据所述状态信息s(qi)和所述动作r(qi),更新所述每一样本计算单元的特征参数向量;

以样本子任务qi+1的特征参数和更新后的每一样本计算单元的特征参数向量,构成观测信息x(qi+1);以所述状态信息s(qi)、所述动作a(qi)和所述观测信息x(qi+1),构成状态信息s(qi+1);

将转移样本e(qi)存储至所述回放内存,其中,e(qi)=(s(qi),a(qi),r(qi),s(qi+1));

从所述回放内存中随机选取1个转移样本,根据所选取的转移样本,确定所述第二DQN输出的累积奖励值;根据所确定的累积奖励值和当前第二目标神经网络确定的累积奖励值真值,利用预设的损失函数,计算所述第二DQN对应的损失值;

当所计算的损失值不低于第二预设值时,根据所选取的转移样本,更新所述第二DQN的网络参数,并判断i是否等于多个预定值的一个预定值;若不等于,令i增加1,返回所述以样本子任务qi的特征参数和每一样本计算单元的当前特征参数向量,构成观测信息x(qi)的步骤;若等于,将更新后的所述第二DQN的网络参数复制到当前第二目标神经网络,以使更新后的第二目标神经网络确定更新后的累积奖励值真值,并令i增加1,返回所述以样本子任务qi的特征参数和每一样本计算单元的当前特征参数向量,构成观测信息x(qi)的步骤;

当所计算的损失值低于第二预设值时,结束训练,得到训练完成的第二DQN。

可选地,所述确定所述每个子任务的执行顺序,包括:

根据预先获得的该视频任务的有向无环图,确定所述每个子任务的执行顺序。

另外,如图4所示,本发明实施例还提供了一种异构集群系统,包括:异构集群中的集群调度器401和多个节点402,每一节点包括节点调度器403;

所述集群调度器401用于:获取任务缓存队列中每个视频任务的特征参数和每个节点的特征参数;其中,任一视频任务的特征参数包括:该视频任务的任务类型,以及该视频任务对应的视频的分辨率和大小;任一节点的特征参数包括:该节点的中央处理器CPU利用率、图形处理器GPU利用率、节点内存使用率、GPU显存使用率、节点上行带宽和节点下行带宽;将所述每个视频任务的特征参数和每个节点的特征参数输入预先训练的第一深度Q网络DQN,按照每个视频任务的等候时长的长短顺序,依次确定出所述每个视频任务对应的节点;其中,所述第一DQN是根据各样本视频任务的特征参数训练得到的,任一样本视频任务的特征参数包括:该样本视频任务的任务类型,以及该样本视频任务对应的样本视频的分辨率和大小;针对每一视频任务,将该视频任务调度至该视频任务对应的节点,以使该节点对该视频任务包括的多个子任务进行并行化处理;

所述节点402中的节点调度器403用于:在接收到所述集群调度器所调度的视频任务后,对该视频任务包括的多个子任务进行并行化处理。

本发明实施例提供的方案,预先根据各样本视频任务的特征参数训练得到第一DQN,进而在调度任务缓存队列中的每个视频任务时,在获取了每个视频任务的特征参数和每个节点的特征参数后,将每个视频任务的特征参数和每个节点的特征参数输入训练好的第一DQN,使得第一DQN按照每个视频任务的等候时长的长短顺序,依次确定出每个视频任务对应的节点,并依次将每一视频任务调度至该视频任务对应的节点。由于本发明实施例基于各样本视频任务的特征参数来训练第一DQN,因此,利用训练好的第一DQN确定每个视频任务对应的节点时,充分考虑了每个视频任务的特征参数,并合理地利用异构集群中各节点的计算资源来处理每个视频任务,可以提高整个异构集群在处理视频任务时的数据吞吐量,并减少视频任务的处理时间。

可选地,每一节点402包括多个计算单元;

所述节点402中的节点调度器403具体用于:

获取该视频任务对应的每个子任务的特征参数和每个计算单元的特征参数;其中,该视频任务对应的任一子任务的特征参数包括:该子任务的任务类型,以及该视频任务对应的视频的分辨率和大小;任一计算单元的特征参数包括:该计算单元的计算资源使用率、内存资源使用率、内存访问速率和数据复制代价;

确定所述每个子任务的执行顺序;

将所述每个子任务的特征参数和每个计算单元的特征参数输入预先训练的第二DQN,按照所述每个子任务的执行顺序,依次确定出所述每个子任务对应的计算单元;其中,所述第二DQN是根据各样本子任务的特征参数训练得到的,任一样本子任务的特征参数包括:该样本子任务的任务类型,以及该样本子任务对应的样本视频的分辨率和大小;

针对每一子任务,将该子任务调度至该子任务对应的计算单元,以使得该计算单元处理该子任务。

可选地,所述节点402中的节点调度器403具体用于:

根据预先获得的该视频任务的有向无环图,确定所述每个子任务的执行顺序。

可选地,所述第一DQN的训练过程包括:

构建初始的第一DQN,以及初始的第一目标神经网络,并初始化回放内存;

获取各样本视频任务的特征参数;确定各样本视频任务的执行队列,所述执行队列为t1,t2,...,tn

令j=1;

以样本视频任务tj的特征参数和每一样本节点的当前特征参数向量,构成观测信息x(tj);以状态信息s(tj-1)、动作a(tj-1)和所述观测信息x(tj),构成状态信息s(tj);其中,任一样本节点的特征参数向量是由该样本节点的中央处理器CPU利用率、图形处理器GPU利用率、节点内存使用率、GPU显存使用率、节点上行带宽和节点下行带宽组成的向量;

将所述状态信息s(tj)输入所述第一DQN,以使所述第一DQN确定动作a(tj),输出由所述动作a(tj)所确定的样本视频任务tj对应的样本节点;基于样本视频任务tj对应的样本节点,计算所述动作a(tj)对应的奖励r(tj),并根据所述状态信息s(tj)和所述动作a(tj),更新所述每一样本节点的特征参数向量;

以样本视频任务tj+1的特征参数和更新后的每一样本节点的特征参数向量,构成观测信息x(tj+1);以所述状态信息s(tj)、所述动作a(tj)和所述观测信息x(tj+1),构成状态信息s(tj+1);

将转移样本e(tj)存储至所述回放内存,其中,e(tj)=(s(tj),a(tj),r(tj),s(tj+1));

从所述回放内存中随机选取1个转移样本,根据所选取的转移样本,确定所述第一DQN输出的累积奖励值;根据所确定的累积奖励值和当前第一目标神经网络确定的累积奖励值真值,利用预设的损失函数,计算所述第一DQN对应的损失值;

当所计算的损失值不低于第一预设值时,根据所选取的转移样本,更新所述第一DQN的网络参数,并判断j是否等于多个预定值的一个预定值;若不等于,令j增加1,返回所述以样本视频任务tj的特征参数和每一样本节点的当前特征参数向量,构成观测信息x(tj)的步骤;若等于,将更新后的所述第一DQN的网络参数复制到当前第一目标神经网络,以使更新后的第一目标神经网络确定更新后的累积奖励值真值,并令j增加1,返回所述以样本视频任务tj的特征参数和每一样本节点的当前特征参数向量,构成观测信息x(tj)的步骤;

当所计算的损失值低于第一预设值时,结束训练,得到训练完成的第一DQN。

可选地,所述第二DQN的训练过程包括:

构建初始的第二DQN,以及初始的第二目标神经网络,并初始化回放内存;

获取各样本子任务的特征参数;确定各样本子任务的执行队列,所述执行队列为q1,q2,...,qn

令i=1;

以样本子任务qi的特征参数和每一样本计算单元的当前特征参数向量,构成观测信息x(qi),以状态信息s(qi-1)、动作a(qi-1)和所述观测信息x(qi),构成状态信息s(qi);其中,任一样本计算单元的特征参数向量是由该样本计算单元的计算资源使用率、内存资源使用率、内存访问速率和数据复制代价组成的向量;

将所述状态信息s(qi)输入所述第二DQN,以使所述第二DQN确定动作a(qi),输出由所述动作a(qi)所确定的样本子任务qi对应的样本计算单元;基于样本子任务qi对应的样本计算单元,计算所述动作a(qi)对应的奖励r(qi),并根据所述状态信息s(qi)和所述动作r(qi),更新所述每一样本计算单元的特征参数向量;

以样本子任务qi+1的特征参数和更新后的每一样本计算单元的特征参数向量,构成观测信息x(qi+1);以所述状态信息s(qi)、所述动作a(qi)和所述观测信息x(qi+1),构成状态信息s(qi+1);

将转移样本e(qi)存储至所述回放内存,其中,e(qi)=(s(qi),a(qi),r(qi),s(qi+1));

从所述回放内存中随机选取1个转移样本,根据所选取的转移样本,确定所述第二DQN输出的累积奖励值;根据所确定的累积奖励值和当前第二目标神经网络确定的累积奖励值真值,利用预设的损失函数,计算所述第二DQN对应的损失值;

当所计算的损失值不低于第二预设值时,根据所选取的转移样本,更新所述第二DQN的网络参数,并判断i是否等于多个预定值的一个预定值;若不等于,令i增加1,返回所述以样本子任务qi的特征参数和每一样本计算单元的当前特征参数向量,构成观测信息x(qi)的步骤;若等于,将更新后的所述第二DQN的网络参数复制到当前第二目标神经网络,以使更新后的第二目标神经网络确定更新后的累积奖励值真值,并令i增加1,返回所述以样本子任务qi的特征参数和每一样本计算单元的当前特征参数向量,构成观测信息x(qi)的步骤;

当所计算的损失值低于第二预设值时,结束训练,得到训练完成的第二DQN。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一的异构集群中视频任务并行化方法,以获得相同的技术效果。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一的异构集群中视频任务并行化方法,以获得相同的技术效果。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/集群调度器/存储介质/计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号