CN109448092B - 一种基于动态任务粒度的负载均衡集群渲染方法 - Google Patents

一种基于动态任务粒度的负载均衡集群渲染方法 Download PDF

Info

Publication number
CN109448092B
CN109448092B CN201811346469.5A CN201811346469A CN109448092B CN 109448092 B CN109448092 B CN 109448092B CN 201811346469 A CN201811346469 A CN 201811346469A CN 109448092 B CN109448092 B CN 109448092B
Authority
CN
China
Prior art keywords
rendering
frame
inter
frames
cluster
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
CN201811346469.5A
Other languages
English (en)
Other versions
CN109448092A (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.)
Tianjin Jinhang Computing Technology Research Institute
Original Assignee
Tianjin Jinhang Computing Technology Research Institute
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 Tianjin Jinhang Computing Technology Research Institute filed Critical Tianjin Jinhang Computing Technology Research Institute
Priority to CN201811346469.5A priority Critical patent/CN109448092B/zh
Publication of CN109448092A publication Critical patent/CN109448092A/zh
Application granted granted Critical
Publication of CN109448092B publication Critical patent/CN109448092B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种基于动态任务粒度的负载均衡集群渲染方法,属于计算机集群渲染技术领域,解决粗粒度的帧间调度策略在集群规模增大时会出现明显负载不均衡以及细粒度的帧内调度策略会增加执行开销并降低作业整体性能的问题。该方法首先根据渲染节点的个数决定进行帧间调度的帧数,然后利用帧间相关性提出交错任务划分方法进行帧的分发,最后将剩余的帧拆分成多个更小粒度的区块来实现负载均衡,从而提高资源利用率,有效的平衡渲染节点之间的工作负载,提升集群渲染系统的整体性能。

Description

一种基于动态任务粒度的负载均衡集群渲染方法
技术领域
本发明属于计算机集群渲染技术领域,涉及集群渲染管理系统中一种基于动态任务粒度的负载均衡方法。
背景技术
近年来,动漫影视产业的发展势头迅猛,随着3D、4D的兴起和高清动漫的趋热,作为动漫制作核心环节之一的真实感渲染也面临巨大的挑战,一些复杂镜头的单帧图像的渲染需要几个小时甚至几天才能完成。虽然过去几十年计算机的计算能力成倍增长,但是对动漫电影真实感和分辨率越来越严苛的要求导致渲染时间依然没有下降。为了按时完成任务,许多大型动画工作室都会耗费大量的金钱搭建自己的本地渲染农场或使用云渲染农场,它利用渲染任务的天然并行性,通过任务的划分在集群上并行地渲染图片,达到缩短时间的目的。
集群渲染又称作分布式渲染或者渲染农场。集群渲染系统通常分为硬件部分与软件部分。硬件部分由渲染节点与存储节点组成,渲染节点上运行着渲染软件,渲染作业在渲染节点上得到执行并输出渲染后图片;存储节点上存放渲染作业执行所需要的文件信息。集群渲染系统的软件部分是指集群渲染管理系统,该系统负责统一分配渲染节点资源和渲染作业调度,调度各个渲染作业使得各渲染作业以并行方式高效完成。
现有的渲染作业调度算法大致可分为两类:帧间调度和帧内调度。帧间调度以渲染作业中的一帧为最小任务粒度,粗粒度的任务分发降低了调度复杂度及作业的执行开销,因此广泛应用于离线渲染。而帧内调度在更细粒度上对每一帧图片进行划分,实现了帧内的并行渲染,适用于对帧率有一定要求的实时渲染。
目前,渲染领域的负载均衡研究普遍集中在面向实时渲染的帧内调度算法中。依据图元从对象空间到屏幕空间转换过程中渲染任务重新分配的位置不同,帧内调度可以分为sort-first,sort-middle和sort-last三种方式。其中,sort-first方式在几何变换前就完成了图元的分配,避免了大量图元数据在处理器之间的迁移,但容易造成负载不均衡从而影响帧率。针对此问题,一种基于历史帧渲染时间信息的动态负载均衡算法被提出,它根据上一帧的渲染时间调整子区域的划分,使下一帧每个子区域的负载相对平衡。也有利用数据的冗余存储,避免任务迁移时的数据迁移,实现了计算节点间的负载均衡的策略。利用帧内空间相关性以及更细粒度的区域划分的方法,也可以平衡各个处理器间的负载。
由于离线动漫渲染更注重作业的整体完成时间而不是每帧的渲染时间,因此细粒度的帧内调度在面向离线渲染时一方面会带来更好的负载均衡,另一方面却由于重复计算的开销影响作业的整体完成时间。而随着渲染集群规模的增大,每个计算节点的任务执行时间越来越短,粗粒度的帧间调度策略所引起的负载不均衡对并行计算加速比的影响越来越大。
发明内容
本发明为了克服上述技术在集群渲染管理平台上应用的不足,解决粗粒度的帧间调度策略在集群规模增大时会出现明显负载不均衡以及细粒度的帧内调度策略会增加执行开销并降低作业整体性能的问题。提出一种基于动态任务粒度的负载均衡方法,该方法充分考虑了粗粒度分发所引起的负载不均衡以及细粒度分发导致的开销对并行计算的加速比的影响,从而提提高资源利用率,有效的平衡渲染节点之间的工作负载,提升集群渲染系统的整体性能。
本发明的技术方案是:一种基于动态任务粒度的负载均衡集群渲染方法,其特征在于,该方法包括下述内容:
(1)根据集群渲染节点的个数,选择帧数进行粗粒度的帧间调度;
(2)利用帧间相关性,帧间调度采用交错任务划分方法将第一步挑选的帧集合分发给各个渲染节点;
(3)根据集群中渲染节点的个数将剩余的帧拆分成多个更小粒度的区块并动态分发给渲染节点;
(4)根据上述帧集合和区块,渲染对应帧,生成图片。
进一步地,步骤(1)中,对于一个包含M帧任务的渲染作业选择的帧数mbest为mbest=M-(M%R),其中集群渲染节点的个数R。
进一步地,步骤(2)中,帧间调度采用交错任务划分方法具体内容为:假设采用帧间划分方法调度的帧序列编号为1,2,3,…,mbest,每个渲染节点将会分配到E帧任务,可表示如下:
Figure BDA0001863864530000031
满足集合{Q|Q=Rz+p,z∈0、1、2、3…,1≤Q≤mbest}中的帧将会被分配给渲染节点p,1≤p≤R;且同时满足渲染节点k将渲染的帧集合为{k,R+k,…,(E-1)R+k},渲染节点R将渲染的帧集合为{R,2R,…,ER},其中K小于R,R为集群渲染节点的个数,mbest为帧数。
一种基于动态任务粒度的负载均衡集群渲染方法,其特征在于,该方法包括下述内容:
1)对于一个包含M帧任务的渲染作业,根据集群渲染节点的个数R,选择帧数mbest进行粗粒度的帧间调度:
其中mbest=M-(M%R) (2)
2)充分利用帧间相关性,采用面向帧间调度的交错任务划分方法;
假设采用帧间划分方法调度的帧序列编号为1,2,3,…,mbest,每个渲染节点将会分配到E帧任务,可表示如下:
Figure BDA0001863864530000041
满足集合{Q|Q=Rz+p,z∈0、1、2、3…,1≤Q≤mbest}中的帧将会被分配给渲染节点p,1≤p≤R;且同时满足渲染节点k将渲染的帧集合为{k,R+k,…,(E-1)R+k},渲染节点R将渲染的帧集合为{R,2R,…,ER},其中K小于R;
3)根据集群渲染节点的个数将剩余的帧拆分成多个更小粒度的区块并动态分发给渲染节点,每帧划分的区块数可表示如下:
Figure BDA0001863864530000042
4)根据上述帧集合和区块,渲染对应帧,生成图片。
本发明的有益效果是:
该方法首先根据渲染节点的个数决定进行帧间调度的帧数,然后利用帧间相关性提出交错任务划分方法进行帧的分发,最后将剩余的帧拆分成多个更小粒度的区块来实现负载均衡,从而提高资源利用率,有效的平衡渲染节点之间的工作负载,提升集群渲染系统的整体性能。
针对粗粒度的帧间调度策略在集群规模增大时会出现明显负载不均衡的情况,以及细粒度的帧内调度策略会增加执行开销并降低作业整体性能,本发明提出了一种基于动态任务粒度的负载均衡方法,该方法首先根据渲染节点的个数决定进行帧间调度的帧数,然后将剩余的帧拆分成多个更小粒度的区块来实现负载均衡并提升任务吞吐率。同时,本发明充分利用帧间相关性提出了一种面向帧间调度的交错任务划分方法。
附图说明
图1光线跟踪技术产生图像流程图
具体实施方式
下面对本发明作详细描述。
本发明的一种基于动态任务粒度的负载均衡方法,其特征在于,该方法包括下述内容:
(1)根据集群渲染节点的个数,挑选帧数进行粗粒度的帧间调度;
(2)利用帧间相关性,帧间调度采用交错任务划分方法将第一步挑选的帧集合分发给各个渲染节点;
(3)根据集群中渲染节点的个数将剩余的帧拆分成多个更小粒度的区块并动态分发给渲染节点。
本发明的原理是:
1、帧间调度
传统的帧间调度通常采取按帧均分的策略,对于一个包含M帧任务的渲染作业以及一个包含R个渲染节点的集群,每个渲染节点的任务量可表示为:
Figure BDA0001863864530000051
式中:Lr为第r个渲染节点需要渲染的帧数。
为了描述渲染节点间负载的不均衡程度,本发明引入了一个负载比(Load Ratio,LR)的概念,负载比是指最晚完成渲染的节点工作时间与所有渲染节点的平均渲染时间的比值,可表示如下:
Figure BDA0001863864530000061
式中:i=1,2,...,R,表示渲染节点编号,Ti表示第i个渲染节点的工作时间,Max()函数表示最晚完成渲染的节点工作时间,Avg()函数表示所有渲染节点的平均渲染时间。
由于一个渲染作业中的帧是连续的,帧间相关性使得连续帧的渲染时间差别极小,因此可表示为tf=tf-1±Δ。其中tf表示第f帧的渲染时间,tf-1表示第f-1帧的渲染时间,Δ是一个极小值。那么可以得到如下结论:
tf=t1±(f-1)Δ (7)
Figure BDA0001863864530000062
式中:t1表示第1帧的渲染时间,ti表示第i帧的渲染时间,δΔ是负载最大节点渲染的所有帧相比t1时间差之和。
可以看到,随着渲染节点数目R的增长,LR的值会不断增大,即负载不平衡的程度会不断增大,主要原因是当帧数无法被渲染节点数整除时,一些节点会多渲染一帧,而随着节点数的增加和平均时间的减少,这一帧的渲染时间对并行计算加速比的影响会越来越大。
2、帧内调度
帧内调度会将每帧图片的渲染拆分为更小粒度的区块的渲染,随着渲染节点数目的增加,粒度可以不断减小,因此有助于实现更好的负载均衡。
然而,更小的粒度往往意味着更多的重复计算。附图1表示利用光线跟踪技术产生图像的一般步骤,多个渲染节点对帧内多个区块的并行渲染会重复解析场景描述文件,影响区块并行渲染的加速比。区域划分后几何图元在边界上的重叠也会导致图元的重复渲染。如果采取按屏幕均分的策略,则每帧的渲染时间为:
tmn=wbefore+Max(regioni)+wafter (9)
Figure BDA0001863864530000071
式中:tmn为第m帧在使用n个渲染节点的渲染时间,wbefore为解析场景描述文件的时间,regioni为第i个区域的渲染主循环时间,Max(regioni)表示取所有划分区域中渲染主循环时间的最大值,wafter为渲染后处理时间,loop1为一个渲染节点下渲染主循环时间。
因此,帧内调度的策略并不能很好地适用于离线渲染,细粒度调度所导致的过多重复计算和场景文件加载会严重影响整个渲染作业的并行效率。
结合上述两种策略,本发明提出一种基于动态任务粒度的负载均衡方法,所采用的技术方案如下:
1)对于一个包含M帧任务的渲染作业,根据集群渲染节点的个数R,挑选合适的帧数mbest进行粗粒度的帧间调度,mbest定义如下:
mbest=M-(M%R) (11)
2)充分利用帧间相关性,采用面向帧间调度的交错任务划分方法。
形式化地,假设采用帧间划分方法调度的帧序列编号为S=1,2,3,…,mbest,每个渲染节点将会分配到E帧任务,可表示如下:
Figure BDA0001863864530000072
通常,传统的划分策略会将第(p-1)E+1帧至第pE帧分给渲染节点p(第p个节点),根据上述分析,这种策略有较大的概率出现严重的不平衡情况。
为了减少不平衡的可能以及不平衡的程度,本发明提出了一种帧间交错任务划分方法。与传统的策略不同,集合{Q|Q=Rz+p,z∈0和N,1≤Q≤mbest}中的帧将会被分配给渲染节点p(第p个节点,1≤p≤R),这意味着每个渲染节点不会渲染连续的帧。也就是说,渲染节点1(第一个节点)将渲染的帧集合为{1,R+1,…,(E-1)R+1},渲染节点k(第k个节点)将渲染的帧集合为{k,R+k,…,(E-1)R+k},而渲染节点R(第R个节点)将渲染的帧集合为{R,2R,…,ER},以此类推。
3)根据集群渲染节点的个数将剩余的帧拆分成多个更小粒度的区块并动态分发给渲染节点,每帧划分的区块数可表示如下:
Figure BDA0001863864530000081
结合帧间调度和帧内调度策略,本发明提出一种基于动态任务粒度的负载均衡方法,下面将结合实例来详细说明本发明的调度过程。
1)假设集群渲染节点的个数R的数值是3,渲染作业中帧数M的数值是10,那么用于粗粒度帧间调度的帧数mbest=M-(M%R)=9。
2)利用帧间相关性,采用面向帧间调度的交错任务划分方法。
也就是说,采用帧间划分方法调度的帧序列编号为S∈1,2,3,…,9,那么每个渲染节点将会分配到E帧任务,
Figure BDA0001863864530000082
根据本发明提出的帧间交错任务划分方法,第1个渲染节点将渲染的帧集合为{1,4,7},第2个渲染节点将渲染的帧集合为{2,5,8},第3个渲染节点将渲染的帧集合为{3,6,9}。以此均衡每个渲染节点的工作负载。
3)将剩余的帧(数值是1)分成多个更小粒度的区块并动态分发给渲染节点,每帧划分的区块数
Figure BDA0001863864530000091

