CN103617062B - 一种柔性的渲染集群动态部署系统与方法 - Google Patents

一种柔性的渲染集群动态部署系统与方法 Download PDF

Info

Publication number
CN103617062B
CN103617062B CN201310653516.1A CN201310653516A CN103617062B CN 103617062 B CN103617062 B CN 103617062B CN 201310653516 A CN201310653516 A CN 201310653516A CN 103617062 B CN103617062 B CN 103617062B
Authority
CN
China
Prior art keywords
rendering unit
rendering
task
node
scheduler
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310653516.1A
Other languages
English (en)
Other versions
CN103617062A (zh
Inventor
吕琳
居佳佳
刘伟峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong University
Original Assignee
Shandong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong University filed Critical Shandong University
Priority to CN201310653516.1A priority Critical patent/CN103617062B/zh
Publication of CN103617062A publication Critical patent/CN103617062A/zh
Application granted granted Critical
Publication of CN103617062B publication Critical patent/CN103617062B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种柔性的渲染集群动态部署系统与方法;所述系统包括:渲染任务管理平台用于向集群管理节点的渲染单元控制调度器分配任务,并接受集群管理节点的渲染单元控制调度器上传的任务处理进度信息;渲染单元控制调度器用于向若干个渲染单元分配任务,并接受每个渲染单元反馈的任务处理进度信息;用于处理渲染单元的计算节点请求,并在渲染任务执行过程中,按照优先级顺序动态调整渲染单元中计算节点数量;每个所述渲染单元包括渲染单元Master进程,每个渲染单元Master进程均与若干个计算节点通信,每个计算节点对应一个渲染单元Slave进程。本发明有效的利用计算资源,最大化资源利用率;并在不影响服务质量的情况下,提高渲染农场的系统并发用户数。

Description

一种柔性的渲染集群动态部署系统与方法
技术领域
本发明涉及高性能计算技术,具体涉及一种柔性的渲染集群动态部署系统与方法。
背景技术
渲染集群(或称渲染农场)属于分布式集群计算系统,是一种利用现有CPU、以太网、及操作系统构建的超级计算机,它使用主流的商业计算机硬件设备达到或接近超级计算机的计算能力。渲染农场建立在计算机集群上,集群系统中的单个计算机通常称为节点,其中一个或多个作为管理节点,其它节点称为计算节点,节点间通常通过局域网连接,但也有其它的可能连接方式,如InfiniBand。集群能够改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。渲染农场包括Web客户端、渲染任务管理平台、真实感渲染引擎等软件系统。用户通过Web客户端在线提交渲染任务,由渲染任务管理平台进行任务调度和管理,将渲染任务交由集群中部署于计算节点上的渲染引擎完成。
现有渲染农场一般采用静态部署的方法分配计算资源,所谓静态部署即计算节点分配给渲染任务后不能动态增减分配的节点数量,只能以整体的方式回收,这种部署方法的缺点是当渲染任务负载较小,所分配的部分计算节点会处于空闲状态,不能分配给其它任务,从而造成资源浪费,降低资源利用率。
中国专利(申请号:200910013740,专利名称:基于DEADLINE图形工作站渲染集群的弹性构建方法)中提出了一致基于DEADLINE图形工作站渲染集群的弹性构建方法,该方法支持按任务动态分配计算资源,但未考虑当有多个任务时的资源分配策略,而且动态部署是通过人工运行脚本实现,不能够自动进行动态部署。
【张雪峰.基于动态反馈的集群渲染系统的设计与实现.北京工业大学硕士学位论文.2009】虽然提出了一种基于动态反馈负载平衡调度策略,但该方法是对于静态的计算资源,通过周期性负载信息查询的方式,进行渲染帧在计算节点中的动态分配,从而达到计算资源间的负载平衡,这可以在一定程度上提高集群工作效率,但是由于渲染帧的粒度过小,在其“查询—修正—任务分配—查询”的动态调整过程中会造成计算节点的频繁通信影响计算或者负载信息不准确影响任务分配的问题。
中国专利(申请号:201210431551,专利名称:基于云计算渲染农场的构建方法)中提出了一致基于云计算渲染农场的构建方法,该专利中提到的支持渲染服务器即计算资源的动态增减,是支持在总体计算资源数量上的动态增减,并不能够根据任务的数量、任务量的大小来动态分配计算资源。
发明内容
本发明针对现有渲染农场存在的计算资源浪费、利用率低的问题,提供了一种柔性的渲染集群动态部署系统与方法,能够有效的利用计算资源,最大化资源利用率;并在不影响服务质量的情况下,提高渲染农场的系统并发用户数。
为了实现计算资源动态部署的目的,本发明采用如下技术方案:
一种柔性的渲染集群动态部署系统,包括
渲染任务管理平台,用于向集群管理节点的渲染单元控制调度器分配任务,并接受集群管理节点的渲染单元控制调度器上传的任务处理进度信息;
渲染单元控制调度器,用于向若干个渲染单元分配任务,并接受每个渲染单元反馈的任务处理进度信息;还用于处理渲染单元的计算节点请求,并在渲染任务执行过程中,按照优先级顺序动态部署渲染单元中计算节点数量;
每个所述渲染单元包括渲染单元Master进程,每个渲染单元Master进程均与若干个计算节点通信,每个计算节点对应一个渲染单元Slave进程。
一种柔性的渲染集群动态部署方法,主要包括如下步骤:
步骤(1):启动渲染单元控制调度器;
步骤(2):渲染单元控制调度器监听渲染任务管理平台的渲染请求,接受渲染任务并启动渲染单元进行任务调度;
步骤(3):渲染单元Master进程接收渲染单元控制调度器分配的任务,开始渲染工作,并周期性向渲染单元控制调度器汇报进度及负载信息;渲染单元控制调度器处理渲染单元Master进程的计算节点请求,并在渲染任务执行过程中,动态调整渲染单元中计算节点数量;
步骤(4):渲染单元Slave进程接收渲染单元Master进程推送的任务,处理任务并周期性向渲染单元Master进程汇报进度和结果;
步骤(5):渲染任务结束或被取消后,渲染单元控制调度器回收渲染单元所占用的计算节点。
所述步骤(1)包括如下步骤:
步骤(1.1):启动渲染单元控制调度器;
步骤(1.2):渲染单元控制调度器初始化渲染单元元数据信息。
所述步骤(1.2)的渲染单元元数据信息,包括:渲染单元占用的计算资源、渲染单元的负载信息和渲染单元的渲染任务信息。
所述渲染单元的负载信息,包括:渲染单元正在处理的渲染任务总帧数、尚未开始渲染的帧数及已经完成的帧数。
所述渲染任务信息,包括:任务所属用户信息、任务的优先级、渲染文件所在路径及每帧的渲染参数。
所述步骤(2)包括如下步骤:
步骤(2.1):渲染单元控制调度器监听控制调度服务端口,等待与渲染任务管理平台进行连接;
步骤(2.2):渲染单元控制调度器与渲染任务管理平台连接后,渲染单元控制调度器接收渲染任务管理平台的任务请求,并接收渲染任务管理平台发送的渲染任务;
步骤(2.3):渲染单元控制调度器根据当前渲染任务的所属用户权限、优先级及渲染集群的负载情况,启动一个渲染单元,即启动渲染单元Master进程,并分配任务;
步骤(2.4):渲染单元控制调度器调度任务时,按照渲染任务优先级优先分配优先级较高的任务,对有相同优先级的任务,采用先到先分配的策略。
所述步骤(3)包含如下步骤:
步骤(3.1):渲染单元Master进程启动后,等待渲染单元控制调度器进行连接;
步骤(3.2):渲染单元Master进程与渲染单元控制调度器连接后,渲染单元Master进程接收渲染单元控制调度器发送的渲染任务;
步骤(3.3):渲染单元Master进程根据渲染任务所属用户的权限及当前任务负载,向渲染单元控制调度器申请计算节点,申请节点数量不应低于用户权限中对应的节点数下限,不应高于用户权限中对应的节点数上限;渲染单元控制调度器将根据渲染单元Master进程的请求分配计算节点;
步骤(3.4):渲染单元Master进程在渲染单元控制调度器分配的计算节点上远程启动渲染单元Slave进程;
步骤(3.5):任务处理过程中,渲染单元Master进程周期性向渲染单元控制调度器汇报进度信息及负载信息,其中,周期的时间间隔为预定的阈值;进度信息为渲染单元Slave进程汇报的进度的汇总;负载信息包括:正在渲染的帧数、完成渲染的帧数及尚未开始渲染的帧数。
所述步骤(3.3)的渲染单元控制调度器将根据渲染单元Master进程的请求分配计算节点的过程,包括如下步骤:
步骤(3.3.1):渲染单元控制调度器实时监控渲染单元的负载信息以及空闲节点数量,其中负载信息为渲染单元Master进程推送的负载信息的汇总;
步骤(3.3.2):渲染单元控制调度器监听渲染单元Master进程的计算节点申请请求,
如果当前有足够的空闲节点,即空闲节点数量大于等于该渲染单元所申请的计算节点数,则分配相应计算节点给该渲染单元;
如果渲染单元申请计算节点时,当前没有充足空闲节点,即空闲节点数量小于该渲染单元所申请的计算节点数,则先分配所有空闲节点给该渲染任务对应的渲染单元,然后按照优先级顺序,剥夺低优先级渲染单元中的节点,并分配给该渲染单元;
步骤(3.3.3):如果当前有充足空闲节点,即当前空闲节点数大于一个预定的阈值,则将空闲节点按优先级顺序按需分配给负载较高的渲染单元;其中,负载较高的渲染单元指,该渲染单元未渲染帧数与其使用的计算节点数比值大于预定阈值的渲染单元。
所述步骤(4)包含如下步骤:
步骤(4.1):渲染单元Slave进程启动后,监听渲染单元通信端口,等待渲染单元Master进程推送的渲染帧任务;
步骤(4.2):渲染单元Slave进程接收到帧任务后,开始渲染,并周期性向渲染单元Master进程汇报帧任务进度;其中,周期的时间间隔为预定的阈值;渲染单元Slave进程渲染帧任务时,通过创建子进程,由子进程调用第三方渲染引擎进行渲染,避免因渲染引擎崩溃导致渲染单元Slave进程的崩溃;
步骤(4.3):渲染单元Slave进程渲染结束后,将渲染结果发送给渲染单元Master进程;当渲染出现错误时,渲染单元Slave进程将错误信息发送给渲染单元Master进程。
所述步骤(5)包括如下步骤:
步骤(5.1):渲染任务结束,即渲染单元处理完用户渲染任务后,渲染单元Master进程终止所有渲染单元Slave进程,释放该渲染单元占用的计算节点,并通知渲染单元控制调度器对释放的计算节点进行回收;
步骤(5.2):渲染单元控制调度器接收到用户的任务取消请求,通知正在进行渲染工作的渲染单元取消任务;
所述任务取消请求包括:
强制取消,渲染单元Master进程接收到任务强制取消请求后,通知渲染单元Slave进程立即结束当前渲染任务并终止;
非强制取消,渲染单元Master进程接收到任务非强制取消请求后,等待已分配的任务渲染结束,并将未分配的任务从任务列表中去除,然后该渲染单元释放所占用的计算节点,并通知渲染单元控制调度器对释放的计算节点进行回收;
步骤(5.3):渲染任务结束或被取消后,渲染单元控制调度器更新渲染单元元数据。
本发明的有益效果:
1.本发明首次提出渲染单元的概念,有效利用了渲染任务中一个镜头内的多个渲染帧共享数据和具有相似的计算资源占用量的特点,将多个计算节点组成一个渲染单元完成连续帧的渲染,降低了任务分配和重分配带来的通信负担,提高了计算节点的利用率;
2.本发明实现了在分配给任务的计算资源间的负载平衡:本发明对渲染任务采取分级调度策略,即将用户渲染任务中的每个镜头划分成一个或多个渲染子任务,每个渲染子任务由该镜头中的连续帧组成,每一帧交由一个计算节点进行渲染,称之为帧任务。每个渲染子任务由一个渲染单元进行处理,帧任务由渲染单元Master进程进行集中分配,Slave进程在渲染完一帧任务后,才能获取下一帧任务;
3.本发明通过动态增减渲染单元中的计算节点数,实现了资源的自动动态部署,根据任务的数量和大小,动态调整所分配的资源数量,解决了静态部署带来的计算资源浪费和集群系统利用率低的问题。
附图说明
图1为渲染集群动态部署与管理总体流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
对渲染任务采取分级调度策略,即将用户渲染任务中的每个镜头划分成一个或多个渲染子任务,每个渲染子任务由该镜头中的连续帧组成,每一帧交由渲染引擎进行渲染,称之为帧任务。
对计算资源采取分层管理策略,即将多个独立的计算节点组成一个渲染单元,作为完成一个渲染子任务的基本单位。
用户的渲染任务经由渲染任务管理平台将渲染子任务发送给渲染单元控制调度器,渲染单元控制调度器根据任务优先级及用户的权限来进行二级调度,并将每个渲染子任务交给一个渲染单元来处理。同时渲染单元控制调度器还负责管理已经创建的渲染单元、维护渲染单元元数据信息、计算节点的分配和回收。渲染单元元数据信息包括渲染单元占用的计算资源、渲染单元的负载信息和渲染单元的渲染任务信息等,其中渲染单元的负载信息包括,渲染单元正在处理的渲染任务总帧数、尚未开始渲染的帧数及已经完成的帧数;渲染任务信息包括任务所属用户信息、任务的优先级、渲染文件所在路径及每帧的渲染参数。
渲染单元在物理上由多个独立的计算节点组成,在实现上使用Master/Slave主从编程模式,即构成并行程序的进程中有一个主进程(Master),其余为从进程(Slave)。主进程与从进程运行不同的代码,但所有从进程运行的代码是相同的。主进程负责整个并行程序的控制,分配数据和计算任务给从进程,而从进程负责完成分配给它的数据的处理和计算任务[并行计算导论/张林波等编著.北京:清华大学出版社;第1版(2006年7月1日).]。每个渲染单元包含一个运行于集群管理节点的主进程,和运行于所管理的各个计算节点的从进程。主进程负责与渲染单元控制调度器交互,接收渲染单元控制调度器发送的渲染任务,分配任务给从进程,监听各从进程的消息;从进程负责接收渲染单元Master进程推送的渲染任务,进行渲染工作,在渲染过程中,渲染单元Slave进程定期将渲染进度发送给渲染单元Master进程,在渲染结束后,将渲染结果发送给渲染单元Master进程。
在下面的叙述中,本发明做如下假设:
渲染集群中总的计算节点数为Ntotal,空闲计算节点为Nidle,那么已经分配的计算节点数为Ndispatch=Ntotal-Nidle
渲染单元U分配到的渲染任务的优先级为pu,渲染任务中的总帧数为fu;渲染单元U已经渲染的帧数为ffinished,正在渲染的帧数为frendering,等待渲染的帧数为fready,则fu=ffinished+frendering+fready
渲染单元U分配到的计算节点数量为nu,即渲染单元U可并行渲染的帧数f<=nu,渲染单元U所属用户可用计算节点数上下限分别为nmax u、nmin u,则nmin u<nu<nmax u
本发明实施过程包括以下步骤:
1.在集群管理节点上启动渲染单元控制调度器;
2.渲染单元控制调度器监听渲染任务管理平台的渲染请求,接受任务并启动渲染单元进行任务调度;
3.渲染单元Master进程接收渲染单元控制调度器分配的任务,开始渲染工作,并周期性向渲染单元控制调度器汇报进度及负载信息;
4.渲染单元Slave进程接收渲染单元Master进程推送的帧任务,处理任务并周期性汇报进度和结果;
5.渲染任务结束或被取消后,渲染单元控制调度器回收渲染单元所占用的计算节点;
6.渲染单元控制调度器处理渲染单元Master进程的计算节点请求,并在渲染任务执行过程中,动态调整渲染单元中计算节点数量;
所述步骤(1)包括如下步骤:
步骤(1.1):在集群管理节点上启动渲染单元控制调度器;
步骤(1.2):渲染单元控制调度器初始化渲染单元元数据信息,渲染单元元数据信息,包括渲染单元占用的计算资源、渲染单元的负载信息和渲染单元的渲染任务信息等。其中,渲染单元的负载信息包括,渲染单元正在处理的渲染任务总帧数、尚未开始渲染的帧数及已经完成的帧数;渲染任务信息包括任务所属用户信息、任务的优先级、渲染文件所在路径及每帧的渲染参数;
所述步骤(2)包括如下步骤:
步骤(2.1):渲染单元控制调度器监听控制调度服务端口,等待渲染任务管理平台进行连接;
步骤(2.2):渲染任务管理平台连接后,渲染单元控制调度器接收其任务请求,然后接收渲染任务管理平台发送的渲染任务;
步骤(2.3):渲染单元控制调度器根据当前渲染任务的所属用户权限、优先级及渲染农场的负载情况,启动一个渲染单元,即启动渲染单元Master进程,并分配任务;
步骤(2.4):渲染单元控制调度器调度任务时,按照渲染任务优先级优先分配优先级较高的任务,对有相同优先级的任务,采用先到先分配的策略;
所述步骤(3)包含如下步骤:
步骤(3.1):渲染单元Master进程启动后,等待渲染单元控制调度器进行连接;
步骤(3.2):渲染单元控制调度器连接后,渲染单元Master进程接收其发送的渲染任务;
步骤(3.3):渲染单元Master进程根据渲染任务所属用户的权限及当前任务负载,向渲染单元控制调度器申请计算节点,申请节点数量为min(fu,nmax u),即用户权限中对应的节点数上限、渲染任务中的帧数两者间的最小值。渲染单元控制调度器将根据Master进程的请求分配计算节点,详细分配策略请参看步骤6;
步骤(3.4):渲染单元Master进程在渲染单元控制调度器分配的计算节点上远程启动Slave进程;
步骤(3.5):任务处理过程中,渲染单元Master进程周期性向渲染单元控制调度器汇报进度及负载情况,其中周期时间间隔为预定的阈值;进度信息为渲染单元Slave进程汇报的进度的汇总;负载信息包括,正在渲染、完成渲染及尚未开始渲染的帧数。
所述步骤(4)包括如下步骤:
步骤(4.1):渲染单元Slave进程启动后,监听渲染单元通信端口,等待Master进程推送的渲染帧任务;
步骤(4.2):渲染单元Slave进程接收到帧任务后,开始渲染,并周期性向Master进程汇报帧任务进度。其中,周期时间间隔为预定的阈值;Slave进程渲染帧任务时,通过创建子进程,由子进程调用第三方渲染引擎进行渲染,避免因渲染引擎崩溃导致渲染单元Slave进程的崩溃;
步骤(4.3):渲染单元Slave进程渲染结束后,将渲染结果发送给渲染单元Master进程,或者当渲染出现错误时,将错误信息发送给渲染单元Master进程。
所述步骤(5)包括如下步骤:
步骤(5.1):渲染任务结束,即渲染单元处理完用户渲染任务后,渲染单元Master进程终止所有渲染单元Slave进程,释放该渲染单元占用的计算节点,并通知渲染单元控制调度器对释放的计算节点进行回收;
步骤(5.2):渲染单元控制调度器接收到用户的任务取消请求,通知正在进行渲染工作的渲染单元取消任务,取消请求包括:强制取消,渲染单元Master进程接收到任务取消请求后,通知渲染单元Slave进程立即结束当前渲染任务并终止;非强制取消,渲染单元Master进程接收到任务取消请求后,等待已分配的任务渲染结束,并将未分配的任务从任务列表中去除。然后该渲染单元释放所占用的计算节点,并通知渲染单元控制调度器回收;
步骤(5.3):渲染任务结束或被取消后,渲染单元控制调度器更新渲染单元元数据。
所述步骤(6)包括如下步骤:
步骤(6.1):渲染单元控制调度器实时监控渲染单元的负载信息以及空闲节点数量,其中负载信息为渲染单元Master进程推送的负载信息的汇总;
步骤(6.2):渲染单元控制调度器监听渲染单元Master进程的计算节点申请请求,如果当前有足够的空闲节点,即空闲节点数量大于等于该渲染单元所申请的计算节点数,则分配相应计算节点给该渲染单元;如果渲染单元申请计算节点时,当前没有充足空闲节点,即空闲节点数量小于该渲染单元所申请的计算节点数,则先分配所有空闲节点给该渲染任务对应的渲染单元,然后按照优先级顺序,剥夺低优先级渲染单元中的节点,并分配给该渲染单元。具体剥夺步骤如下:
步骤(6.2.1):将渲染任务优先级低于上述渲染单元U的渲染单元按优先级进行排序,按照由低到高依次为U1,U2…Un
步骤(6.2.2):按上述顺序依次剥夺其节点,即首先剥夺渲染单元U1中的部分计算节点,直到满足渲染单元U所申请的计算节点数为止。剥夺后渲染单元U1中的剩余节点数量应满足nu1≥min(nmin u1,fready u1),即剥夺后剩余节点数量大于用户权限中对应的节点数下限与该渲染单元未开始渲染帧数中的最小值;
步骤(6.2.3):将剥夺的计算节点分配给上述渲染单元U。如果被剥夺的计算节点上存在已经开始的渲染任务,则等待该渲染任务结束,然后再进行分配;
步骤(6.2.4):剥夺计算节点后,渲染单元控制调度器更新元数据信息,更新内容包括被剥夺渲染单元中包含的计算节点数,及上述渲染单元U中包含的计算节点数;
步骤(6.3):如果当前有充足空闲节点,即当前空闲节点数大于一个预定的阈值F,则将空闲节点按优先级顺序按需分配给负载较高的渲染单元,分配后空间节点数应大于等于预定的阈值F。其中,负载较高的渲染单元指,该渲染单元未渲染帧数与其使用的计算节点数比值大于预定阈值的渲染单元。具体步骤如下:
步骤(6.3.1):将负载较高的渲染单元按对应渲染任务优先级由高到低排序,得到序列U1,U2…Un
步骤(6.3.2):按上述顺序依次分配计算节点,即首先给U1分配计算节点,直到Nidle=F为止。分配计算节点后,U1的计算节点数应满足nu1≤nmax u1,且Nidle≤F。即分配给U1的计算节点数为min(nmax u1-nu1,F-Nidle);
步骤(6.3.3):分配计算节点后,渲染单元控制调度器更新元数据信息,更新内容包括被分配计算节点的渲染单元中包含的计算节点数、渲染农场空闲计算节点数。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (8)

1.一种柔性的渲染集群动态部署系统所采用的动态部署方法,所述柔性的渲染集群动态部署系统包括渲染任务管理平台和渲染单元控制调度器,其特征是,主要包括如下步骤:
步骤(1):启动渲染单元控制调度器;
步骤(2):渲染单元控制调度器监听渲染任务管理平台的渲染请求,接受渲染任务并启动渲染单元进行任务调度;
步骤(3):渲染单元Master进程接收渲染单元控制调度器分配的任务,开始渲染工作,并周期性向渲染单元控制调度器汇报进度及负载信息;渲染单元控制调度器处理渲染单元Master进程的计算节点请求,并在渲染任务执行过程中,动态调整渲染单元中计算节点数量;
步骤(4):渲染单元Slave进程接收渲染单元Master进程推送的任务,处理任务并周期性向渲染单元Master进程汇报进度和结果;
步骤(5):渲染任务结束或被取消后,渲染单元控制调度器回收渲染单元所占用的计算节点;
所述步骤(3)包含如下步骤:
步骤(3.1):渲染单元Master进程启动后,等待渲染单元控制调度器进行连接;
步骤(3.2):渲染单元Master进程与渲染单元控制调度器连接后,渲染单元Master进程接收渲染单元控制调度器发送的渲染任务;
步骤(3.3):渲染单元Master进程根据渲染任务所属用户的权限及当前任务负载,向渲染单元控制调度器申请计算节点,申请节点数量不应低于用户权限中对应的节点数下限,不应高于用户权限中对应的节点数上限;渲染单元控制调度器将根据渲染单元Master进程的请求分配计算节点;
步骤(3.4):渲染单元Master进程在渲染单元控制调度器分配的计算节点上远程启动渲染单元Slave进程;
步骤(3.5):任务处理过程中,渲染单元Master进程周期性向渲染单元控制调度器汇报进度信息及负载信息,其中,周期的时间间隔为预定的阈值;进度信息为渲染单元Slave进程汇报的进度的汇总;负载信息包括:正在渲染的帧数、完成渲染的帧数及尚未开始渲染的帧数。
2.如权利要求1所述的方法,其特征是,所述步骤(1)包括如下步骤:
步骤(1.1):启动渲染单元控制调度器;
步骤(1.2):渲染单元控制调度器初始化渲染单元元数据信息。
3.如权利要求1所述的方法,其特征是,所述步骤(2)包括如下步骤:
步骤(2.1):渲染单元控制调度器监听控制调度服务端口,等待与渲染任务管理平台进行连接;
步骤(2.2):渲染单元控制调度器与渲染任务管理平台连接后,渲染单元控制调度器接收渲染任务管理平台的任务请求,并接收渲染任务管理平台发送的渲染任务;
步骤(2.3):渲染单元控制调度器根据当前渲染任务的所属用户权限、优先级及渲染集群的负载情况,启动一个渲染单元,即启动渲染单元Master进程,并分配任务;
步骤(2.4):渲染单元控制调度器调度任务时,按照渲染任务优先级优先分配优先级较高的任务,对有相同优先级的任务,采用先到先分配的策略。
4.如权利要求1所述的方法,其特征是,所述步骤(3.3)的渲染单元控制调度器将根据渲染单元Master进程的请求分配计算节点的过程,包括如下步骤:
步骤(3.3.1):渲染单元控制调度器实时监控渲染单元的负载信息以及空闲节点数量,其中负载信息为渲染单元Master进程推送的负载信息的汇总;
步骤(3.3.2):渲染单元控制调度器监听渲染单元Master进程的计算节点申请请求,
如果当前有足够的空闲节点,即空闲节点数量大于等于该渲染单元所申请的计算节点数,则分配相应计算节点给该渲染单元;
如果渲染单元申请计算节点时,当前没有充足空闲节点,即空闲节点数量小于该渲染单元所申请的计算节点数,则先分配所有空闲节点给该渲染任务对应的渲染单元,然后按照优先级顺序,剥夺低优先级渲染单元中的节点,并分配给该渲染单元;
步骤(3.3.3):如果当前有充足空闲节点,即当前空闲节点数大于一个预定的阈值,则将空闲节点按优先级顺序按需分配给负载较高的渲染单元;其中,负载较高的渲染单元指,该渲染单元未渲染帧数与其使用的计算节点数比值大于预定阈值的渲染单元。
5.如权利要求1所述的方法,其特征是,所述步骤(4)包含如下步骤:
步骤(4.1):渲染单元Slave进程启动后,监听渲染单元通信端口,等待渲染单元Master进程推送的渲染帧任务;
步骤(4.2):渲染单元Slave进程接收到帧任务后,开始渲染,并周期性向渲染单元Master进程汇报帧任务进度;其中,周期的时间间隔为预定的阈值;渲染单元Slave进程渲染帧任务时,通过创建子进程,由子进程调用第三方渲染引擎进行渲染,避免因渲染引擎崩溃导致渲染单元Slave进程的崩溃;
步骤(4.3):渲染单元Slave进程渲染结束后,将渲染结果发送给渲染单元Master进程;当渲染出现错误时,渲染单元Slave进程将错误信息发送给渲染单元Master进程。
6.如权利要求1所述的方法,其特征是,所述步骤(5)包括如下步骤:
步骤(5.1):渲染任务结束,即渲染单元处理完用户渲染任务后,渲染单元Master进程终止所有渲染单元Slave进程,释放该渲染单元占用的计算节点,并通知渲染单元控制调度器对释放的计算节点进行回收;
步骤(5.2):渲染单元控制调度器接收到用户的任务取消请求,通知正在进行渲染工作的渲染单元取消任务;
所述任务取消请求包括:
强制取消,渲染单元Master进程接收到任务强制取消请求后,通知渲染单元Slave进程立即结束当前渲染任务并终止;
非强制取消,渲染单元Master进程接收到任务非强制取消请求后,等待已分配的任务渲染结束,并将未分配的任务从任务列表中去除,然后该渲染单元释放所占用的计算节点,并通知渲染单元控制调度器对释放的计算节点进行回收;
步骤(5.3):渲染任务结束或被取消后,渲染单元控制调度器更新渲染单元元数据。
7.如权利要求2所述的方法,其特征是,
所述步骤(1.2)的渲染单元元数据信息,包括:渲染单元占用的计算资源、渲染单元的负载信息和渲染单元的渲染任务信息。
8.如权利要求7所述的方法,其特征是,
所述渲染单元的负载信息,包括:渲染单元正在处理的渲染任务总帧数、尚未开始渲染的帧数及已经完成的帧数;
所述渲染任务信息,包括:任务所属用户信息、任务的优先级、渲染文件所在路径及每帧的渲染参数。
CN201310653516.1A 2013-12-05 2013-12-05 一种柔性的渲染集群动态部署系统与方法 Active CN103617062B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310653516.1A CN103617062B (zh) 2013-12-05 2013-12-05 一种柔性的渲染集群动态部署系统与方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310653516.1A CN103617062B (zh) 2013-12-05 2013-12-05 一种柔性的渲染集群动态部署系统与方法

Publications (2)

Publication Number Publication Date
CN103617062A CN103617062A (zh) 2014-03-05
CN103617062B true CN103617062B (zh) 2016-09-07

Family

ID=50167765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310653516.1A Active CN103617062B (zh) 2013-12-05 2013-12-05 一种柔性的渲染集群动态部署系统与方法

Country Status (1)

Country Link
CN (1) CN103617062B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103903295B (zh) * 2014-04-04 2017-01-11 四川川大智胜软件股份有限公司 一种基于InfiniBand实时调度海量高精度三维场景数据的方法
CN104462315A (zh) * 2014-12-02 2015-03-25 浪潮电子信息产业股份有限公司 一种实现lustre文件系统对云渲染农场支持的方案
CN104572305A (zh) * 2015-01-26 2015-04-29 赞奇科技发展有限公司 均衡负载的集群渲染任务调度方法
CN104572304B (zh) * 2015-01-26 2018-02-02 江苏赞奇科技股份有限公司 智能均衡的集群渲染任务维管方法
CN105976420B (zh) * 2015-08-28 2019-02-05 深圳市彬讯科技有限公司 一种在线渲染方法及系统
CN105487929B (zh) * 2015-11-19 2017-06-16 山东大学 一种集群渲染过程中镜头共享数据管理的方法
CN105446810B (zh) * 2015-12-24 2018-09-28 江苏赞奇科技股份有限公司 基于成本代价的多农场云渲染任务分发系统与方法
CN106209997A (zh) * 2016-06-30 2016-12-07 上海上大海润信息系统有限公司 一种面向云渲染的异构集群管理系统及方法
CN106371889B (zh) * 2016-08-22 2020-05-29 浪潮(北京)电子信息产业有限公司 一种调度镜像的高性能集群系统实现方法及装置
CN106502794B (zh) * 2016-10-24 2019-10-11 深圳市彬讯科技有限公司 一种基于云端渲染的三维效果图高效渲染方法
CN106610870B (zh) * 2016-12-28 2019-10-15 北京奇艺世纪科技有限公司 一种处理节点数量调整方法及装置
CN107454140A (zh) * 2017-06-27 2017-12-08 北京溢思得瑞智能科技研究院有限公司 一种基于大数据平台的Ceph集群自动化部署方法及系统
CN107807854A (zh) * 2017-10-25 2018-03-16 深圳市瑞云科技有限公司 一种自动调度节点机的方法及渲染任务处理方法
CN109814987A (zh) * 2017-11-20 2019-05-28 北京京东尚科信息技术有限公司 任务处理方法、系统、电子设备和计算机可读介质
CN108415766B (zh) * 2018-03-06 2022-01-28 洛阳理工学院 一种渲染任务动态调度方法
CN109448092B (zh) * 2018-11-13 2023-04-28 天津津航计算技术研究所 一种基于动态任务粒度的负载均衡集群渲染方法
CN110096364B (zh) * 2019-04-30 2023-07-07 广州番禺职业技术学院 一种云服务器计算集合控制方法及系统
CN111739141B (zh) * 2020-08-12 2021-02-09 绿漫科技有限公司 一种轻终端3d云渲染方法
CN113157415B (zh) * 2021-04-21 2023-10-13 中国电影科学技术研究所 农场渲染方法、装置、电子设备和存储介质
CN113592993A (zh) * 2021-08-12 2021-11-02 炫我云计算技术(北京)有限公司 一种渲染的方法、装置、电子设备和计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101072133A (zh) * 2007-05-23 2007-11-14 华中科技大学 一种基于对等网络的高性能计算系统
CN102592315A (zh) * 2011-01-12 2012-07-18 上海库达数字信息技术有限公司 基于gpu云集群的3d渲染平台

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255908B2 (en) * 2007-12-19 2012-08-28 Nokia Corporation Managing tasks in a distributed system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101072133A (zh) * 2007-05-23 2007-11-14 华中科技大学 一种基于对等网络的高性能计算系统
CN102592315A (zh) * 2011-01-12 2012-07-18 上海库达数字信息技术有限公司 基于gpu云集群的3d渲染平台

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
The Design and Implementation of Render Farm Manager Based on OpenPBS;H .jing 等;《IEEE Intertional Conference on Computer-aided Industrial Design & Conceptual Design Vol.2》;20081230;第2008年卷;1056-1089 *
基于动态反馈的集群渲染系统的设计与实现;张雪峰;《万方学位论文全文数据库》;万方;20100201;第3-5节 *

Also Published As

Publication number Publication date
CN103617062A (zh) 2014-03-05

Similar Documents

Publication Publication Date Title
CN103617062B (zh) 一种柔性的渲染集群动态部署系统与方法
CN107025139A (zh) 一种基于云计算的高性能计算调度框架
CN110350609B (zh) Agv的充电管理方法及系统、设备和存储介质
CN102063336B (zh) 一种分布式计算多应用功能异步并发调度方法
CN109062658A (zh) 实现计算资源服务化的调度方法、装置、介质、设备及系统
CN106445675B (zh) 一种b2b平台分布式应用调度与资源分配方法
CN110825520A (zh) 一种实现资源高效利用的集群极速弹性伸缩方法
CN109710392B (zh) 一种基于混合云的异构资源调度方法
CN103731372A (zh) 一种混合云环境下服务提供者的资源供应方法
CN109783225B (zh) 一种多租户大数据平台的租户优先级管理方法及系统
WO2003100648A1 (en) Parallel processing system
CN104965755A (zh) 基于预算约束的云服务工作流调度方法
WO2016095535A1 (zh) 资源分配方法、装置和服务器
CN103838627A (zh) 一种基于工作流吞吐量最大化的工作流调度方法
CN109947574A (zh) 一种基于雾网络的车辆大数据计算卸载方法
CN106293933A (zh) 一种支持多大数据计算框架的集群资源配置与调度方法
CN115134371A (zh) 包含边缘网络算力资源的调度方法、系统、设备及介质
CN103514048B (zh) 参与感知系统及其任务分配方法
CN109766172A (zh) 一种异步任务调度方法以及装置
CN100385402C (zh) 网格环境下动态在线式任务调度系统及其调度方法
CN110958311A (zh) 一种基于yarn的共享集群弹性伸缩系统及方法
CN112130966A (zh) 任务调度方法和系统
CN111124640A (zh) 任务分配方法及系统、存储介质、电子装置
CN107025134B (zh) 数据库服务系统及兼容多种数据库的方法
CN114416355A (zh) 资源调度方法、装置、系统、电子设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant