一种基于概率模型的云渲染平台任务调度系统的制作方法

文档序号:17554954发布日期:2019-04-30 18:32阅读:187来源:国知局
一种基于概率模型的云渲染平台任务调度系统的制作方法

本发明涉及云渲染管理领域,尤其是涉及一种基于概率模型的云渲染平台任务调度系统。



背景技术:

云计算是传统计算机和网格计算发展的新型产物,云计算具有其他模式所不具备的先天计算优势。在云计算的环境中,用户可以按照自身需求来使用云提供商提供的服务或者基础设施。对于某些大型任务,用户可以提交任务请求,云计算的任务调度中心可以根据用户的请求为其动态分配资源。随着云计算的不断发展,人们不仅仅追求云计算任务的最快完成时间而且希望可以兼顾机器运行成本。云计算任务调度的目标是将任务调度到所需的资源上,并且使得任务调度的时间跨度最小,以此实现资源的充分利用。

云渲染的模式与常规的云计算类似,即将3D程序放在远程的服务器中渲染,用户终端通过Web软件或者直接在本地的3D程序中点击一个“云渲染”按钮并借助高速互联网接入访问资源,指令从用户终端中发出,服务器根据指令执行对应的渲染任务,而渲染结果画面则被传回到用户终端中加以显示。云渲染是影视多媒体产业结合云计算技术发展起来的新兴产业。

但是现在的云渲染平台往往存在任务调度不及时,任务堆积等问题。现在很多任务调度算法均使用了智能算法,比如:粒子群算法。粒子群优化算法(Particle Swarm Optimization)简称PSO算法,由Eberhart博士和Kennedy博士于1995年提出,它的基本概念源于对鸟群觅食行为的研究。粒子群优化算法是一种基于仿生学的群体智能优化算法,该算法通过个体之间协作和信息共享来实现寻求最优解的目的。粒子群优化算法相对于其他智能优化算法具有算法简单、可优化任务的传输时间和处理时间,初期收敛速度快的优势。但是粒子群算法在后期具有局部搜索能力不足,收敛速度缓慢,容易陷入局部最优解的缺陷。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种任务效率高、节约成本、实时性强、具有预测性的基于概率模型的云渲染平台任务调度系统。

本发明的目的可以通过以下技术方案来实现:

一种基于概率模型的云渲染平台任务调度系统,用以对云渲染集群进行实时跟踪、监控和修正,该系统包括云渲染用户管理设备、云渲染任务管理设备和云渲染系统管理设备,所述的云渲染系统管理设备分别与云渲染用户管理设备和云渲染任务管理设备连接,所述的云渲染用户管理设备和云渲染任务管理设备连接。

所述的云渲染用户管理设备包括:

用户管理管理器:用以设置云渲染任务中所有参与云渲染的用户类型,用户类型分为个人用户、企业用户和VIP用户;

用户权限管理器:与用户管理管理器连接,用以配置用户的权限,同时可以支持企业用户配置子用户以及配置子用户的权限,以此可以方便企业其他人员的使用,并且支持VIP用户配置特殊权限,可以使用更好更快捷的云渲染资源,

用户权限管理器包括:

用户权限配置模块:用以配置用户在基于概率模型的云渲染任务调度平台中的权限范围,该平台现在包括上传文件权限、任务监控权限、成品下载权限、渲染模式、可用渲染节点/渲染组、支持软件、优先级权限、子用户权限;

子用户管理模块:用以配置VIP用户和公司用户,便于用户可以下放权限给相关工作人员,节约成本,便于公司内部管理相关内容;

子用户权限管理模块:用以VIP用户和公司用户可以给子用户配置上传文件权限、任务监控权限、成品下载权限、渲染模式、可用渲染节点/渲染组、支持软件、优先级权限;

用户行为管理器:与用户权限管理器连接,用以记录和分析用户的行为,用户行为包括用户操作习惯、用户任务参数设置习惯和用户操作时间,并为用户评价管理器的评价体系提供了基于用户本身的数据;

