集群渲染环境中基于pkdt树的动态反馈负载均衡方法

文档序号:6398055阅读:538来源:国知局
专利名称:集群渲染环境中基于pkdt树的动态反馈负载均衡方法
技术领域
本发明涉及集群渲染领域,具体涉及一种集群渲染环境中基于PKDT树的动态反馈负载均衡方法。
背景技术
目前,高真实感渲染在很多领域已经有了越来越多的应用,例如在电影特效的制作,真实感场景的展示等方面都有重要应用。高真实感渲染需要极高的计算能量,如果对渲染速度也有较高要求,那么单机的渲染能力已经无法满足,二需要使用集群技术。负载均衡问题是影响集群渲染系统整体性能的重要因素之一。集群渲染系统中,由于不同渲染节点间处理能力上的差异或者任务分配的不均匀,会出现不同渲染节点任务完成时间不一致的情况,这样完成时间早的节点只能闲置等待处理时间慢的渲染节点,从而造成了集群渲染系统资源的浪费。目前解决负载不均衡问题的方法从大类上来说有两种,一是静态平衡方法;二是动态平衡方法。静态平衡方法通过对整个集群渲染系统中各个渲染节点的计算能力进行估算,然后在初始化阶段就将任务分配好,一旦分配就不再改变。这种方法局限性非常大,首先,通常难以准确估算渲染节点的计算能力以及网络环境等;其次,由于每个渲染节点的计算环境、网络环境一直处于不断的变化之中,这些渲染节点的计算能力以及网络传输能力也是不停地变化的,因此,这种方法通常难以取得好的效果。动态平衡方法是目前流行的方法,目前有很多这一类算法,像Diffustion方法,,Median-cut算法Master-slave方法等,但是仍没有成熟的动态负载平衡方法能够用于集群渲染环境中按屏幕空间划分的方式。PKDT(Prediction KD Tree)即预测KD树,它记录了当前屏幕空间的一种任务划分,PKDT树的每个叶子节点对应着屏幕空间中的一个像素子块。PKDT树基于如下理论前提前巾贞和后巾贞之间的同一像素子块存在时空连续性,即某一子块的下一巾贞渲染所需的时间跟上一帧非常接近,所以能够利用上一帧记录的时间作为预估值。

发明内容
本发明提供了一种集群渲染环境中基于PKDT树的动态反馈负载均衡方法,集群渲染系统的服务器将每帧渲染任务按屏幕空间进行任务划分,并将划分后的子任务在各渲染机器节点中进行动态平衡分配,充分挖掘集群渲染系统的最佳渲染能力。一种集群渲染环境中基于PKDT树的动态反馈负载均衡方法,包括如下步骤(I)针对需要渲染的三维模型,服务器将渲染任务划分成若干子任务,将这些子任务预指定给每个渲染机器节点,并逐个进行传送;(2)每个渲染机器节点执行完一个子任务后,向服务器返回渲染结果图像,并申请下一个子任务;(3)服务器节点记录每个渲染机器节点完成每个子任务的时间以及每个渲染机器节点完成的子任务的数量,并依据该记录结果将未完成的子任务在渲染机器节点之间进行动态平衡分配,直至完成该帧渲染任务。集群渲染系统的服务器节点将渲染任务依据屏幕空间划分为若干子任务,并将子任务预先指定给每个渲染机器节点,每个渲染机器节点即集群渲染系统中的某台机器,预先指定时,遵循每台渲染机器完成预先指定的子任务的时间尽可能一样的原则,最后,每次向渲染机器传送一个子任务,服务器节点记录每台渲染机器完成每个子任务的时间,并依据该记录结果将未完成的子任务在各台渲染机器之间进行新的预先指定。在新的预先指定过程中,首先对未完成的子任务进行重新划分以及将重新划分后的所有子任务在不同的渲染机器节点(机器)之间进行新的预先指定。作为优选,所述步骤(I)中服务器节点向渲染机器节点预先指定子任务之前,根据每个子任务中(需要渲染的像素的数量)预估每个子任务的计算量。优选地,所述步骤(I)中划分渲染任务时,每个子任务的计算量相同。也即每个子任务需要渲染的像素的数量相同。作为优选,所述步骤(I)中子任务数目是渲染节点数目的整数倍。便于在渲染机器节点中平均分配子任务,使每个渲染机器节点在相同的时间内完成渲染任务。作为优选,所述步骤(I)中将需要渲染的三维模型投影到屏幕空间,对于屏幕空间的像素,若与三维模型相对应的几何点落到该像素,则该像素即为需要渲染的像素。作为优选,所述步骤(3)中对比各个渲染机器节点完成每个子任务的时间,优先向完成时间短的渲染机器节点传送下一个子任务。也即渲染速度快的渲染机器节点将完成较多的渲染任务,使整个集群渲染系统的渲染速度达到性能最高。本发明集群渲染环境中基于PKDT树的动态反馈负载均衡方法具有以下有益效果(I)将每帧渲染任务划分为若干子任务,子任务分别由不同的渲染机器完成,可以有效平衡不同渲染机器之间的渲染计算量;(2)子任务的划分数目可以人为设置,计算能力弱的渲染机器也可以加入到集群系统中,大大地提高集群渲染系统的扩展性;(3)子任务的划分结束后,依次向各台渲染机器进行传送即可,可以减小图像处理和传输的时间消耗;(4)充分利用了集群渲染系统的整体计算能力,使集群渲染系统的整体性能达到最好。


