分布式渲染的智能调度方法、装置、设备及存储介质与流程

文档序号:16682520发布日期:2019-01-19 00:39阅读:160来源:国知局
分布式渲染的智能调度方法、装置、设备及存储介质与流程

本发明涉及渲染领域,具体涉及一种分布式渲染的智能调度方法、装置、设备及存储介质。



背景技术:

目前,在对图像进行渲染时,通常是使用一台高配的服务器渲染一张高清全景图,而完成对一张高清全景图的渲染可能需要大概三到五分钟的时间,因此其等待时间长,渲染效率和速度均不高。在现有技术中,提升渲染速度的方式一般为增强服务器的配置,但是服务器的配置在达了一定的高配之后,再高配置的服务器的价格跟配置呈指数级增长,此时,若还需要增加服务器的配置,成本将会相当地高,因此,一种可以在节省服务器配置开支的前提下,提升渲染速度和减少等待时长以提升用户体验的渲染方法成为一个急需解决的问题。



技术实现要素:

本发明实施例提供一种分布式渲染的智能调度方法、装置、设备及存储介质,本发明可以对进行渲染的服务器进行动态调配,降低了渲染图像所需的硬件成本,减少了服务器负载,提高了渲染速度,同时还对低峰时闲置的服务器进行了充分利用,提升了渲染效率和用户体验。

本发明提供的一种分布式渲染的智能调度方法,包括:

获取渲染任务的渲染参数以及各所述渲染参数的渲染级别;

根据所述渲染参数以及各所述渲染参数的渲染级别,获取所述渲染任务进行分布式渲染所需的分布式节点数量;

接收所述渲染任务的执行指令,若所述分布式节点数量大于1,则检测当前闲置服务器的数量是否大于预设的最大并发服务器数量;

在所述当前闲置服务器的数量大于所述最大并发服务器数量时,将所述渲染任务拆解为一个主力渲染任务和至少一个分布式渲染任务,并通过至少两个所述当前闲置服务器分别执行所述主力渲染任务和所述分布式渲染任务之后,合并分别执行所述主力渲染任务和所述分布式渲染任务之后获取的渲染结果,生成渲染效果图;

在所述当前闲置服务器的数量小于或等于所述最大并发服务器数量时,根据预设规则选取一个所述当前闲置服务器作为第一主力渲染服务器,并通过所述第一主力渲染服务器对所述渲染任务进行主力渲染。

在一实施例中,所述接收所述渲染任务的执行指令之后,还包括:

若所述分布式节点数量小于或等于1,根据所述预设规则选取一个所述当前闲置服务器作为第二主力渲染服务器,并通过所述第二主力渲染服务器对所述渲染任务进行主力渲染。

在一实施例中,所述通过至少两个所述当前闲置服务器分别执行所述主力渲染任务和所述分布式渲染任务,包括:

检测所述最大并发服务器数量与所述分布式节点数量之和是否小于或等于所述当前闲置服务器的数量;

在所述最大并发服务器数量与所述分布式节点数量之和小于或等于所述当前闲置服务器的数量时,选取数量与所述分布式节点数量一致的所述当前闲置服务器;

将选取的数量与所述分布式节点数量一致的所有所述当前闲置服务器中一个所述当前闲置服务器记录为第三主力渲染服务器,且将除所述第三主力渲染服务器之外的其他选取的所述当前闲置服务器记录为第一分布式渲染服务器;

通过所述第三主力渲染服务器对所述主力渲染任务进行主力渲染,同时通过所述第一分布式渲染服务器对所述分布式渲染任务进行分布式渲染。

在一实施例中,所述检测所述最大并发服务器数量与所述分布式节点数量之和是否小于或等于所述当前闲置服务器的数量之后,还包括:

在所述最大并发服务器数量与所述分布式节点数量之和大于所述当前闲置服务器的数量时,判断当前是否存在正在进行分布式渲染的服务器;

若当前不存在正在进行分布式渲染的服务器,则获取所述当前闲置服务器的数量与所述最大并发服务器数量的第一差值,并选取数量与所述第一差值一致的所述当前闲置服务器;

将选取的数量与所述第一差值一致的所有所述当前闲置服务器中一个所述当前闲置服务器记录为第四主力渲染服务器,且将除所述第四主力渲染服务器之外的其他选取的所述当前闲置服务器记录为第二分布式渲染服务器;

通过所述第四主力渲染服务器对所述主力渲染任务进行主力渲染,同时通过所述第二分布式渲染服务器对所述分布式渲染任务进行分布式渲染。

在一实施例中,所述在所述最大并发服务器数量与所述分布式节点数量之和大于所述当前闲置服务器的数量时,判断当前是否存在正在进行分布式渲染的服务器之后,包括:

若当前存在正在进行分布式渲染的服务器,获取所述分布式节点数量与所述第一差值之间的第二差值;

判断所述正在进行分布式渲染的服务器的数量是否大于或等于所述第二差值;

若大于或等于所述第二差值,则选取数量与所述第一差值一致的所述当前闲置服务器,同时选取数量与所述第二差值一致的所述正在进行分布式渲染的服务器;

将选取的数量与所述第一差值一致的所有所述当前闲置服务器中一个所述当前闲置服务器记录为第五主力渲染服务器,且将除所述第五主力渲染服务器之外的其他选取的所述当前闲置服务器记录为第三分布式渲染服务器,同时将选取的数量与所述第二差值一致的所述正在进行分布式渲染的服务器记录为第四分布式渲染服务器;

通过所述第五主力渲染服务器对所述主力渲染任务进行主力渲染,同时通过所述第三分布式渲染服务器和所述第四分布式渲染服务器对所述分布式渲染任务进行分布式渲染。

在一实施例中,所述判断所述正在进行分布式渲染的服务器的数量是否大于或等于所述第二差值之后,包括:

若所述正在进行分布式渲染的服务器的数量小于所述第二差值,则选取数量与所述第一差值一致的所述当前闲置服务器,同时选取所有所述正在进行分布式渲染的服务器;

将选取的数量与所述第一差值一致的所有所述当前闲置服务器中一个所述当前闲置服务器记录为第六主力渲染服务器,且将除所述第六主力渲染服务器之外的其他选取的所述当前闲置服务器记录为第五分布式渲染服务器,同时将选取的所有所述正在进行分布式渲染的服务器记录为第六分布式渲染服务器;

通过所述第六主力渲染服务器对所述主力渲染任务进行主力渲染,同时通过所述第五分布式渲染服务器和所述第六分布式渲染服务器对所述分布式渲染任务进行分布式渲染。

在一实施例中,所述根据所述渲染参数以及各所述渲染参数的渲染级别,获取所述渲染任务进行分布式渲染所需的分布式节点数量,包括:

通过以下数学模型计算所述渲染任务进行分布式渲染所需的分布式节点数量:

s=a1*b1+a2*b2+…+an*bn

其中:

s为所述渲染任务进行分布式渲染所需的分布式节点数量;

n是指在对所述渲染任务进行分布式渲染时所需的所述渲染参数的个数;

a1、a2和an分别为所述渲染任务中第1、2和第n个类别的所述渲染参数在分布式渲染中的权重;

b1、b2和bn分别为所述渲染任务的第1、2和第n个类别的所述渲染参数的级别比重,所述级别比重是指所述渲染参数对应的渲染级别在对所述渲染任务进行分布式渲染的过程中所占的比重。

一种分布式渲染的智能调度装置,包括:

第一获取模块,用于获取渲染任务的渲染参数以及各所述渲染参数的渲染级别;

第二获取模块,用于根据所述渲染参数以及各所述渲染参数的渲染级别,获取所述渲染任务进行分布式渲染所需的分布式节点数量;

检测模块,用于接收所述渲染任务的执行指令,若所述分布式节点数量大于1,则检测当前闲置服务器的数量是否大于预设的最大并发服务器数量;

第一渲染模块,用于在所述当前闲置服务器的数量大于所述最大并发服务器数量时,将所述渲染任务拆解为一个主力渲染任务和至少一个分布式渲染任务,并通过至少两个所述当前闲置服务器分别执行所述主力渲染任务和所述分布式渲染任务之后,合并分别执行所述主力渲染任务和所述分布式渲染任务之后获取的渲染结果,生成渲染效果图;

第二渲染模块,用于在所述当前闲置服务器的数量小于或等于所述最大并发服务器数量时,根据预设规则选取一个所述当前闲置服务器作为第一主力渲染服务器,并通过所述第一主力渲染服务器对所述渲染任务进行主力渲染。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现上述分布式渲染的智能调度方法。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述分布式渲染的智能调度方法。

本发明提供的分布式渲染的智能调度方法、装置、设备及存储介质,获取渲染任务的渲染参数以及各所述渲染参数的渲染级别;根据所述渲染参数以及各所述渲染参数的渲染级别,获取所述渲染任务进行分布式渲染所需的分布式节点数量;接收所述渲染任务的执行指令,若所述分布式节点数量大于1,则检测当前闲置服务器的数量是否大于预设的最大并发服务器数量;在所述当前闲置服务器的数量大于所述最大并发服务器数量时,将所述渲染任务拆解为一个主力渲染任务和至少一个分布式渲染任务,并通过至少两个所述当前闲置服务器分别执行所述主力渲染任务和所述分布式渲染任务之后,合并分别执行所述主力渲染任务和所述分布式渲染任务之后获取的渲染结果,生成渲染效果图;在所述当前闲置服务器的数量小于或等于所述最大并发服务器数量时,根据预设规则选取一个所述当前闲置服务器作为第一主力渲染服务器,并通过所述第一主力渲染服务器对所述渲染任务进行主力渲染。本发明可以对进行渲染的服务器进行动态调配,降低了渲染图像所需的硬件成本,减少了服务器负载,提高了渲染速度,同时还对低峰时闲置的服务器进行了充分利用,提升了渲染效率和用户体验。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中分布式渲染的智能调度方法的应用环境示意图;

图2是本发明一实施例中分布式渲染的智能调度方法的流程图;

图3是本发明一实施例中分布式渲染的智能调度方法的步骤s40的流程图;

图4是本发明又一实施例中分布式渲染的智能调度方法的步骤s40的流程图;

图5是本发明再一实施例中分布式渲染的智能调度方法的步骤s40的流程图;

图6是本发明另一实施例中分布式渲染的智能调度方法的步骤s40的流程图;

图7是本发明一实施例中分布式渲染的智能调度装置的原理框图;

图8是本发明一实施例中计算机设备的示意图。

具体实施方式

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

本发明提供的分布式渲染的智能调度方法,可应用在如图1的应用环境中,其中,客户端(计算机设备)通过网络与服务器进行通信。其中,客户端(计算机设备)包括但不限于为各种个人计算机、笔记本电脑、智能手机、平板电脑、摄像头和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一实施例中,如图2所示,提供一种分布式渲染的智能调度方法,以该方法应用在图1中的服务器为例进行说明,包括以下步骤s10-s50:

s10、获取渲染任务的渲染参数以及各所述渲染参数的渲染级别;也即,在该步骤中,首先需要对渲染任务的脚本进行解析得出各所述渲染参数(是指渲染过程中所需要使用的参数)、渲染参数的比重(是指该渲染参数在渲染过程中的重要程度)和渲染级别(该渲染参数在渲染时所需要达到的级别),以及各所述渲染级别对应的级别比重(达到该渲染参数的渲染级别的工作量的大小所占的比重),进而在以下步骤s20中根据上述内容计算所述渲染任务进行分布式渲染所需的分布式节点数量。