用户行为管理器包括:

用户操作习惯管理模块:用以记录用户使用平台的操作习惯,拥有良好的操作习惯的用户可以在用户评价中得到相应的体现。同时,用户操作习惯管理模块对于一些用户上传包含攻击、恶意等内容的文件进行排查,并实时记录到用户行为中,以便后续在在用户评价管理器中的用户评价中体现;

用户任务习惯管理模块:用以记录用户提交任务以及任务设置的操作习惯;对于经常提交小型并且零碎的任务的用户和经常提交大型并且复杂的任务的用户的服务节点做一定的调整,以便后续的任务评价,进而可以提高云渲染集群的资源利用;同时在用户评价管理器中的用户优先级中进行体现;

用户时间习惯管理模块:用户时间习惯管理模块,用以记录用户操作和使用平台的时间习惯;对于经常夜间提交任务的用户和白天提交用户的任务进行区分,同时在用户评价管理器中的用户效益中进行体现;

用户评价管理器:与用户行为管理器连接,用以对用户群体进行用户评价管理、用户优先级管理和用户效益管理三个方面的评价;

用户评价管理器包括:

用户评价管理模块:用以结合用户操作平台的行为,对用户进行评价,用户评价将会影响用户使用云渲染集群的使用权限和使用范围;

用户优先级管理模块:用以结合不同的用户类型、不同的任务量、不同的需求进行用户优先级进行评价,优先级越高的用户将在云渲染集群中华如果产生竞争关系中具有越大的优势;

用户效益管理模块:用以结合不同的用户类型、不同的任务量、不同的需求进行用户效益进行评价,用户效益越高则代表着该用户的任务和需求可以尽可能提高云渲染集群的利用率,达到互利共赢的效果;这个类用户将是该平台重点关注的用户;

用户需求管理器:分别与用户评价管理器和云渲染任务管理设备连接,用以对用户渲染需求进行多层次的管理,为任务管理器的任务分类和任务分解提供相应的依据:

用户需求管理器包括:

需求任务量管理模块:用以管理用户提交任务而产生的需求任务量,任务量的大小直接关系到任务管理器中的任务分解工作的进行和任务性质的划分;

需求优先级管理模块:用以管理用户提交任务而附加的优先级请求,用户请求的优先级;优先级越高,表示用户对此任务的时间、任务处理速度有着越高的要求;

需求截止时间管理模块:用以管理用户提交任务而附加的最终截止时间需求;表示用户对任务的最终截止时间有着明确的要求;

需求费用管理模块:用以管理用户提交任务而产生的相关费用计算,如果用户明确任务费用的需求,系统将会按照费用代表的标准进行工作;费用越低,会将任务完成时间不断加长。

需求品质管理模块:用以管理用户提交任务而产生的渲染品质的需求,目前提供的渲染品质为产品级渲染、小样渲染、迭代渲染、光线追踪渲染、中等品质渲染5类渲染品质;

所述的云渲染任务管理设备包括:

任务管理器:与用户需求管理器连接,用以对用户提交上来的云渲染的实际需求进行任务划分和任务分解,任务划分主要根据用户评价和用户实际需求进行划分,主要分为一般任务、优质任务和特殊任务三类任务;任务分解主要是根据用户需求的实际大小和云渲染集群的实际处理能力,将用户提交的任务进行分解;

任务管理器包括:

任务分解管理模块:用以将用户提交上来的任务进行任务分解,将任务分解为任务块分给相应的渲染节点去工作;

一般任务管理模块:用以将用户提交上来的任务进行任务分类,一般任务管理模块主要处理普通用户提交的任务,对于时间和品质要求不高的任务进行管理;

优质任务管理模块:用以将用户提交上来的任务进行任务分类,优质任务管理模块主要处理用户提交上来的任务,对于时间和品质要求较高的任务或者优质用户提交上来的任务进行管理;

特殊任务管理模块:用以将用户提交上来的任务进行任务分类,特殊任务管理模块主要处理用户提交上来的特殊任务或者特殊需求,对于时间和品质要求极高的任务进行管理;

任务进度管理器:与任务管理器连接,用以管理用户的提交任务,主要提供任务节点安排管理和任务进度查询管理两部分;任务节点安排管理主要是根据任务管理器中任务分解进行基本的节点安排;任务进度查询管理主要是支持用户可以实时查询该用户的任务在每个渲染节点的进度情况;

任务进度管理器包括:

任务节点安排管理模块:用以将任务管理器中的任务分解管理后的所有任务块进行基本的节点排队工作;

任务进度查询管理模块:用以提供用户试试查询提交任务的渲染进度和节点渲染进度的查询;

任务调度算法管理器:与任务管理器连接,用以实现粒子群智能优化算法,并对算法中的惯性参数、群体参数和认知参数进行管理,包括:

粒子群算法管理模块:用以粒子群算法中包含“惯性”、“群体”和“认知”的经验固定值,以此结合概率模型的基于概率统计的统计,可以为后续任务管理器中的惯性参数管理、群体参数管理和认知参数管理的修正提供相应的基础;

惯性参数管理模块:用以提供一种基于概率模型的云渲染任务管理系统的粒子群任务调度算法中的惯性参数修改接口;

群体参数管理模块:用以提供一种基于概率模型的云渲染任务管理系统的粒子群任务调度算法中的群体参数修改接口;

认知参数管理模块:用以提供一种基于概率模型的云渲染任务管理系统的粒子群任务调度算法中的认知参数修改接口;

概率模型管理器:与任务调度算法管理器连接,通过概率模型对粒子群智能优化算法中的惯性参数、群体参数和认知参数进行动态修改,进而可以更加适应云渲染集群中任务调度算法的适应性,包括:

离散时间马尔可夫链概率模型管理模块:用以提供可以计算的概率模型,离散时间马尔可夫链概率模型对时间没有连续性的要求,这样对时间顺序无明确要求的任务可以采用该模块进行概率计算;

连续时间马尔可夫链概率模型管理模块:用以提供可以计算的概率模型,连续时间马尔可夫链概率模型对时间有连续性的要求,这样时间顺序有明确要求的任务可以采用该模块进行概率计算;

任务评价管理器:与概率模型管理器连接,用以实现内部对云渲染集群中所有任务的评价,主要分为两个部分:任务资源消耗和任务时间消耗;这样可以根据不同的节点的计算能力进一步让管理者了解云渲染集群的运转情况,为任务调度提供相应依据,包括:

任务资源消耗管理模块:用以评价用户提交任务平均资源消耗情况,在这里资源的主要包括任务能耗、节点消耗、内存消耗、硬盘消耗、CPU消耗和GPU消耗;

任务时间消耗管理模块:用以评价用户提交任务平均时间消耗情况,在这里的时间消耗主要包括任务调度时间消耗、任务完成时间消耗、任务重分配时间消耗、任务排队时间消耗;

故障恢复管理器:与任务评价管理器连接,用以实现故障节点的检查和故障节点所影响的任务进行重新分配,能够进行故障检测,发现故障及时修正,并提供给后台管理员进行维护修改,包括:

故障任务检测管理模块:用以检测云渲染集群中的故障节点的检测,及时发现故障节点,可以及时避免故障节点导致任务后延;

故障任务分配管理模块:用以重新分配云渲染中的故障节点的当前执行任务,同时重新分配为故障节点排好队列的任务块。

所述的云渲染系统管理设备包括:

系统监控管理器:用以实现对云渲染集群的实时监控,主要从系统运行状态管理、系统负载量监控管理、系统优质节点管理、系统资源管理四个方面进行监控管理,包括:

系统运行状态管理模块:用以对云渲染集群的整体运行状态进行实时监控;

系统负载量管理模块:用以对云渲染集群的整体负载量进行实时监控,防止负载过大情况;