Claims (3)

1.一种基于动态任务粒度的负载均衡集群渲染方法,其特征在于,该方法包括下述内容:
(1)根据集群渲染节点的个数,选择帧数进行粗粒度的帧间调度;
(2)利用帧间相关性,帧间调度采用交错任务划分方法将第一步挑选的帧集合分发给各个渲染节点;
(3)根据集群中渲染节点的个数将剩余的帧拆分成多个更小粒度的区块并动态分发给渲染节点;
(4)根据上述帧集合和区块,渲染对应帧,生成图片;
步骤(2)中,帧间调度采用交错任务划分方法具体内容为:假设采用帧间划分方法调度的帧序列编号为1,2,3,…,mbest,每个渲染节点将会分配到E帧任务,可表示如下:
Figure FDA0004133531010000011
满足集合{Q|Q=Rz+p,z∈0、1、2、3…,1≤Q≤mbest}中的帧将会被分配给渲染节点p,1≤p≤R;且同时满足渲染节点k将渲染的帧集合为{k,R+k,…,(E-1)R+k},渲染节点R将渲染的帧集合为{R,2R,…,ER},其中K小于R,R为集群渲染节点的个数,mbest为帧数。
2.根据权利要求1所述的一种基于动态任务粒度的负载均衡集群渲染方法,其特征在于,步骤(1)中,对于一个包含M帧任务的渲染作业,选择的帧数mbest为mbest=M-(M%R),其中集群渲染节点的个数R。
3.一种基于动态任务粒度的负载均衡集群渲染方法,其特征在于,该方法包括下述内容:
1)对于一个包含M帧任务的渲染作业,根据集群渲染节点的个数R,选择帧数mbest进行粗粒度的帧间调度:
其中mbest=M-(M%R)(2)
2)充分利用帧间相关性,采用面向帧间调度的交错任务划分方法;
假设采用帧间划分方法调度的帧序列编号为1,2,3,…,mbest,每个渲染节点将会分配到E帧任务,可表示如下:
Figure FDA0004133531010000021
满足集合{Q|Q=Rz+p,z∈0、1、2、3…,1≤Q≤mbest}中的帧将会被分配给渲染节点p,1≤p≤R;且同时满足渲染节点k将渲染的帧集合为{k,R+k,…,(E-1)R+k},渲染节点R将渲染的帧集合为{R,2R,…,ER},其中K小于R;
3)根据集群渲染节点的个数将剩余的帧拆分成多个更小粒度的区块并动态分发给渲染节点,每帧划分的区块数可表示如下:
Figure FDA0004133531010000022
4)根据上述帧集合和区块,渲染对应帧,生成图片。
CN201811346469.5A 2018-11-13 2018-11-13 一种基于动态任务粒度的负载均衡集群渲染方法 Active CN109448092B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811346469.5A CN109448092B (zh) 2018-11-13 2018-11-13 一种基于动态任务粒度的负载均衡集群渲染方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811346469.5A CN109448092B (zh) 2018-11-13 2018-11-13 一种基于动态任务粒度的负载均衡集群渲染方法

Publications (2)

Publication Number Publication Date
CN109448092A CN109448092A (zh) 2019-03-08
CN109448092B true CN109448092B (zh) 2023-04-28

Family

ID=65551042

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811346469.5A Active CN109448092B (zh) 2018-11-13 2018-11-13 一种基于动态任务粒度的负载均衡集群渲染方法

Country Status (1)

Country Link
CN (1) CN109448092B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110445994B (zh) * 2019-08-21 2021-10-15 成都索贝数码科技股份有限公司 基于帧间切分的集群化实现大幅面多层实时编辑的方法
CN116912385B (zh) * 2023-09-15 2023-11-17 深圳云天畅想信息科技有限公司 视频帧自适应渲染处理方法、计算机装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617062A (zh) * 2013-12-05 2014-03-05 山东大学 一种柔性的渲染集群动态部署系统与方法
CN108415766A (zh) * 2018-03-06 2018-08-17 洛阳理工学院 一种渲染任务动态调度方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617062A (zh) * 2013-12-05 2014-03-05 山东大学 一种柔性的渲染集群动态部署系统与方法
CN108415766A (zh) * 2018-03-06 2018-08-17 洛阳理工学院 一种渲染任务动态调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于动态反馈的集群渲染系统的实现";付鹏斌,等;《计算机技术与应用进展》;20091231;第3节 *

Also Published As

Publication number Publication date
CN109448092A (zh) 2019-03-08

Similar Documents

Publication Publication Date Title
CN109409513B (zh) 一种基于神经网络的任务处理方法及相关设备
CA2678240C (en) Pipelined image processing engine
CN110262901B (zh) 一种数据处理方法及数据处理系统
US10402930B2 (en) Management of graphics processing units in a cloud platform
CN110968423A (zh) 使用机器学习将工作负荷分配给加速器的方法和设备
CN109448092B (zh) 一种基于动态任务粒度的负载均衡集群渲染方法
CN103268253A (zh) 一种智能化的多尺度并行渲染作业调度管理方法
CN112581578A (zh) 一种基于软件定义的云渲染系统
CN103299347B (zh) 基于云应用的在线渲染方法和离线渲染方法及相关装置
CN111352727A (zh) 一种应用于图像混合集群处理系统的图像处理方法
Li et al. An intelligent collaborative inference approach of service partitioning and task offloading for deep learning based service in mobile edge computing networks
Zhou et al. Strategy optimization of resource scheduling based on cluster rendering
CN108415766B (zh) 一种渲染任务动态调度方法
Kim et al. Efficient large-scale deep learning framework for heterogeneous multi-gpu cluster
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
Zhang et al. F-CAD: A framework to explore hardware accelerators for codec avatar decoding
CN106934757B (zh) 基于cuda的监控视频前景提取加速方法
CN110743164B (zh) 一种用于降低云游戏中响应延迟的动态资源划分方法
CN114943885A (zh) 一种基于训练任务的同步缓存加速方法及系统
JP2023547831A (ja) 画像データの処理方法及び装置並びに電子機器及びコンピュータプログラム
CN106803231A (zh) 一种基于sort‑first负载平衡的图形并行绘制方法
Liu et al. Design and Implementation of Distributed Rendering System
KR20200107124A (ko) 이종 클러스터 기반의 분산 딥러닝 방법 및 이를 위한 장치
CN111968190B (zh) 游戏贴图的压缩方法、装置和电子设备
Li et al. A Workload-Aware Load Balancing Algorithm for Cluster Rendering Platform

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant