一种柔性的渲染集群动态部署系统与方法
【专利摘要】本发明公开了一种柔性的渲染集群动态部署系统与方法;所述系统包括:渲染任务管理平台用于向集群管理节点的渲染单元控制调度器分配任务,并接受集群管理节点的渲染单元控制调度器上传的任务处理进度信息;渲染单元控制调度器用于向若干个渲染单元分配任务,并接受每个渲染单元反馈的任务处理进度信息;用于处理渲染单元的计算节点请求,并在渲染任务执行过程中,按照优先级顺序动态调整渲染单元中计算节点数量;每个所述渲染单元包括渲染单元Master进程,每个渲染单元Master进程均与若干个计算节点通信,每个计算节点对应一个渲染单元Slave进程。本发明有效的利用计算资源,最大化资源利用率;并在不影响服务质量的情况下,提高渲染农场的系统并发用户数。
【专利说明】一种柔性的渲染集群动态部署系统与方法
【技术领域】
[0001]本发明涉及高性能计算技术,具体涉及一种柔性的渲染集群动态部署系统与方法。
【背景技术】
[0002]渲染集群(或称渲染农场)属于分布式集群计算系统,是一种利用现有CPU、以太网、及操作系统构建的超级计算机,它使用主流的商业计算机硬件设备达到或接近超级计算机的计算能力。渲染农场建立在计算机集群上,集群系统中的单个计算机通常称为节点,其中一个或多个作为管理节点,其它节点称为计算节点,节点间通常通过局域网连接,但也有其它的可能连接方式,如InfiniBand。集群能够改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。渲染农场包括Web客户端、渲染任务管理平台、真实感渲染引擎等软件系统。用户通过Web客户端在线提交渲染任务,由渲染任务管理平台进行任务调度和管理,将渲染任务交由集群中部署于计算节点上的渲染引擎完成。
[0003]现有渲染农场一般采用静态部署的方法分配计算资源,所谓静态部署即计算节点分配给渲染任务后不能动态增减分配的节点数量,只能以整体的方式回收,这种部署方法的缺点是当渲染任务负载较小 ,所分配的部分计算节点会处于空闲状态,不能分配给其它任务,从而造成资源浪费,降低资源利用率。
[0004]中国专利(申请号:200910013740,专利名称:基于DEADLINE图形工作站渲染集群的弹性构建方法)中提出了一致基于DEADLINE图形工作站渲染集群的弹性构建方法,该方法支持按任务动态分配计算资源,但未考虑当有多个任务时的资源分配策略,而且动态部署是通过人工运行脚本实现,不能够自动进行动态部署。
[0005]【张雪峰.基于动态反馈的集群渲染系统的设计与实现.北京工业大学硕士学位论文.2009】虽然提出了一种基于动态反馈负载平衡调度策略,但该方法是对于静态的计算资源,通过周期性负载信息查询的方式,进行渲染帧在计算节点中的动态分配,从而达到计算资源间的负载平衡,这可以在一定程度上提高集群工作效率,但是由于渲染帧的粒度过小,在其“查询一修正一任务分配一查询”的动态调整过程中会造成计算节点的频繁通信影响计算或者负载信息不准确影响任务分配的问题。
[0006]中国专利(申请号:201210431551,专利名称:基于云计算渲染农场的构建方法)中提出了一致基于云计算渲染农场的构建方法,该专利中提到的支持渲染服务器即计算资源的动态增减,是支持在总体计算资源数量上的动态增减,并不能够根据任务的数量、任务量的大小来动态分配计算资源。
【发明内容】
[0007]本发明针对现有渲染农场存在的计算资源浪费、利用率低的问题,提供了一种柔性的渲染集群动态部署系统与方法,能够有效的利用计算资源,最大化资源利用率;并在不影响服务质量的情况下,提高渲染农场的系统并发用户数。
[0008]为了实现计算资源动态部署的目的,本发明采用如下技术方案:
[0009]一种柔性的渲染集群动态部署系统,包括
[0010]渲染任务管理平台,用于向集群管理节点的渲染单元控制调度器分配任务,并接受集群管理节点的渲染单元控制调度器上传的任务处理进度信息;
[0011 ] 渲染单元控制调度器,用于向若干个渲染单元分配任务,并接受每个渲染单元反馈的任务处理进度信息;还用于处理渲染单元的计算节点请求,并在渲染任务执行过程中,按照优先级顺序动态部署渲染单元中计算节点数量;
[0012]每个所述渲染单元包括渲染单元Master进程,每个渲染单元Master进程均与若干个计算节点通信,每个计算节点对应一个渲染单元Slave进程。
[0013]一种柔性的渲染集群动态部署方法,主要包括如下步骤:
[0014]步骤(I):启动渲染单元控制调度器;
[0015]步骤(2):渲染单元控制调度器监听渲染任务管理平台的渲染请求,接受渲染任务并启动渲染单元进行任务调度;
[0016]步骤(3):渲染单元Master进程接收渲染单元控制调度器分配的任务,开始渲染工作,并周期性向渲染单元控制调度器汇报进度及负载信息;渲染单元控制调度器处理渲染单元Master进程的计算节点请求,并在渲染任务执行过程中,动态调整渲染单元中计算节点数量;
[0017]步骤(4):渲染单元Slave进程接收渲染单元Master进程推送的任务,处理任务并周期性向渲染单元Master进程汇报进度和结果;
[0018]步骤(5 ):渲染任务结束或被取消后,渲染单元控制调度器回收渲染单元所占用的计算节点。
[0019]所述步骤(I)包括如下步骤:
[0020]步骤(1.1):启动渲染单元控制调度器;
[0021]步骤(1.2):渲染单元控制调度器初始化渲染单元元数据信息。
[0022]所述步骤(1.2)的渲染单元元数据信息,包括:渲染单元占用的计算资源、渲染单元的负载信息和渲染单元的渲染任务信息。
[0023]所述渲染单元的负载信息,包括:渲染单元正在处理的渲染任务总帧数、尚未开始渲染的帧数及已经完成的帧数。
[0024]所述渲染任务信息,包括:任务所属用户信息、任务的优先级、渲染文件所在路径及每巾贞的渲染参数。
[0025]所述步骤(2)包括如下步骤:
[0026]步骤(2.1):渲染单元控制调度器监听控制调度服务端口,等待与渲染任务管理平台进行连接;
[0027]步骤(2.2):渲染单元控制调度器与渲染任务管理平台连接后,渲染单元控制调度器接收渲染任务管理平台的任务请求,并接收渲染任务管理平台发送的渲染任务;
[0028]步骤(2.3):渲染单元控制调度器根据当前渲染任务的所属用户权限、优先级及渲染集群的负载情况,启动一个渲染单元,即启动渲染单元Master进程,并分配任务;
[0029]步骤(2.4):渲染单元控制调度器调度任务时,按照渲染任务优先级优先分配优先级较高的任务,对有相同优先级的任务,采用先到先分配的策略。
[0030]所述步骤(3)包含如下步骤:
[0031]步骤(3.1):渲染单元Master进程启动后,等待渲染单元控制调度器进行连接;
[0032]步骤(3.2):渲染单元Master进程与渲染单元控制调度器连接后,渲染单元Master进程接收渲染单元控制调度器发送的渲染任务;
[0033]步骤(3.3):渲染单元Master进程根据渲染任务所属用户的权限及当前任务负载,向渲染单元控制调度器申请计算节点,申请节点数量不应低于用户权限中对应的节点数下限,不应高于用户权限中对应的节点数上限;渲染单元控制调度器将根据渲染单元Master进程的请求分配计算节点;
[0034]步骤(3.4):渲染单元Master进程在渲染单元控制调度器分配的计算节点上远程启动渲染单元Slave进程;
[0035]步骤(3.5):任务处理过程中,渲染单元Master进程周期性向渲染单元控制调度器汇报进度信息及负载信息,其中,周期的时间间隔为预定的阈值;进度信息为渲染单元Slave进程汇报的进度的汇总;负载信息包括:正在渲染的帧数、完成渲染的帧数及尚未开始渲染的帧数。
[0036]所述步骤(3.3)的渲染单元控制调度器将根据渲染单元Master进程的请求分配计算节点的过程,包括如下步骤:
[0037]步骤(3.3.1):渲染单元控制调度器实时监控渲染单元的负载信息以及空闲节点数量,其中负载信息为渲染单元Master进程推送的负载信息的汇总;
[0038]步骤(3.3.2):渲染单元控制调度器监听渲染单元Master进程的计算节点申请请求,
[0039]如果当前有足够的空闲节点,即空闲节点数量大于等于该渲染单元所申请的计算节点数,则分配相应计算节点给该渲染单元;
[0040]如果渲染单元申请计算节点时,当前没有充足空闲节点,即空闲节点数量小于该渲染单元所申请的计算节点数,则先分配所有空闲节点给该渲染任务对应的渲染单元,然后按照优先级顺序,剥夺低优先级渲染单元中的节点,并分配给该渲染单元;
[0041]步骤(3.3.3):如果当前有充足空闲节点,即当前空闲节点数大于一个预定的阈值,则将空闲节点按优先级顺序按需分配给负载较高的渲染单元;其中,负载较高的渲染单元指,该渲染单元未渲染帧数与其使用的计算节点数比值大于预定阈值的渲染单元。
[0042]所述步骤(4)包含如下步骤:
[0043]步骤(4.1):渲染单元Slave进程启动后,监听渲染单元通信端口,等待渲染单元Master进程推送的渲染巾贞任务;
[0044]步骤(4.2):渲染单元Slave进程接收到帧任务后,开始渲染,并周期性向渲染单元Master进程汇报帧任务进度;其中,周期的时间间隔为预定的阈值;渲染单元Slave进程渲染帧任务时,通过创建子进程,由子进程调用第三方渲染引擎进行渲染,避免因渲染引擎崩溃导致渲染单元Slave进程的崩溃;
[0045]步骤(4.3):渲染单元Slave进程渲染结束后,将渲染结果发送给渲染单元Master进程;当渲染出现错误时,渲染单元Slave进程将错误信息发送给渲染单元Master进程。
[0046]所述步骤(5)包括如下步骤:[0047]步骤(5.1):渲染任务结束,即渲染单元处理完用户渲染任务后,渲染单元Master进程终止所有渲染单元Slave进程,释放该渲染单元占用的计算节点,并通知渲染单元控制调度器对释放的计算节点进行回收;
[0048]步骤(5.2):渲染单元控制调度器接收到用户的任务取消请求,通知正在进行渲染工作的渲染单元取消任务;
[0049]所述任务取消请求包括:
[0050]强制取消,渲染单元Master进程接收到任务强制取消请求后,通知渲染单元Slave进程立即结束当前渲染任务并终止;
[0051]非强制取消,渲染单元Master进程接收到任务非强制取消请求后,等待已分配的任务渲染结束,并将未分配的任务从任务列表中去除,然后该渲染单元释放所占用的计算节点,并通知渲染单元控制调度器对释放的计算节点进行回收;
[0052]步骤(5.3):渲染任务结束或被取消后,渲染单元控制调度器更新渲染单元元数据。
[0053]本发明的有益效果:
[0054]1.本发明首次提出渲染单元的概念,有效利用了渲染任务中一个镜头内的多个渲染帧共享数据和具有相似的计算资源占用量的特点,将多个计算节点组成一个渲染单元完成连续帧的渲染,降低了任务分配和重分配带来的通信负担,提高了计算节点的利用率;
[0055]2.本发明实现了在分配给任务的计算资源间的负载平衡:本发明对渲染任务采取分级调度策略,即将用户渲染任务中的每个镜头划分成一个或多个渲染子任务,每个渲染子任务由该镜头中的连续帧组成,每一帧交由一个计算节点进行渲染,称之为帧任务。每个渲染子任务由一个渲染单元进行处理,帧任务由渲染单元Master进程进行集中分配,Slave进程在渲染完一巾贞任务后,才能获取下一巾贞任务;
[0056]3.本发明通过动态增减渲染单元中的计算节点数,实现了资源的自动动态部署,根据任务的数量和大小,动态调整所分配的资源数量,解决了静态部署带来的计算资源浪费和集群系统利用率低的问题。
【专利附图】
【附图说明】
[0057]图1为渲染集群动态部署与管理总体流程图。
【具体实施方式】
[0058]下面结合附图与实施例对本发明作进一步说明。
[0059]对渲染任务采取分级调度策略,即将用户渲染任务中的每个镜头划分成一个或多个渲染子任务,每个渲染子任务由该镜头中的连续帧组成,每一帧交由渲染引擎进行渲染,称之为帧任务。
[0060]对计算资源采取分层管理策略,即将多个独立的计算节点组成一个渲染单元,作为完成一个渲染子任务的基本单位。
[0061]用户的渲染任务经由渲染任务管理平台将渲染子任务发送给渲染单元控制调度器,渲染单元控制调度器根据任务优先级及用户的权限来进行二级调度,并将每个渲染子任务交给一个渲染单元来处理。同时渲染单元控制调度器还负责管理已经创建的渲染单元、维护渲染单元元数据信息、计算节点的分配和回收。渲染单元元数据信息包括渲染单元占用的计算资源、渲染单元的负载信息和渲染单元的渲染任务信息等,其中渲染单元的负载信息包括,渲染单元正在处理的渲染任务总帧数、尚未开始渲染的帧数及已经完成的帧数;渲染任务信息包括任务所属用户信息、任务的优先级、渲染文件所在路径及每帧的渲染参数。
[0062]渲染单元在物理上由多个独立的计算节点组成,在实现上使用Master/Slave主从编程模式,即构成并行程序的进程中有一个主进程(Master),其余为从进程(Slave)。主进程与从进程运行不同的代码,但所有从进程运行的代码是相同的。主进程负责整个并行程序的控制,分配数据和计算任务给从进程,而从进程负责完成分配给它的数据的处理和计算任务[并行计算导论/张林波等编著.北京:清华大学出版社;第I版(2006年7月I日).]。每个渲染单元包含一个运行于集群管理节点的主进程,和运行于所管理的各个计算节点的从进程。主进程负责与渲染单元控制调度器交互,接收渲染单元控制调度器发送的渲染任务,分配任务给从进程,监听各从进程的消息;从进程负责接收渲染单元Master进程推送的渲染任务,进行渲染工作,在渲染过程中,渲染单元Slave进程定期将渲染进度发送给渲染单元Master进程,在渲染结束后,将渲染结果发送给渲染单元Master进程。
[0063]在下面的叙述中,本发明做如下假设:
[0064]渲染集群中总的计算节点数为Ntotal,空闲计算节点为Nidle,那么已经分配的计算节点数为
^dispatch ^total ^idle ;
[0065]渲染单元U分配到的渲染任务的优先级为pu,渲染任务中的总帧数为fu;渲染单元U已经渲染的帧数为ffinished,正在渲染的帧数为fMndCTing,等待渲染的帧数为fMady,则
fu ffini shed+frendering+fready ?`
[0066]渲染单元U分配到的计算节点数量为nu,即渲染单元U可并行渲染的帧数f〈=nu,渲染单元U所属用户可用计算节点数上下限分别为nmaxu、nfflinu,则nminu〈nu〈nmaxu
[0067]本发明实施过程包括以下步骤:
[0068]1.在集群管理节点上启动渲染单元控制调度器;
[0069]2.渲染单元控制调度器监听渲染任务管理平台的渲染请求,接受任务并启动渲染单元进行任务调度;
[0070]3.渲染单元Master进程接收渲染单元控制调度器分配的任务,开始渲染工作,并周期性向渲染单元控制调度器汇报进度及负载信息;
[0071]4.渲染单元Slave进程接收渲染单元Master进程推送的帧任务,处理任务并周期性汇报进度和结果;
[0072]5.渲染任务结束或被取消后,渲染单元控制调度器回收渲染单元所占用的计算节
占.[0073]6.渲染单元控制调度器处理渲染单元Master进程的计算节点请求,并在渲染任务执行过程中,动态调整渲染单元中计算节点数量;
[0074]所述步骤(1)包括如下步骤:
[0075]步骤(1.1):在集群管理节点上启动渲染单元控制调度器;
[0076]步骤(1.2):渲染单元控制调度器初始化渲染单元元数据信息,渲染单元元数据信息,包括渲染单元占用的计算资源、渲染单元的负载信息和渲染单元的渲染任务信息等。其中,渲染单元的负载信息包括,渲染单元正在处理的渲染任务总帧数、尚未开始渲染的帧数及已经完成的帧数;渲染任务信息包括任务所属用户信息、任务的优先级、渲染文件所在路径及每帧的渲染参数;
[0077]所述步骤(2)包括如下步骤:
[0078]步骤(2.1):渲染单元控制调度器监听控制调度服务端口,等待渲染任务管理平台进行连接;
[0079]步骤(2.2):渲染任务管理平台连接后,渲染单元控制调度器接收其任务请求,然后接收渲染任务管理平台发送的渲染任务;
[0080]步骤(2.3):渲染单元控制调度器根据当前渲染任务的所属用户权限、优先级及渲染农场的负载情况,启动一个渲染单元,即启动渲染单元Master进程,并分配任务;
[0081]步骤(2.4):渲染单元控制调度器调度任务时,按照渲染任务优先级优先分配优先级较高的任务,对有相同优先级的任务,采用先到先分配的策略;
[0082]所述步骤(3)包含如下步骤:
[0083]步骤(3.1):渲染单元Master进程启动后,等待渲染单元控制调度器进行连接;
[0084]步骤(3.2):渲染单元控制调度器连接后,渲染单元Master进程接收其发送的渲染任务;
[0085]步骤(3.3):渲染单元Master进程根据渲染任务所属用户的权限及当前任务负载,向渲染单元控制调度器申请计算节点,申请节点数量为min(fu,nmaxu),即用户权限中对应的节点数上限、渲染任务中的帧数两者间的最小值。渲染单元控制调度器将根据Master进程的请求分配计算节点,详细分配策略请参看步骤6 ;
[0086]步骤(3.4):渲染单元Master进程在渲染单元控制调度器分配的计算节点上远程启动Slave进程;
[0087]步骤(3.5):任务处理过程中,渲染单元Master进程周期性向渲染单元控制调度器汇报进度及负载情况,其中周期时间间隔为预定的阈值;进度信息为渲染单元Slave进程汇报的进度的汇总;负载信息包括,正在渲染、完成渲染及尚未开始渲染的帧数。
[0088]所述步骤(4)包括如下步骤:
[0089]步骤(4.1):渲染单元Slave进程启动后,监听渲染单元通信端口,等待Master进程推送的渲染帧任务;
[0090]步骤(4.2):渲染单元Slave进程接收到巾贞任务后,开始渲染,并周期性向Master进程汇报帧任务进度。其中,周期时间间隔为预定的阈值;Slave进程渲染帧任务时,通过创建子进程,由子进程调用第三方渲染引擎进行渲染,避免因渲染引擎崩溃导致渲染单元Slave进程的崩溃;
[0091]步骤(4.3):渲染单元Slave进程渲染结束后,将渲染结果发送给渲染单元Master进程,或者当渲染出现错误时,将错误信息发送给渲染单元Master进程。
[0092]所述步骤(5)包括如下步骤:
[0093]步骤(5.1):渲染任务结束,即渲染单元处理完用户渲染任务后,渲染单元Master进程终止所有渲染单元Slave进程,释放该渲染单元占用的计算节点,并通知渲染单元控制调度器对释放的计算节点进行回收;
[0094]步骤(5.2):渲染单元控制调度器接收到用户的任务取消请求,通知正在进行渲染工作的渲染单元取消任务,取消请求包括:强制取消,渲染单元Master进程接收到任务取消请求后,通知渲染单元Slave进程立即结束当前渲染任务并终止;非强制取消,渲染单元Master进程接收到任务取消请求后,等待已分配的任务渲染结束,并将未分配的任务从任务列表中去除。然后该渲染单元释放所占用的计算节点,并通知渲染单元控制调度器回收;
[0095]步骤(5.3):渲染任务结束或被取消后,渲染单元控制调度器更新渲染单元元数据。
[0096]所述步骤(6)包括如下步骤:
[0097]步骤(6.1):渲染单元控制调度器实时监控渲染单元的负载信息以及空闲节点数量,其中负载信息为渲染单元Master进程推送的负载信息的汇总;
[0098]步骤(6.2):渲染单元控制调度器监听渲染单元Master进程的计算节点申请请求,如果当前有足够的空闲节点,即空闲节点数量大于等于该渲染单元所申请的计算节点数,贝1J分配相应计算节点给该渲染单元;如果渲染单元申请计算节点时,当前没有充足空闲节点,即空闲节点数量小于该渲染单元所申请的计算节点数,则先分配所有空闲节点给该渲染任务对应的渲染单元,然后按照优先级顺序,剥夺低优先级渲染单元中的节点,并分配给该渲染单元。具体剥夺步骤如下:
[0099]步骤(6.2.1):将渲染任务优先级低于上述渲染单元U的渲染单元按优先级进行排序,按照由低到高依次为U1H
[0100]步骤(6.2.2):按上述顺序依次剥夺其节点,即首先剥夺渲染单元U1中的部分计算节点,直到满足渲染单元U所申请的计算节点数为止。剥夺后渲染单元U1中的剩余节点数量应满足nul≥min(nfflinul, freadyul),即剥夺后剩余节点数量大于用户权限中对应的节点数下限与该渲染单元未开始渲染帧数中的最小值;
[0101]步骤(6.2.3):将剥夺的计算节点分配给上述渲染单元U。如果被剥夺的计算节点上存在已经开始的渲染任务,则等待该渲染任务结束,然后再进行分配;
[0102]步骤(6.2.4):剥夺计算节点后,渲染单元控制调度器更新元数据信息,更新内容包括被剥夺渲染单元中包含的计算节点数,及上述渲染单元U中包含的计算节点数;
[0103]步骤(6.3):如果当前有充足空闲节点,即当前空闲节点数大于一个预定的阈值F,则将空闲节点按优先级顺序按需分配给负载较高的渲染单元,分配后空间节点数应大于等于预定的阈值F。其中,负载较高的渲染单元指,该渲染单元未渲染帧数与其使用的计算节点数比值大于预定阈值的渲染单元。具体步骤如下:
[0104]步骤(6.3.1):将负载较高的渲染单元按对应渲染任务优先级由高到低排序,得到序列 U1, IV..Un ;
[0105]步骤(6.3.2):按上述顺序依次分配计算节点,即首先给U1分配计算节点,直到Nidle=F为止。分配计算节点后,U1的计算节点数应满足nul<nmaxu1,且NidleS F。即分配给U1 的计算节点数为 min (nmaxul-nul, F-Nidle);
[0106]步骤(6.3.3):分配计算节点后,渲染单元控制调度器更新元数据信息,更新内容包括被分配计算节点的渲染单元中包含的计算节点数、渲染农场空闲计算节点数。
[0107]上述虽然结合附图对本发明的【具体实施方式】进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
【权利要求】
1.一种柔性的渲染集群动态部署系统,其特征是,包括 渲染任务管理平台,用于向集群管理节点的渲染单元控制调度器分配任务,并接受集群管理节点的渲染单元控制调度器上传的任务处理进度信息; 渲染单元控制调度器,用于向若干个渲染单元分配任务,并接受每个渲染单元反馈的任务处理进度信息;还用于处理渲染单元的计算节点请求,并在渲染任务执行过程中,按照优先级顺序动态调整渲染单元中计算节点数量。
2.如权利要求1所述的一种柔性的渲染集群动态部署系统所采用的动态部署方法,其特征是,主要包括如下步骤: 步骤(1):启动渲染单元控制调度器; 步骤(2 ):渲染单元控制调度器监听渲染任务管理平台的渲染请求,接受渲染任务并启动渲染单元进行任务调度; 步骤(3):渲染单元Master进程接收渲染单元控制调度器分配的任务,开始渲染工作,并周期性向渲染单元控制调度器汇报进度及负载信息;渲染单元控制调度器处理渲染单元Master进程的计算节点请求,并在渲染任务执行过程中,动态调整渲染单元中计算节点数量; 步骤(4):渲染单元Slave进程接收渲染单元Master进程推送的任务,处理任务并周期性向渲染单元Master进程汇报进度和结果; 步骤(5):渲染任务结束或被取消后,渲染单元控制调度器回收渲染单元所占用的计算节点。
3.如权利要求2所述的方法,其特`征是,所述步骤(1)包括如下步骤:` 步骤(1.0:启动渲染单元控制调度器; 步骤(1.2):渲染单元控制调度器初始化渲染单元元数据信息。
4.如权利要求2所述的方法,其特征是,所述步骤(2)包括如下步骤: 步骤(2.1):渲染单元控制调度器监听控制调度服务端口,等待与渲染任务管理平台进行连接; 步骤(2.2):渲染单元控制调度器与渲染任务管理平台连接后,渲染单元控制调度器接收渲染任务管理平台的任务请求,并接收渲染任务管理平台发送的渲染任务; 步骤(2.3):渲染单元控制调度器根据当前渲染任务的所属用户权限、优先级及渲染集群的负载情况,启动一个渲染单元,即启动渲染单元Master进程,并分配任务; 步骤(2.4):渲染单元控制调度器调度任务时,按照渲染任务优先级优先分配优先级较高的任务,对有相同优先级的任务,采用先到先分配的策略。
5.如权利要求2所述的方法,其特征是,所述步骤(3)包含如下步骤: 步骤(3.1):渲染单元Master进程启动后,等待渲染单元控制调度器进行连接; 步骤(3.2):渲染单元Master进程与渲染单元控制调度器连接后,渲染单元Master进程接收渲染单元控制调度器发送的渲染任务; 步骤(3.3):渲染单元Master进程根据渲染任务所属用户的权限及当前任务负载,向渲染单元控制调度器申请计算节点,申请节点数量不应低于用户权限中对应的节点数下限,不应高于用户权限中对应的节点数上限;渲染单元控制调度器将根据渲染单元Master进程的请求分配计算节点;步骤(3.4):渲染单元Master进程在渲染单元控制调度器分配的计算节点上远程启动渲染单元Slave进程; 步骤(3.5):任务处理过程中,渲染单元Master进程周期性向渲染单元控制调度器汇报进度信息及负载信息,其中,周期的时间间隔为预定的阈值;进度信息为渲染单元Slave进程汇报的进度的汇总;负载信息包括:正在渲染的帧数、完成渲染的帧数及尚未开始渲染的帧数。
6.如权利要求5所述的方法,其特征是,所述步骤(3.3)的渲染单元控制调度器将根据渲染单元Master进程的请求分配计算节点的过程,包括如下步骤: 步骤(3.3.1):渲染单元控制调度器实时监控渲染单元的负载信息以及空闲节点数量,其中负载信息为渲染单元Master进程推送的负载信息的汇总; 步骤(3.3.2):渲染单元控制调度器监听渲染单元Master进程的计算节点申请请求,如果当前有足够的空闲节点,即空闲节点数量大于等于该渲染单元所申请的计算节点数,贝1J分配相应计算节点给该渲染单元; 如果渲染单元申请计算节点时,当前没有充足空闲节点,即空闲节点数量小于该渲染单元所申请的计算节点数,则先分配所有空闲节点给该渲染任务对应的渲染单元,然后按照优先级顺序,剥夺低优先级渲染单元中的节点,并分配给该渲染单元; 步骤(3.3.3):如果当前有充足空闲节点,即当前空闲节点数大于一个预定的阈值,则将空闲节点按优先级顺序按需分配给负载较高的渲染单元;其中,负载较高的渲染单元指,该渲染单元未渲染帧数与其使用的计算节点数比值大于预定阈值的渲染单元。
7.如权利要求2所述的方法,其特征是,所述步骤(4)包含如下步骤: 步骤(4.1):渲染单元Slave进程启动后,监听渲染单元通信端口,等待渲染单元Master进程推送的渲染帧任务; 步骤(4.2):渲染单元Slave进程接收到帧任务后,开始渲染,并周期性向渲染单元Master进程汇报帧任务进度;其中,周期的时间间隔为预定的阈值;渲染单元Slave进程渲染帧任务时,通过创建子进程,由子进程调用第三方渲染引擎进行渲染,避免因渲染引擎崩溃导致渲染单元Slave进程的崩溃; 步骤(4.3):渲染单元Slave进程渲染结束后,将渲染结果发送给渲染单元Master进程;当渲染出现错误时,渲染单元Slave进程将错误信息发送给渲染单元Master进程。
8.如权利要求2所述的方法,其特征是,所述步骤(5)包括如下步骤: 步骤(5.1):渲染任务结束,即渲染单元处理完用户渲染任务后,渲染单元Master进程终止所有渲染单元Slave进程,释放该渲染单元占用的计算节点,并通知渲染单元控制调度器对释放的计算节点进行回收; 步骤(5.2):渲染单元控制调度器接收到用户的任务取消请求,通知正在进行渲染工作的渲染单元取消任务; 所述任务取消请求包括: 强制取消,渲染单元Master进程接收到任务强制取消请求后,通知渲染单元Slave进程立即结束当前渲染任务并终止; 非强制取消,渲染单元Master进程接收到任务非强制取消请求后,等待已分配的任务渲染结束,并将未分配的任务从任务列表中去除,然后该渲染单元释放所占用的计算节点,并通知渲染单元控制调度器对释放的计算节点进行回收; 步骤(5.3):渲染任务结束或被取消后,渲染单元控制调度器更新渲染单元元数据。
9.如权利要求3所述的方法,其特征是, 所述步骤(1.2)的渲染单元元数据信息,包括:渲染单元占用的计算资源、渲染单元的负载信息和渲染单元的渲染任务信息。
10.如权利要求9所述的方法,其特征是, 所述渲染单元的负载信息,包括:渲染单元正在处理的渲染任务总帧数、尚未开始渲染的帧数及已经完成的帧数; 所述渲染任务信息,包括:任务所属用户信息、任务的优先级、渲染文件所在路径及每中贞的渲染参数。`
【文档编号】H04L29/08GK103617062SQ201310653516
【公开日】2014年3月5日 申请日期:2013年12月5日 优先权日:2013年12月5日
【发明者】吕琳, 居佳佳, 刘伟峰 申请人:山东大学