系统优质节点管理模块:用以对云渲染集群的优质、高效的计算节点进行管理和监控;

系统资源管理模块:用以对云渲染集群的硬件、内存、CPU、GPU的资源进行管理;;

节点管理器:与系统监控管理器连接,用以实现对云渲染集群中的节点实时监控,主要从节点运行状态管理、节点当前任务管理、节点任务队列管理、节点负载监控量管理四个方面进行监控管理,包括:

节点运行状态管理模块:用以对云渲染集群的每个节点的运行状态进行实时监控;

节点当前任务管理模块:用以对云渲染集群的每个节点的当前任务进行状态进行实时监控;

节点任务队列管理模块:用以对云渲染集群的每个节点的运行队列进行管理和监控;

节点负载监控量管理模块:用以对云渲染集群的每个节点的负载量进行实时监控。

一种基于概率模型的云渲染平台任务调度系统,包括以下步骤:

1)在初始时刻,云渲染平台将接收到的任务请求随机平均分配给平台内的节点,并将每个已经分配任务节点作为粒子群优化算法中的粒子,则有:

其中,xi为第i个粒子的任务分配向量,vi为第i个粒子对应的速度向量,的取值为0和1,0表示第M个任务没有分配给第i个节点,1表示第M个任务分配给第i个节点,为第i个节点的第M个任务对应的速度;

2)通过粒子群优化算法对每个粒子进行更新,获取所有粒子最优的任务分配方案。

所述的步骤2)具体包括以下步骤:

21)建立粒子群优化算法的更新公式为:

其中,和分别为第t步和t+1步时第i个粒子的速度向量,和分别为第t步和t+1步时第i个粒子的任务分配向量,ω为惯性参数,c1为认知参数,c2为群体参数,ξ和η分别为在区间[0,1]内均匀分布的随机数,σ为约束因子,Gbest(i)为在全局最优的情况下对应的第i个节点的任务分配向量,为第t步时第i个节点的历史最优值;

22)定义粒子群优化算法的适应度函数为:

TRC(i)=TTC(i)*URC(i),i∈[1,R]

其中,Ftime(i)为第i个节点的时间成本适应度函数,TTC(i)为第i个节点完成分配的所有任务的时间,为第i个节点完成第j个任务所用的时间,n为分配到第i个节点的任务总数,Fcost(i)为第i个节点的运行成本适应度函数,URC(i)为第i个节点的单位时间运行成本,R为云渲染平台的节点总数;

23)根据更新公式和适应度函数进行迭代求解,根据适应度函数和粒子适应度规则获取每个粒子对应的个体最优解,并根据全局最优值适应度规则获取全局最优值,即所有粒子最优的任务分配方案。

所述的步骤21)中,惯性参数ω、认知参数c1和群体参数c2通过概率模型进行迭代更新,则有:

ω(t)=(ωmax-ωmin)/2+PG*cos(t*π/Tmax)

c1(t)=c1init+PS*cos(t*π/Tmax)

c2(t)=c2init-PG*cos(t*π/Tmax)

其中,ωmax和ωmin分别为惯性参数的最大值和最小值,t为当前迭代的步数,Tmax代表最大迭代次数,PG为粒子节点接近全局最优解的概率,PS为粒子节点更接近个体最优解的概率,c1init为个体认知的初始值,c2init为群体认知的初始值。

所述的步骤23)中,粒子适应度规则为:

全局最优值适应度规则为:

其中,t为当前迭代的步数,Pbi为第i个粒子的个体最优解。

与现有技术相比,本发明具有以下优点:

一、任务调度效率高,通过基于概率模型的云渲染任务调度系统,在任务量饱满,并且任务量较大时,可以快速准确的将任务进行划分和调度,减少任务的平均等待时间;

二、节约成本,本发明在算法中提供了时间成本和运行成本的适应度函数,可以将任务调度算法中时间成本和运行成本同时考虑,并且本发明中的算法优先考虑时间成本,在时间成本一样时考虑运行成本。

三、实时性强,整个构建过程中,提供了实时渲染并快速返回客户的功能,达到了所见即所得;

四、具有预测性,本发明使用了概率模型检验中的概率模型,该模型可以综合分析历史数据,从而分析计算节点的计算能力和命中率,本发明基于粒子群算法实现了任务调度算法,并且余弦函数变化曲线和概率模型引入到惯性因子、认知参数和群体参数,从而使整个云渲染平台在时间成本和运维成本尽可能降低。

附图说明

图1为本发明的系统结构图。

图2为本发明的方法流程图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。

实施例:

本发明提供了一种基于概率模型的云渲染平台任务管理系统,可以使在3DMax、Photoshop和玛雅等软件中的场景构建或制作效果图,通过本发明的基于概率模型的云渲染任务管理系统,可以进行任务的调度,用最短的时间完成任务将相关结果反馈给用户。

如图1所示,一种基于概率模型的云渲染任务管理系统,用以在本地进行场景构建、编辑,通过本发明通过云渲染反馈给用户相关结果。其中包括云渲染用户管理设备、云渲染任务管理设备和云渲染系统管理设备,所述的云渲染系统管理设备分别与云渲染用户管理设备和云渲染任务管理设备连接,所述的云渲染用户管理设备和云渲染任务管理设备连接。

1根据用户管理管理器,其中用户类型分为:个人用户、企业用户和VIP用户,进行判断当前用户的类型,不同的用户具有不同的优先级;然后根据用户权限管理器。

2用户权限管理器可以对当前用户进行权限的进行判断;

3用户需求管理器,根据用户渲染需求进行多层次的管理;平台可以根据用户的任务需求计算任务工作量、任务优先级、任务总费用,并且记录任务的最短完成时间和用户的品质要求。

4任务管理器,用以对用户提交上来的云渲染的实际需求进行任务划分和任务分解;任务划分主要根据用户评价和用户实际需求进行划分,主要分为一般任务、优质任务和特殊任务三类任务;任务分解主要是根据用户需求的实际大小和云渲染集群的实际处理能力,将用户提交的任务进行分解;

5任务调度算法管理器用以实现粒子群智能优化算法,并将粒子群智能优化算法中的惯性参数、群体参数、认知参数进行单独管理。该管理器根据粒子群智能优化算法进行任务调度给云渲染平台。

关于任务调度算法,本发明的实现的算法同时考虑了惯性因子和学习因子,并借助概率模型建立了自我预测的机制,这样不仅可以的避免陷入局部最优解,而且能有效地完成任务调度系统中计算资源的任务分配;同时在任务调度算法最优解的判断过程中也对时间成本和运行成本进行考虑,这样可以为整个云渲染平台的运营尽可能降低成本。

集成上述所有模块可以实现基于概率模型的云渲染任务管理系统的基本构建功能,为了使本系统有更强的兼容性,本系统集成了玛雅和3D MAX的SDK来解决兼容性;本系统还借助了改进粒子群算法来解决任务调度的不及时性、低效率;整个系统使用Visual Studio软件平台开发,开发框架为ASP.NET,开发语言使用C#语言,数据库使用SQL Server。

如图2所示,图为本发明渲染方法流程图。

基于概率模型的粒子群算法的描述如下:

1)可利用资源节点初始化工作,检查机器、网络和脚本等内容,执行第2步;

2)根据可利用资源节点生成原始种群中的粒子,以及粒子的初始位置xi和初始速度vi,执行第3步;

3)初始化惯性因子(ωmax和ωmin)、学习因子(c1init和c2init)和最大迭代次数(Tmax),执行第4步;

4)根据公式(7)和(9),计算粒子的适应度,执行第5步;

5)根据公式(10)和(11),粒子的最新位置和粒子的最优历史位置比较。如果粒子现在位置比该粒子的最优位置更优,则执行第6步;否则执行第8步;

6)更新该粒子的最优位置;如果粒子现在位置比全局的最优位置更优,则执行第7步;否则,执行第8步;

7)更新全局的最优位置,执行第8步;

8)判定迭代次数,如果迭代次数达到最大迭代次数,执行第9步;否则,更新惯性因子(ω)、学习因子(c1和c2)和粒子新的位置和速度,执行第4步;

9)算法结束,输出全局最优解;根据任务日志和概率模型重新计算,并更新PG和PS。

根据离散时间马尔科夫链(DTMC)的定义,本文构建的基于概率模型的粒子群优化算法可以定义为D=(S,sinit,P,L),其元组各个元素的内容表示如下:

S={S0,S1,S2,S3,S4,S5,S6,S7,S8,S9};

sinit=S0;

其中满足

本文根据以上定义的概率模型可以构造出相应的状态转移图,如图2所示。

那么根据任务日志的运行统计数据,我们可以计算出概率模型中状态之间转移的概率数值,本文根据概率模型的边界可达概率定义PrReach≤t(s,T)表示在t次的转移次数内从状态s转移到状态集合T的概率,根据这样的定义我们可以得到计算公式:

其中,t表示的是第t次状态转移,可以根据最大迭代值(Tmax)进行计算。根据概率模型的边界可达公式,本文在下面给出PG的计算公式,PG主要体现的粒子群算法中粒子命中全局最优解(一定误差范围内)的情况,也就是概率模型中状态转移至S7的概率:

PG=PrReach≤t(S0,{S7}) (19)

同理PS的计算公式(概率模型中状态转移至S6的概率)应该为:

PS=PrReach≤t(S0,{S6}) (20)

本文在给出推导PG的计算流程:

PG=Preach≤t(S0,{S7})

=P(S0,S1)*Preach≤t-1(S1,{S7})

=P(S0,S1)*P(S1,S3)*Preach≤t-2(S1,{S7})

=P(S0,S1)*P(S1,S3)*P(S1,S3)*Preach≤t-3(S3,{S7})

=P(S0,S1)*P(S1,S3)*P(S1,S3)*P(S3,S4)*Preach≤t-4(S4,{S7})

=P(S0,S1)*P(S1,S3)*P(S1,S3)*P(S3,S4)*P(S4,S5)*Preach≤t-5(S5,{S7})

=P(S0,S1)*P(S1,S3)*P(S1,S3)*P(S3,S4)*P(S4,S5)*(P(S5,S6)*Preach≤t-6(S6,{S7})+

P(S5,S8)*Preach≤t-6(S8,{S7}))

=P(S0,S1)*P(S1,S3)*P(S1,S3)*P(S3,S4)*P(S4,S5)*(P(S5,S6)*(P(S6,S8)*Preach≤t-7(S8,{S7})+

P(S6,S7))+P(S5,S8)*P(S8,S4)*Preach≤t-7(S4,{S7}))

直到t=0为止。

然后,本文在给出推导PS的计算流程:

PS=Preach≤t(S0,{S6})

=P(S0,S1)*Preach≤t-1(S1,{S7})

=P(S0,S1)*P(S1,S3)*Preach≤t-2(S1,{S7})

=P(S0,S1)*P(S1,S3)*P(S1,S3)*Preach≤t-3(S3,{S7})

=P(S0,S1)*P(S1,S3)*P(S1,S3)*P(S3,S4)*Preach≤t-4(S4,{S7})

=P(S0,S1)*P(S1,S3)*P(S1,S3)*P(S3,S4)*P(S4,S5)*Preach≤t-5(S5,{S7})

=P(S0,S1)*P(S1,S3)*P(S1,S3)*P(S3,S4)*P(S4,S5)*(P(S5,S8)*Preach≤t-6(S8,{S7})+P(S5,S6))

=P(S0,S1)*P(S1,S3)*P(S1,S3)*P(S3,S4)*P(S4,S5)*(P(S5,S8)*P(S8,S4)*Preach≤t-7(S4,{S7})+P(S5,S6))…

直到t=0为止。

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