其中,所述渲染参数的类别包括但不限定于为渲染效果、渲染尺寸,渲染类型、渲染版本以及其他。各类别的所述渲染参数的比重可以根据需求设定,比如,可以设定渲染效果、渲染尺寸、渲染类型、渲染版本以及其他分别为一种类别(也即,该实例中一共有5种类别),且上述类别中的每一种类别的渲染参数的比重均为0.2。其中,所述渲染效果中:

渲染级别包括侧重渲染速度(作为优选,可设定级别比重为1)和侧重渲染完成时的效果(作为优选,可设定级别比重为1.5)等。

渲染尺寸包括分辨率为600*800(作为优选,可设定级别比重为0.8)、分辨率为2k(作为优选,可设定级别比重为1.5),分辨率为3k(作为优选,可设定级别比重为2)、分辨率为4k(作为优选,可设定级别比重为3)等。

渲染类型包括照片级(作为优选,可设定级别比重为2),全景图(作为优选,可设定级别比重为3),俯瞰图(作为优选,可设定级别比重为1),普通图(作为优选,可设定级别比重为1)和全景4k图(作为优选,可设定级别比重为5)等。

渲染版本包括收费版(作为优选,可设定级别比重为3)和普通版(作为优选,可设定级别比重为1)等。

可理解地,在一实施例中,所述渲染参数中的“其他”类别中所有渲染级别均可设定为级别比重为1。

s20、根据所述渲染参数以及各所述渲染参数的渲染级别,获取所述渲染任务进行分布式渲染所需的分布式节点数量。

其中,所述分布式节点数量是指在对所述渲染任务同时进行主力渲染和分布式渲染时总共所需要用到的渲染服务器的数量。在本发明中,所述渲染服务器的数量是固定的,在接收到一个新的渲染任务时,可以根据所述分布式节点数量确定是否可以同时通过多个渲染服务器对该渲染任务进行分布式渲染。

在一实施例中,所述步骤s20,也即根据所述渲染参数以及各所述渲染参数的渲染级别,获取所述渲染任务进行分布式渲染所需的分布式节点数量,包括:

通过以下数学模型计算所述渲染任务进行分布式渲染所需的分布式节点数量:

s=a1*b1+a2*b2+…+an*bn

其中:

s为所述渲染任务进行分布式渲染所需的分布式节点数量;

n是指在对所述渲染任务进行分布式渲染时所需的所述渲染参数的个数;比如,若所述渲染参数为五个类别,则n=5。

a1、a2和an分别为所述渲染任务中第1、2和第n个类别的所述渲染参数在分布式渲染中的权重;

b1、b2和bn分别为所述渲染任务的第1、2和第n个类别的所述渲染参数的级别比重,所述级别比重是指所述渲染参数对应的渲染级别在对所述渲染任务进行分布式渲染的过程中所占的比重。

在计算完毕之后,所述分布式节点数量可能大于或等于1,可能小于1,可理解地,在分布式节点数量小于或等于1时,无需进行分布式渲染,仅需要通过一个主力渲染服务器进行主力渲染即可。而在分布式节点数量大于1时,则需要进一步进行判断和动态调配。

s30、接收所述渲染任务的执行指令,若所述分布式节点数量大于1,则检测当前闲置服务器的数量是否大于预设的最大并发服务器数量。

其中,所述执行指令是指用户在客户端通过触发预设按键发送的渲染指令,所述触发方式可以为点击、滑动预设按键等方式。所述执行指令亦可以是用户首先将所有需要渲染的渲染任务加入任务队列中,在所述任务队列中的每一个渲染任务均有一个对应的处理时间节点(该时间节点预先设置或根据当前任务处理情况自动生成,比如,一个渲染任务被服务器领取完毕之后,下一个渲染任务的处理时间节点自动生成),在该处理时间节点,服务器会接收到所述执行指令。

在该实施例中,若所述分布式节点数量大于1,首先需要获取最大并发服务器数量,所述最大并发服务器数量是指在进行分布式渲染时所需要保持的最小的闲置服务器的数量(若不满足,则不进行分布式渲染,仅进行主力渲染),在本发明中,所述最大并发服务器数量可以根据需求设定(所述最大并发服务器数量仅能为正整数),比如设定最大并发服务器数量为大于或等于2的正整数。也即,仅有闲置服务器的数量不少于所述最大并发服务器的数量时(此时才有足够的服务器来对任务队列中的排列在当前执行指令中包含的所述渲染任务之后的其他任务进行处理),才可以进行分布式渲染,也即,仅有在有足够多的剩余闲置服务器的情况下,才调取闲置服务器进行分布式渲染。

因此,若所述分布式节点数量大于1,此时需要检测当前闲置服务器的数量是否大于预设的最大并发服务器数量,以确认是否有足够多数量的闲置服务器可以对所述渲染任务进行分布式处理。

s40、在所述当前闲置服务器的数量大于所述最大并发服务器数量时,将所述渲染任务拆解为一个主力渲染任务和至少一个分布式渲染任务,并通过至少两个所述当前闲置服务器分别执行所述主力渲染任务和所述分布式渲染任务之后,合并分别执行所述主力渲染任务和所述分布式渲染任务之后获取的渲染结果,生成渲染效果图。

也即,在当前闲置服务器的数量大于最大并发服务器数量时,说明当前有一定数量的闲置服务器可以对所述渲染任务进行分布式处理。因此选取与所述分布式节点数量相等或少于所述分布式节点数量(在可以进行分布式渲染的闲置服务器的数量少于所述分布式节点数量时,还可以利用其他正在进行分布式渲染的服务器来对当前的所述渲染任务进行分布式渲染)的闲置服务器,将其中一个闲置服务器对所述主力渲染任务进行主力渲染,将其他选取的所述闲置服务器对所述分布式渲染任务做分布式渲染;也即,将所述渲染任务拆解成与所述分布式节点数量相同数量的渲染任务(包括一个主力渲染任务和至少一个分布式渲染任务)并将各个渲染任务分配到选取的各个闲置服务器(由上述,也可能包括其他正在进行分布式渲染的服务器)分别执行。可理解地,当前并未执行任务渲染任务的服务器被记录为闲置服务器;而被分配渲染任务且正在执行各自被分配的渲染任务的闲置服务器即不再为闲置服务器,而是被记录为正在执行渲染任务的服务器(正在执行渲染任务中的主力渲染任务的被称之为主力渲染服务器,而正在执行渲染任务中的分布式渲染任务则可以被称之为分布式渲染服务器);在执行完毕各自被分配的渲染任务时,该服务器再次被记录为闲置服务器。

s50、在所述当前闲置服务器的数量小于或等于所述最大并发服务器数量时,根据预设规则选取一个所述当前闲置服务器作为第一主力渲染服务器,并通过所述第一主力渲染服务器对所述渲染任务进行主力渲染。

在所述当前闲置服务器的数量小于或等于所述最大并发服务器数量时,说明的闲置服务器需要用来处理任务队列中的后续的任务,因此不能用闲置服务器来对当前的所述渲染任务进行分布式处理。此时,仅选取其中一个所述当前闲置服务器作为第一主力渲染服务器对所述渲染任务进行主力渲染即可。可理解地,所述预设规则可以根据需求设定,比如,随机选取或者根据所述闲置服务器的编号顺序选取或者按照所述闲置服务器的预设优先级进行选取。

在一实施例中,所述步骤s30中,所述接收所述渲染任务的执行指令之后,还包括:

若所述分布式节点数量小于或等于1,根据所述预设规则选取一个所述当前闲置服务器作为第二主力渲染服务器,并通过所述第二主力渲染服务器对所述渲染任务进行主力渲染。也即,在所述分布式节点数量小于或等于1时,无需进行分布式渲染,仅需要通过一个主力渲染服务器进行主力渲染即可。此时,仅选取一个所述当前闲置服务器作为第二主力渲染服务器对所述渲染任务进行主力渲染即可。可理解地,所述预设规则可以根据需求设定,比如,随机选取或者根据所述闲置服务器的编号顺序选取或者按照所述闲置服务器的预设优先级进行选取。

