仝伯兵
摘要:集群式渲染系統(tǒng)已成為國(guó)內(nèi)外電影、動(dòng)畫制作的重要組成部分。對(duì)當(dāng)前主流的集群渲染系統(tǒng)結(jié)構(gòu)進(jìn)行了分析,其中主要涉及渲染任務(wù)管理、節(jié)點(diǎn)管理、任務(wù)調(diào)度等方面。從系統(tǒng)建構(gòu)的角度,重點(diǎn)分析了集群渲染系統(tǒng)中網(wǎng)絡(luò)性能、節(jié)能控制、負(fù)載均衡等方面的優(yōu)化技術(shù)與實(shí)現(xiàn)手段。
關(guān)鍵詞:集群渲染;任務(wù)調(diào)度;節(jié)能控制;負(fù)載均衡
DOIDOI:10.11907/rjdk.143672
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):16727800(2015)001008903
0 引言
渲染是一種計(jì)算機(jī)圖形圖像生成技術(shù)[1],它以存儲(chǔ)在計(jì)算機(jī)中的幾何場(chǎng)景模型為基礎(chǔ),經(jīng)過附加色彩、紋理及材質(zhì),并根據(jù)設(shè)定的光照條件及場(chǎng)景光照關(guān)系,計(jì)算生成具有高真實(shí)度的視景圖像。其關(guān)鍵技術(shù)包括場(chǎng)景模型的簡(jiǎn)化和管理、光照模型、紋理映射、材質(zhì)設(shè)置、渲染算法等方面。渲染計(jì)算已成為多個(gè)產(chǎn)業(yè)領(lǐng)域的基礎(chǔ)需求[2],特別是在3D動(dòng)漫電影產(chǎn)業(yè)領(lǐng)域。而隨著現(xiàn)代動(dòng)漫電影制作對(duì)產(chǎn)品質(zhì)量的不斷提升,4K電影的產(chǎn)生使渲染計(jì)算量進(jìn)一步增大,計(jì)算時(shí)間也越來越長(zhǎng),渲染已成為動(dòng)漫電影產(chǎn)業(yè)發(fā)展的一個(gè)瓶頸。隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和中間件技術(shù)的發(fā)展,集群系統(tǒng)的應(yīng)用不斷擴(kuò)張,將渲染技術(shù)與集群系統(tǒng)結(jié)合的渲染集群系統(tǒng)成為動(dòng)漫電影渲染的主要方式。
1 集群渲染系統(tǒng)
集群渲染系統(tǒng)又稱渲染農(nóng)場(chǎng),是一種“分布式并行集群計(jì)算系統(tǒng)”,它指在集群渲染管理軟件的統(tǒng)一調(diào)配下,將許多運(yùn)行渲染軟件的計(jì)算機(jī)協(xié)調(diào)工作以并行方式完成所分配的渲染任務(wù)。農(nóng)場(chǎng)的管理分為人工手動(dòng)管理和系統(tǒng)自動(dòng)管理兩種。其中人工手動(dòng)管理方式在渲染農(nóng)場(chǎng)中普遍存在管理效率低下、能源浪費(fèi)嚴(yán)重等問題,不適合大型農(nóng)場(chǎng)。系統(tǒng)自動(dòng)管理方式的農(nóng)場(chǎng)通過管理服務(wù)器上的管理軟件將渲染任務(wù)分發(fā)給渲染節(jié)點(diǎn),并對(duì)渲染節(jié)點(diǎn)進(jìn)行統(tǒng)一調(diào)度,可以很好地利用計(jì)算資源,有效地提高了管理效率,適于大型農(nóng)場(chǎng)。
1.1 國(guó)內(nèi)外應(yīng)用現(xiàn)狀
目前,主流的渲染集群管理系統(tǒng)包括Axceleon Enfuzion、PipelineFX Qube和Virtual Vertex Deadline等[1,3]。在國(guó)外,集群渲染系統(tǒng)已經(jīng)在很多商業(yè)影片中得到應(yīng)用。如在美國(guó)電影《變形金剛》中,采用了Mental Ray和Render Man渲染軟件,對(duì)創(chuàng)作的所有機(jī)器人圖像進(jìn)行了集群渲染。工業(yè)光魔公司在2002年組建了強(qiáng)大的集群渲染系統(tǒng)Death Star,為《星戰(zhàn)前傳三部曲》提供渲染服務(wù),該系統(tǒng)擁有750個(gè)渲染節(jié)點(diǎn),共1 500顆AMD Athlon 1 600 CPU,每個(gè)節(jié)點(diǎn)配備2G內(nèi)存。此外迪士尼、夢(mèng)工廠、二十世紀(jì)??怂沟裙径加凶约旱拇笠?guī)模渲染集群,使得每年都有大量?jī)?yōu)秀影片產(chǎn)出。
在市場(chǎng)需求和國(guó)家政策的帶動(dòng)下,國(guó)內(nèi)的渲染集群近年來也得到迅速發(fā)展。如中央電視臺(tái)運(yùn)用的并行集群渲染體系由100臺(tái)HP主機(jī)構(gòu)建,采用的操作系統(tǒng)是Turbo Linux,通過Enfuzion與Platform LSF集群管理軟件進(jìn)行任務(wù)的調(diào)度與管理。上海多媒體公共服務(wù)平臺(tái)在立體式制作軟件方面使用Maya、3dsMax與Softimage/XSI等,在渲染軟件方面使用Mental Ray,集群渲染系統(tǒng)采用Muster分發(fā)軟件,能夠制作并渲染所有的立體動(dòng)畫,同時(shí)也使用了清華同方的基于GPU的集群渲染系統(tǒng)。由贊奇科技與中國(guó)惠普共同開發(fā)的渲云系統(tǒng),是國(guó)內(nèi)領(lǐng)先的圖像云集群渲染服務(wù)平臺(tái),該系統(tǒng)在Linux和Windows平臺(tái)下使用3dsMax、Maya結(jié)合Mental Ray、VRay等軟件進(jìn)行渲染,取得了很好的渲染效果。
1.2 渲染集群管理系統(tǒng)架構(gòu)
通過對(duì)當(dāng)前各種集群渲染管理軟件的分析,文獻(xiàn)[4]歸納出集群渲染系統(tǒng)需要由客戶端、管理節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)以及共享文件系統(tǒng)構(gòu)成,圖1所示為贊奇科技所研發(fā)的渲云系統(tǒng)模塊交互圖。用戶在客戶端完成3D場(chǎng)景,將場(chǎng)景文件輸入到共享文件存儲(chǔ)系統(tǒng)中;然后通過管理軟件接口將該文件提交給渲染集群管理節(jié)點(diǎn)(圖1中為運(yùn)維);接著啟動(dòng)渲染管理軟件,通過管理節(jié)點(diǎn)查找空閑節(jié)點(diǎn),通過任務(wù)分發(fā)器把渲染任務(wù)分配到空閑渲染節(jié)點(diǎn)上;空閑渲染渲染節(jié)點(diǎn)接收到任務(wù)后,利用自己的渲染引擎開始渲染工作,并將工作情況報(bào)告給渲染管理節(jié)點(diǎn);渲染管理節(jié)點(diǎn)把收到的負(fù)載、資源利用率等信息反饋給管理軟件,同時(shí)按用戶需求進(jìn)行信息反饋;整個(gè)場(chǎng)景渲染完成后,將結(jié)果再輸出到文件服務(wù)器中,用戶得到所需的渲染結(jié)果圖像序列。
圖1 渲云模塊交互
完整高效的集群渲染系統(tǒng)涉及多個(gè)方面的需求[45],主要包括渲染任務(wù)管理、節(jié)點(diǎn)管理、任務(wù)調(diào)度、文件存儲(chǔ)和可擴(kuò)展性等,具體為:
(1) 渲染任務(wù)管理。接受用戶提交的有效渲染任務(wù)進(jìn)行渲染,用戶可以對(duì)其所提交的任務(wù)進(jìn)行控制包括提前終止、臨時(shí)暫?;蛘呋謴?fù)暫停的任務(wù),集群渲染軟件必須提供相應(yīng)功能而不是靠人工手動(dòng)執(zhí)行。
(2) 節(jié)點(diǎn)管理。節(jié)點(diǎn)管理是集群系統(tǒng)的基本管理功能,管理人員可以增加或刪除節(jié)點(diǎn),并且可以對(duì)節(jié)點(diǎn)進(jìn)行禁用、恢復(fù)、關(guān)機(jī)、喚醒和查看日志等操作。
(3) 任務(wù)調(diào)度。任務(wù)調(diào)度是集群渲染系統(tǒng)的核心功能,對(duì)用戶提交的渲染任務(wù)拆分成單個(gè)或多個(gè)子任務(wù),并將子任務(wù)信息轉(zhuǎn)換成節(jié)點(diǎn)渲染軟件識(shí)別的命令行參數(shù),根據(jù)一定的調(diào)度算法指定節(jié)點(diǎn)進(jìn)行渲染,實(shí)現(xiàn)系統(tǒng)負(fù)載均衡。
(4) 共享存儲(chǔ)。場(chǎng)景文件在共享服務(wù)器中存儲(chǔ),文件服務(wù)器在進(jìn)行添加時(shí),集群管理系統(tǒng)需對(duì)節(jié)點(diǎn)磁盤掛載狀態(tài)進(jìn)行檢測(cè),并且在共享存儲(chǔ)添加、刪除、更改成功后自動(dòng)進(jìn)行文件服務(wù)器掛載。
(5) 可擴(kuò)展性。系統(tǒng)架構(gòu)處理需考慮功能合理性外還應(yīng)考慮可擴(kuò)展性,如在集群規(guī)模下負(fù)荷超出處理能力時(shí)則需修改框架,以及支持增加新的業(yè)務(wù)模式、運(yùn)行模式等。
2 集群渲染系統(tǒng)優(yōu)化分析
隨著集群渲染系統(tǒng)的逐步完善,集群渲染系統(tǒng)的優(yōu)化研發(fā)應(yīng)主要集中在網(wǎng)絡(luò)性能、節(jié)能控制、負(fù)載均衡等幾個(gè)方面。
2.1 網(wǎng)絡(luò)性能
由于集群渲染系統(tǒng)利用以太網(wǎng)將多臺(tái)計(jì)算機(jī)連接組成一種分布式并行集群系統(tǒng),在工作過程中,集群渲染管理軟件的統(tǒng)一調(diào)度以及場(chǎng)景文件的傳輸保存等都需要考慮網(wǎng)絡(luò)的性能。在不同的PC集群環(huán)境下,其網(wǎng)絡(luò)性能有很大差異,文獻(xiàn)[6]在千兆以太網(wǎng)PC集群上進(jìn)行了基于通用OpenGL和MPI的三維圖像并行渲染仿真測(cè)試,給出了數(shù)據(jù)及分析結(jié)果。實(shí)驗(yàn)表明,千兆局域網(wǎng)的網(wǎng)絡(luò)速度不是恒定的,不同配置的網(wǎng)絡(luò)集群網(wǎng)絡(luò)速度差異很大。在網(wǎng)絡(luò)系統(tǒng)規(guī)劃中,服務(wù)器的性能以及負(fù)載容錯(cuò)能力,路由器及交換機(jī)的配置和兼容性以及網(wǎng)絡(luò)傳輸過程中信道使用率和吞吐量對(duì)網(wǎng)絡(luò)的整體性能都有至關(guān)重要的影響。因此,通過提高網(wǎng)絡(luò)性能對(duì)優(yōu)化集群渲染系統(tǒng)十分必要。
2.2 節(jié)能控制
近年來,集群渲染中的能耗問題越來越受到重視。由于渲染集群耗電量極大,采用合理的節(jié)能控制降低集群能耗不僅可以節(jié)約能源,而且可以延長(zhǎng)機(jī)器壽命,因此節(jié)能控制顯得格外重要。文獻(xiàn)[7]討論了嵌入式集群平臺(tái)前端和后端的節(jié)能策略,提出一種針對(duì)嵌入式Web集群服務(wù)器的能耗節(jié)約方案,并將該方案用于基于Linux的嵌入式Web集群服務(wù)器平臺(tái)。文獻(xiàn)[8]認(rèn)為嵌入式集群的總耗能主要由CPU的能耗決定,其它部件的能耗所占比例較小。文獻(xiàn)[9]介紹一種將神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)算法引入渲染集群節(jié)能控制的研究,提出基于多步預(yù)測(cè)的自動(dòng)開關(guān)機(jī)控制算法,并驗(yàn)證了其有效性。研究認(rèn)為關(guān)閉部分節(jié)點(diǎn)而使其余節(jié)點(diǎn)處于較高工作頻率比全部節(jié)點(diǎn)處于較低工作頻率有助于降低能耗,并且在此基礎(chǔ)上合理運(yùn)用預(yù)測(cè)算法將任務(wù)對(duì)資源的需求進(jìn)行預(yù)測(cè)動(dòng)態(tài)管理節(jié)點(diǎn)的開啟與關(guān)閉,從而達(dá)到節(jié)能的目的。目前,節(jié)能控制的研究仍存在很多不足,如何對(duì)集群渲染系統(tǒng)進(jìn)行合理規(guī)劃達(dá)到節(jié)能控制的目的對(duì)合理利用資源具有重要意義。
2.3 負(fù)載均衡
集群渲染系統(tǒng)負(fù)載平衡是為了解決渲染過程中出現(xiàn)的不平衡問題,使得集群渲染系統(tǒng)能夠充分利用每個(gè)工作節(jié)點(diǎn),來提高渲染集群管理系統(tǒng)的工作效率,任務(wù)的分配和節(jié)點(diǎn)的調(diào)度是系統(tǒng)的核心,常見的調(diào)度算法主要有FCFS、LSF、SPT等。其中先來先服務(wù)(FCFS)最大的優(yōu)點(diǎn)是易于高效實(shí)現(xiàn),而且作業(yè)的執(zhí)行順序可以預(yù)見,保證了系統(tǒng)的公平性,但同時(shí)也犧牲了系統(tǒng)的吞吐率和利用率,造成了資源浪費(fèi)。最小空閑時(shí)間優(yōu)先算法(LSF)能夠按照被調(diào)用的急切程度對(duì)任務(wù)進(jìn)行調(diào)度,但它增加了系統(tǒng)開銷,且任務(wù)間的頻繁切換易造成顛簸現(xiàn)象。短作業(yè)優(yōu)先(SPT)能提高作業(yè)吞吐率,降低短作業(yè)等待時(shí)間,然而執(zhí)行時(shí)間長(zhǎng)的作業(yè)等待時(shí)間過長(zhǎng)。以上皆為靜態(tài)調(diào)度算法,不必考慮系統(tǒng)運(yùn)行時(shí)狀態(tài)機(jī)目標(biāo)節(jié)點(diǎn)的負(fù)載信息變換,優(yōu)點(diǎn)是系統(tǒng)開銷小且實(shí)現(xiàn)簡(jiǎn)單。然而多數(shù)情況下,用戶請(qǐng)求是多樣的,且多個(gè)處理器的工作負(fù)載會(huì)隨著計(jì)算的進(jìn)度而變化,為此提出了動(dòng)態(tài)調(diào)度策略。動(dòng)態(tài)負(fù)載均衡允許任務(wù)隨著系統(tǒng)負(fù)載分布的變化進(jìn)行遷移來保持系統(tǒng)的均衡,目前已成為研究的重點(diǎn)。任務(wù)調(diào)度算法往往根據(jù)任務(wù)的時(shí)間屬性或者價(jià)值確定任務(wù)的優(yōu)先級(jí),而優(yōu)先級(jí)隨著任務(wù)的調(diào)度動(dòng)態(tài)變化。任務(wù)調(diào)度的頻繁切換會(huì)出現(xiàn)顛簸現(xiàn)象,對(duì)此常用方法是引入搶占閾值調(diào)度方法。文獻(xiàn)[10]提出了基于動(dòng)態(tài)調(diào)整搶占閾值思想的改進(jìn)算法,該算法在搶占閾值調(diào)度方法中,每個(gè)任務(wù)除了分配一個(gè)基于空閑時(shí)間的優(yōu)先級(jí)外,還為每個(gè)任務(wù)動(dòng)態(tài)設(shè)定一個(gè)搶占閾值。在文獻(xiàn)[11]結(jié)合速度單調(diào)算法(RM)、LSF和多參數(shù)調(diào)度策略優(yōu)勢(shì),從調(diào)度策略中調(diào)度優(yōu)先級(jí)確認(rèn)和動(dòng)態(tài)生成搶占閾值的方法出發(fā),給出了動(dòng)態(tài)調(diào)整策略的算法,調(diào)度策略優(yōu)先級(jí)為:
j=α*X(t,s)+β*Y(t,s)(1)
其中j表示任務(wù)優(yōu)先級(jí),X(t,s)為RM算法優(yōu)先級(jí)權(quán)重,Y(t,s)為L(zhǎng)SF算法優(yōu)先級(jí)權(quán)重,α,β為參數(shù)值。而對(duì)于搶占閾值的計(jì)算給出一個(gè)線性方案:
h=γ*j(0)+(M-γ*j(0)*(j-j(0))/(M-j(0))(2)
其中M為優(yōu)先級(jí)的最大值,γ為一個(gè)系數(shù)常量,j(0)表示初始優(yōu)先級(jí)。文獻(xiàn)[12]采用全局集中式負(fù)載均衡策略,結(jié)合反饋控制的思想實(shí)現(xiàn)集群系統(tǒng)消息的快速傳遞、數(shù)據(jù)處理任務(wù)的實(shí)時(shí)調(diào)度和實(shí)時(shí)分配,實(shí)驗(yàn)證明其性能良好。在負(fù)載均衡方面,以上是從任務(wù)調(diào)度方面進(jìn)行分析,另外任務(wù)執(zhí)行過程中,節(jié)點(diǎn)資源利用率的負(fù)載均衡也很重要。文獻(xiàn)[13]采用一種基于負(fù)反饋控制的負(fù)載均衡算法,該算法將節(jié)點(diǎn)Si的處理能力C包括CPU數(shù)量ni、CPU主頻C(Ci)、內(nèi)存容量C(Mi)、磁盤I/O速率C(Di)、網(wǎng)絡(luò)吞吐量C(Ni)4個(gè)指標(biāo),再通過一個(gè)函數(shù)將這4個(gè)指標(biāo)加權(quán)求和,得到整個(gè)節(jié)點(diǎn)的計(jì)算能力,見式(3)。其中k-{k1,k2,k3,k4}為各項(xiàng)指標(biāo)的權(quán)重參數(shù),來強(qiáng)調(diào)某一類計(jì)算對(duì)各項(xiàng)指標(biāo)的依賴程度。
C(Si)=[k1,k2,k3,k4]niC(Ci)C(Di)C(Mi)C(Ni),i=1,2,...,n;∑41kj=1(3)
同時(shí)由于渲染任務(wù)每一幀場(chǎng)景表現(xiàn)都不一樣,在進(jìn)行負(fù)載均衡計(jì)算時(shí)還要考慮渲染任務(wù)的權(quán)值,并采用測(cè)試進(jìn)化的方式對(duì)任務(wù)權(quán)值進(jìn)行估算。從以上分析可以看出,負(fù)載均衡的研究重點(diǎn)主要包括任務(wù)調(diào)度和系統(tǒng)資源兩個(gè)方面,通過實(shí)現(xiàn)負(fù)載均衡保證系統(tǒng)穩(wěn)定性和任務(wù)的實(shí)時(shí)性,并充分提高系統(tǒng)資源利用率,這也將成為集群渲染系統(tǒng)最主要的研究方向。
3 結(jié)語(yǔ)
自2007年IBM和Google提出云計(jì)算的概念后,云計(jì)算得到了快速發(fā)展,部分技術(shù)已經(jīng)進(jìn)入商業(yè)應(yīng)用。云計(jì)算將“云”中的各種軟硬件抽象為各種資源對(duì)外提供服務(wù)。圖形學(xué)的快速發(fā)展使得當(dāng)前世界對(duì)于計(jì)算機(jī)圖形渲染能力的要求越來越高,將對(duì)計(jì)算能力敏感的應(yīng)用程序擴(kuò)展到云,是云計(jì)算發(fā)展過程中一個(gè)新的發(fā)展方向,而3D渲染則是其中的典型代表[14]。因此,對(duì)于渲染云的研究具有很重要的現(xiàn)實(shí)意義,國(guó)內(nèi)贊奇科技的渲云系統(tǒng)在該方向的研究已取得一定成果。本文對(duì)集群渲染系統(tǒng)的國(guó)內(nèi)外發(fā)展現(xiàn)狀進(jìn)行概括,對(duì)集群渲染系統(tǒng)的框架概況以及集群系統(tǒng)在研究中面臨的問題進(jìn)行了優(yōu)化分析,并對(duì)集群渲染系統(tǒng)未來的研究方向進(jìn)行了展望,以供相關(guān)技術(shù)發(fā)展和研究者參考。
參考文獻(xiàn):
[1] 戴敏利,陸峰,王敏.集群渲染系統(tǒng)及其應(yīng)用現(xiàn)狀研究[J].軟件導(dǎo)刊,2009,18(4):6769.
[2] 蔡靖.動(dòng)漫平臺(tái)集群渲染系統(tǒng)的研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué), 2013.
[3] 王永賓,石民勇,洪志國(guó).網(wǎng)絡(luò)環(huán)境下集群渲染技術(shù)綜述[J].微電子學(xué)與計(jì)算機(jī),2008,25(9):8183.
[4] 羅秋明,孫宏云.集群渲染管理軟件的構(gòu)建技術(shù)與框架設(shè)計(jì)[J].計(jì)算機(jī)工程,2008,34(11):249251.
[5] 李櫻,王永濱,王珂,等.廣域網(wǎng)環(huán)境下分布式動(dòng)漫渲染研究[J].微電子學(xué)與計(jì)算機(jī),2009,26(8):2537.
[6] 彭帥,李冬梅,李朝暉.基于PC集群的三維圖形并行渲染性能分析[J].計(jì)算機(jī)應(yīng)用,2010,30(2):547550.
[7] 劉崢.嵌入式Web集群服務(wù)器節(jié)能機(jī)制的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2007,33(13):138140.
[8] ELNOZAHY E N, KISTLER M, RAJAMONY R. Energyefficient server cluster[C].Proc. of Workshop on Poweraware Computer Systems,2002:133136.
[9] 張立敏.渲染集群節(jié)能控制研究與實(shí)現(xiàn)[D].長(zhǎng)沙:湖南師范大學(xué),2008.
[10] 張亭.一種改進(jìn)的集群系統(tǒng)的任務(wù)調(diào)度算法[J].實(shí)驗(yàn)室科學(xué),2013,16(3):8284.
[11] 傅游,李麗麗,花嶸.渲染集群管理系統(tǒng)負(fù)載平衡算法的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)研究與發(fā)展,2011,21(7):9497.
[12] 馬海銀.智能集群渲染管理軟件分析與設(shè)計(jì)[D].濟(jì)南:山東大學(xué),2013.
[13] 齊杰,高春鳴.面向集群渲染的反饋控制負(fù)載均衡算法[J].計(jì)算機(jī)工程,2008,34(16):129134.
[14] 王總輝,史梳酥,陳文智.基于虛擬化硬件3D圖像加速的渲染云框架[J].電信科學(xué),2012(10):7379.