图1为一颗8节点的PKDT树;图2为一个宽度为12的子块初次划分时的示意图。
具体实施例方式下面结合附图,对本发明集群渲染环境中基于PKDT树的动态反馈负载均衡方法做详细描述。一种集群渲染环境中基于PKDT树的动态反馈负载均衡方法,包括以下步骤(I)首先,针对需要渲染的三维节点模型,服务器预先将渲染任务划分成若干子任务。每帧的渲染任务就是需要渲染得到的最终结果,渲染任务划分采用屏幕空间的方式划分,将其按照像素区域划分成若干相互独立的子像素区域,其中,每一个子像素区域被称为子任务,任务划分结束后,对每一个子任务进行编号标记。例如将一张1920*1080的图像分割成192*108的100张子图像,其对应100个子任务。(2)将步骤(I)中划分得到的子任务预先指定给每个渲染机器节点,并逐个进行传送。服务器节点预先将渲染任务划分成若干子任务后进行初始化预指定,以步骤(I)中1920*1080的图像举例,如果有10台渲染机器,也即10个渲染机器节点,那么每台渲染机器会被预指定10个子任务,每台渲染机器每次被传送I个子任务。(3)每个渲染渲染节点对传送的子任务进行渲染运算,每次子任务完成后,立即将渲染结果图像返回给服务器节点,完成预指定的所有子任务并将所有渲染结果图像返回给服务器节点之后,该渲染机器节点向服务器节点请求下一次渲染任务。(4)服务器节点记录每个渲染机器节点完成每个子任务的时间以及每个渲染机器节点完成的子任务的数量,并依据该记录结果调整每个渲染机器节点预指定的子任务的数量。例如,有三台机器,分别为A、B和C, A完成一个子任务的时间是2s, B完成一个子任务的时间是10s,C完成一个子任务的时间是20s,那么增加A的子任务的数量,减少C的子任务的数量,维持B的子任务的数量不变,能够达到A、B和C完成预指定的子任务的时间尽可能地相同,最大限度地利用每台渲染机器的计算能力,提高整体集群系统渲染的效率。服务器节点得到所有渲染机器节点的渲染结果图像后,将最终的渲染图像呈现在屏幕上。下面结合PKDT树具体描述动态负载反馈均衡方法一颗PKDT树的根节点r代表整个屏幕空间的每帧渲染任务,每个渲染机器节点都有两个子节点,代表当前节点划分出来的两个子块,子节点可以继续划分,直到叶子节点(即子块)的数目接近子任务的数目为止,每个叶子节点对应一个子任务。PKDT树的所有叶子树节点(子块),记为L(T),表示了屏幕空间每帧任务的实际划分情况,每个叶子节点I e L(T)。记录每个子块的相对宽高和位置的同时,还记录完成该块任务所需的时间t(l)。为了保持屏幕空间划分的均衡性和连续性,用扫描线沿坐标方向进行扫描,然后计算该扫描线所经区域和剩余区域的渲染任务的时间,两个区域的渲染任务时间一个递减,一个递增,在扫描线动态移动过程中的某一点会相同,经过该点的扫描线即为分割线。为了尽可能快递趋近于负载均衡,初始化时对屏幕空间里的子任务所需的渲染时间预估,然后根据预估的时间划分屏幕空间,这样能够有效达到负载平衡所需的步骤和时间。首先,根据相机(camera)设置把需要渲染的三维模型投影到大小为W*H(宽*高)的屏幕空间,对于屏幕空间的每一个像素C(i,j) (0彡i <H,0< j <W),其中,i为C像素的横坐标,j为C像素的纵坐标,若模型的几何面片落到该像素,则该像素被标记为1,若模型的几何面片没有落到该像素,则该像素被标记为O。如图1所示,对于左上角位置为(Xc^yci),大小为w*h(宽*高,且假设w > h)的当前子块D,利用式
权利要求
1.一种集群渲染环境中基于PKDT树的动态反馈负载均衡方法,其特征在于,包括如下步骤: (1)针对需要渲染的三维模型,服务器节点将每帧渲染任务划分成若干子任务,将这些子任务预先指定给每个渲染机器节点,并逐个进行传送; (2)每个渲染机器节点执行完一个子任务后,向服务器机器返回渲染结果图像,并申请下一个子任务; (3)服务器节点记录每个渲染机器节点完成每个子任务的时间以及每个渲染机器节点完成的子任务的数量,并依据该记录结果将未完成的子任务在渲染机器节点之间进行动态平衡,直至完成该帧渲染任务。
2.如权利要求1所述的集群渲染环境中基于PKDT树的动态反馈负载均衡方法,其特征在于,所述步骤(1)中服务器向渲染节点预先指定子任务之前,根据每个子任务中需要渲染的像素的数量预估每个子任务的计算量。
3.如权利要求2所述的集群渲染环境中基于PKDT树的动态反馈负载均衡方法,其特征在于,所述步骤(1)中划分渲染任务时,每个子任务的计算量相同。
4.如权利要求3所述的集群渲染环境中基于PKDT树的动态反馈负载均衡方法,其特征在于,所述步骤(1)中子任务数目是渲染机器节点数目的整数倍。
5.如权利要求4所述的集群渲染环境中基于PKDT树的动态反馈负载均衡方法,其特征在于,所述步骤(1)中将需要渲染的模型投影到屏幕空间,对于屏幕空间的每一个像素,若与模型相对应的几何面片落到该像素,则该像素即为需要渲染的像素。
6.如权利要求5所述的集群渲染环境中基于PKDT树的动态反馈负载均衡方法,其特征在于,所述步骤(3)中对比各个渲染机器节点完成每个子任务的时间,优先向完成时间短的渲染机器节点传送下一个子任务。
全文摘要
本发明公开了一种集群渲染环境中基于PKDT树的动态反馈负载均衡方法,包括如下步骤(1)针对需要渲染的三维模型,服务器将渲染的每帧任务划分成若干子任务,将这些子任务预先指定给每个渲染机器节点,并逐个进行传送;(2)每个渲染机器节点执行完一个子任务后,向服务器机器节点返回渲染结果图像,并申请下一个子任务;(3)服务器记录每个渲染机器节点完成每个子任务的时间以及每个渲染机器节点完成的子任务的数量,并按照该记录结果将未完成的子任务在渲染机器节点之间进行动态平衡分配,直至完成渲染这帧任务。本发明集群渲染环境中基于PKDT树的动态反馈负载均衡方法,将每帧渲染任务按屏幕空间进行均匀划分,并将划分后的子任务在各渲染机器节点中进行动态平衡分配,充分挖掘集群渲染系统的最佳渲染能力。
文档编号G06F9/50GK103077088SQ20131001815
公开日2013年5月1日 申请日期2013年1月17日 优先权日2013年1月17日
发明者张勤飞, 赵磊, 鲁东明, 任艳姣, 陆胜, 李伟 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1