在一实施例中,如图3所示,所述步骤s40中,所述通过至少两个所述当前闲置服务器分别执行所述主力渲染任务和所述分布式渲染任务,包括:

s401,检测所述最大并发服务器数量与所述分布式节点数量之和是否小于或等于所述当前闲置服务器的数量;也即,通过检测所述最大并发服务器数量与所述分布式节点数量之和是否小于或等于所述当前闲置服务器的数量,进一步确定当前闲置服务器的数量是否满足对所述渲染任务进行分布式渲染的需求,也即,确认是否可以调取与所述分布式节点数量一致数量的当前闲置服务器来对所述渲染任务进行渲染处理。

s402,在所述最大并发服务器数量与所述分布式节点数量之和小于或等于所述当前闲置服务器的数量时,选取数量与所述分布式节点数量一致的所述当前闲置服务器;也即,所述最大并发服务器数量与所述分布式节点数量之和小于或等于所述当前闲置服务器的数量时,确认可以调取与所述分布式节点数量一致数量的当前闲置服务器来对所述渲染任务进行渲染处理。在本发明中,所述选取数量与所述分布式节点数量一致的所述当前闲置服务器,若所述分布式节点数量不是整数,而是在小数点之后还有大于0的数值,此时将所述分布式节点数量的整数部分加1之后,即为选取的与所述分布式节点数量一致的数量(本发明中其他内容中对于数量一致的说明均可参照上述,不再赘述)。

s403,将选取的数量与所述分布式节点数量一致的所有所述当前闲置服务器中一个所述当前闲置服务器记录为第三主力渲染服务器,且将除所述第三主力渲染服务器之外的其他选取的所述当前闲置服务器记录为第一分布式渲染服务器;也即,选取的数量与所述分布式节点数量一致的所有所述当前闲置服务器中,其中一个将会作为第三主力渲染服务器对所述主力渲染任务进行主力渲染,剩余的将会对该渲染任务进行分布式处理,大大提升了处理效率。

s404,通过所述第三主力渲染服务器对所述主力渲染任务进行主力渲染,同时通过所述第一分布式渲染服务器对所述分布式渲染任务进行分布式渲染。

在一实施例中,如图4所示,所述步骤s401之后,也即所述检测所述最大并发服务器数量与所述分布式节点数量之和是否小于或等于所述当前闲置服务器的数量之后,还包括:

s405,在所述最大并发服务器数量与所述分布式节点数量之和大于所述当前闲置服务器的数量时,判断当前是否存在正在进行分布式渲染的服务器;也即,在所述最大并发服务器数量与所述分布式节点数量之和大于所述当前闲置服务器的数量时,仅能调取小于所述分布式节点数量的当前闲置服务器来对所述渲染任务进行渲染处理,此时,因为进行分布式处理所需的与所述分布式节点数量一致的服务器的条件并未被满足,此时可以考虑调用正在进行分布式渲染的服务器(正在进行分布式渲染的服务器任务量相对较少,因此也可以同时对多个渲染任务进行分布式渲染),因此,需要判断当前是否存在正在进行分布式渲染的服务器。

s406,若当前不存在正在进行分布式渲染的服务器,则获取所述当前闲置服务器的数量与所述最大并发服务器数量的第一差值,并选取数量与所述第一差值一致的所述当前闲置服务器;也即,若不存在进行分布式渲染的服务器,则仅能利用数量与所述第一差值一致的所述当前闲置服务器来进行分布式渲染。

s407,将选取的数量与所述第一差值一致的所有所述当前闲置服务器中一个所述当前闲置服务器记录为第四主力渲染服务器,且将除所述第四主力渲染服务器之外的其他选取的所述当前闲置服务器记录为第二分布式渲染服务器;也即,若不存在进行分布式渲染的服务器,则仅能利用数量与所述第一差值一致的所述当前闲置服务器来进行分布式渲染。

s408,通过所述第四主力渲染服务器对所述主力渲染任务进行主力渲染,同时通过所述第二分布式渲染服务器对所述分布式渲染任务进行分布式渲染,提升了处理效率。

在一实施例中,如图5所示,所述步骤s405之后,也即所述在所述最大并发服务器数量与所述分布式节点数量之和大于所述当前闲置服务器的数量时,判断当前是否存在正在进行分布式渲染的服务器之后,包括:

s409,若当前存在正在进行分布式渲染的服务器,获取所述分布式节点数量与所述第一差值之间的第二差值;也即,在所述当前闲置服务器的数量不满足对所述分布式渲染任务进行渲染处理时,若当前存在正在进行分布式渲染的服务器,此时可以调用正在进行分布式渲染的服务器处理分布式渲染任务(正在进行分布式渲染的服务器任务量相对较少,因此也可以同时对多个渲染任务进行分布式渲染),此时,首先需要确定该分布式渲染任务还需要多少个(也即,获取所述分布式节点数量与所述第一差值之间的第二差值)正在进行分布式渲染的服务器协助处理。

s410,判断所述正在进行分布式渲染的服务器的数量是否大于或等于所述第二差值;也即,判断当前的正在进行分布式渲染的服务器的数量,是否满足该分布式渲染任务还需要的协助处理所述分布式渲染任务的正在进行分布式渲染的服务器的个数的需求,若所述正在进行分布式渲染的服务器的数量大于或等于所述第二差值,则满足数量需求;否则,则所述正在进行分布式渲染的服务器的数量还不满足需求,因此先调用当前所有的正在进行分布式渲染的服务器协助处理所述渲染任务。

s411,若大于或等于所述第二差值,则选取数量与所述第一差值一致的所述当前闲置服务器,同时选取数量与所述第二差值一致的所述正在进行分布式渲染的服务器;也即,所述正在进行分布式渲染的服务器的数量满足需求,选取数量与所述第二差值一致(该分布式渲染任务所需的所有数量)的所述正在进行分布式渲染的服务器协助处理所述分布式渲染任务即可。

s412,将选取的数量与所述第一差值一致的所有所述当前闲置服务器中一个所述当前闲置服务器记录为第五主力渲染服务器,且将除所述第五主力渲染服务器之外的其他选取的所述当前闲置服务器记录为第三分布式渲染服务器,同时将选取的数量与所述第二差值一致的所述正在进行分布式渲染的服务器记录为第四分布式渲染服务器;也即,通过所述第五主力渲染服务器处理所述主力渲染任务;通过所述第三分布式渲染服务器和所述第四分布式渲染服务器协助处理所述分布式渲染任务,大大提升了处理效率。

s413,通过所述第五主力渲染服务器对所述主力渲染任务进行主力渲染,同时通过所述第三分布式渲染服务器和所述第四分布式渲染服务器对所述分布式渲染任务进行分布式渲染。

在一实施例中,如图6所示,所述步骤s410之后,也即所述判断所述正在进行分布式渲染的服务器的数量是否大于或等于所述第二差值之后,包括:

s414,若所述正在进行分布式渲染的服务器的数量小于所述第二差值,则选取数量与所述第一差值一致的所述当前闲置服务器,同时选取所有所述正在进行分布式渲染的服务器;也即,在所述正在进行分布式渲染的服务器的数量还不满足需求,因此先调用当前所有的正在进行分布式渲染的服务器协助处理所述渲染任务。

s415,将选取的数量与所述第一差值一致的所有所述当前闲置服务器中一个所述当前闲置服务器记录为第六主力渲染服务器,且将除所述第六主力渲染服务器之外的其他选取的所述当前闲置服务器记录为第五分布式渲染服务器,同时将选取的所有所述正在进行分布式渲染的服务器记录为第六分布式渲染服务器;也即,通过所述第六主力渲染服务器处理所述主力渲染任务;通过所述第五分布式渲染服务器和所述第六分布式渲染服务器协助处理所述分布式渲染任务,大大提升了处理效率。

s416,通过所述第六主力渲染服务器对所述主力渲染任务进行主力渲染,同时通过所述第五分布式渲染服务器和所述第六分布式渲染服务器对所述分布式渲染任务进行分布式渲染。

在一实施例中,如图7所示,提供一种分布式渲染的智能调度装置,该分布式渲染的智能调度装置与上述实施例中分布式渲染的智能调度方法一一对应。所述分布式渲染的智能调度装置包括:

第一获取模块11,用于获取渲染任务的渲染参数以及各所述渲染参数的渲染级别;

第二获取模块12,用于根据所述渲染参数以及各所述渲染参数的渲染级别,获取所述渲染任务进行分布式渲染所需的分布式节点数量;

检测模块13,用于接收所述渲染任务的执行指令,若所述分布式节点数量大于1,则检测当前闲置服务器的数量是否大于预设的最大并发服务器数量;

第一渲染模块14,用于在所述当前闲置服务器的数量大于所述最大并发服务器数量时,将所述渲染任务拆解为一个主力渲染任务和至少一个分布式渲染任务,并通过至少两个所述当前闲置服务器分别执行所述主力渲染任务和所述分布式渲染任务之后,合并分别执行所述主力渲染任务和所述分布式渲染任务之后获取的渲染结果,生成渲染效果图;

第二渲染模块15,用于在所述当前闲置服务器的数量小于或等于所述最大并发服务器数量时,根据预设规则选取一个所述当前闲置服务器作为第一主力渲染服务器,并通过所述第一主力渲染服务器对所述渲染任务进行主力渲染。

关于分布式渲染的智能调度装置的具体限定可以参见上文中对于分布式渲染的智能调度方法的限定,在此不再赘述。上述分布式渲染的智能调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机可读指令和数据库。该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。该计算机可读指令被处理器执行时以实现一种分布式渲染的智能调度方法。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,处理器执行计算机可读指令时实现以下步骤:

获取渲染任务的渲染参数以及各所述渲染参数的渲染级别;

根据所述渲染参数以及各所述渲染参数的渲染级别,获取所述渲染任务进行分布式渲染所需的分布式节点数量;

接收所述渲染任务的执行指令,若所述分布式节点数量大于1,则检测当前闲置服务器的数量是否大于预设的最大并发服务器数量;

在所述当前闲置服务器的数量大于所述最大并发服务器数量时,将所述渲染任务拆解为一个主力渲染任务和至少一个分布式渲染任务,并通过至少两个所述当前闲置服务器分别执行所述主力渲染任务和所述分布式渲染任务之后,合并分别执行所述主力渲染任务和所述分布式渲染任务之后获取的渲染结果,生成渲染效果图;

在所述当前闲置服务器的数量小于或等于所述最大并发服务器数量时,根据预设规则选取一个所述当前闲置服务器作为第一主力渲染服务器,并通过所述第一主力渲染服务器对所述渲染任务进行主力渲染。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令被处理器执行时实现以下步骤:

获取渲染任务的渲染参数以及各所述渲染参数的渲染级别;

根据所述渲染参数以及各所述渲染参数的渲染级别,获取所述渲染任务进行分布式渲染所需的分布式节点数量;

接收所述渲染任务的执行指令,若所述分布式节点数量大于1,则检测当前闲置服务器的数量是否大于预设的最大并发服务器数量;

在所述当前闲置服务器的数量大于所述最大并发服务器数量时,将所述渲染任务拆解为一个主力渲染任务和至少一个分布式渲染任务,并通过至少两个所述当前闲置服务器分别执行所述主力渲染任务和所述分布式渲染任务之后,合并分别执行所述主力渲染任务和所述分布式渲染任务之后获取的渲染结果,生成渲染效果图;

在所述当前闲置服务器的数量小于或等于所述最大并发服务器数量时,根据预设规则选取一个所述当前闲置服务器作为第一主力渲染服务器,并通过所述第一主力渲染服务器对所述渲染任务进行主力渲染。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一非易失性计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路dram(sldram)、存储器总线直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元或模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元或模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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