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