林泳琴,黃晨暉
(1.廣州大學 網絡中心,廣東 廣州 510006;2.廣東女子職業技術學院 網絡中心,廣東 廣州 511450)
近幾年,高校數字信息技術的發展浪潮為動漫產業[1-2]及動漫教學和動漫創作進一步發展提供了機遇。3D渲染對計算能力的需求在目前看來還是難以滿足的,即使通過大規模集群計算方式還是需要數個月才能完成一部動漫電影的渲染制作。為進一步充分利用高校的閑置資源以縮短渲染所耗時延,我們在文獻[3]研究的基礎上,進一步擴展渲染平臺,基于開源集群渲染(distributed rendering environment,DRE,又叫分布式渲染環境[4])管理軟件 Drqueue[5],借助Multi-Cluster概念,實現了渲染資源和渲染應用跨校園的云渲染實驗平臺,讓更多的高校參與并享用云渲染平臺,對于那些本身不具備渲染硬件、或距離完成期限近因而需要更多計算資源來完成渲染的創作團隊來說,該平臺更適合他們。他們除了能在短時間段內使用大數量渲染機器群外,不用考慮渲染硬件的采購、維護以及服務支持等,也不用考慮所使用軟件的成本和額外安裝開支。此外,該云渲染平臺操作簡單,通過瀏覽器即可提交渲染任務和查看渲染進展狀況,平臺在數據轉換與存儲等方面也都采用相關的權限控制和加密措施,為用戶提供了企業級的渲染平臺。
Drqueue[6]是一款開放源碼分布式渲染程序,提供的服務接口包括了渲染節點任務的分配、監控和管理等。它支持的渲染器包括:3Dlight,3DSMax,After Effects,Aqsis,Blender,BMRT,Cinema 4D,Lightwave,Luxrender,Mantra,Maya,Mental Ray,Nuke,Pixie,Shake,Terragen,Turtle,V-Ray and XSI等;它支持的操作系統平臺可以是:Linux,Mac OSX,Irix,FreeBSD,Windows,它還支持混合平臺渲染集群的創建,支持使用Python等以提供完整的接口調用。目前在國內外都有一些小的項目在使用Drqueue,比如 Martian Labs,《加勒比海盜》、《驅魔人》等。我們選擇它,是因為它是免費開源的,并且內置了Python[7],可以通過Pythone腳本擴展功能,進行二次開發比較方便。
基于Drqueue的單一集群渲染架構見圖1,它與文獻[8]給出的集群渲染管理軟件架構是一致的。其中,Master節點保存著整個渲染集群的任務隊列信息和Slave渲染節點信息,它通常維護一個全局性的數據庫,記錄節點工作狀態以及任務與子任務分配、執行狀態等信息。Slave節點負責渲染任務的執行,它會維護一個局部數據庫以保存本機資源信息以及所分配的子任務隊列與狀態信息,同時負責調用渲染器(例如Maya,3DMax等)完成渲染。也就是說,一方面,有自己的狀態和任務等信息,另一方面同時要定期向Master更新自己的負載或CPU可用資源等信息。當它可用時,它會向Master發送請求以完成與它的配置文件(操作系統、內存、CPU核數、渲染器等)描述一致的、能勝任的渲染任務。Master一旦將任務分配給Slave,Slave會接收所有跟渲染任務相關的信息(包括渲染文件存放地、渲染器類型、起始和結束幀等),當收到這些信息后,Slave會創建一個新的進程來執行此任務。在實現中,任務腳本必須位于共享存儲中,這樣所有Slave節點都可以以相同的路徑來讀取到任務腳本。只要渲染任務沒完成,Slave節點會不間斷地向Master匯報其存在及渲染進展狀況;當渲染任務完成,Slave節點中的渲染父進程會收集各子進程的退出狀態,并向Master發送所有信息?;谶@些信息,任務自動排隊,并標記“Finished”或“Error”。當然,這些信息也可以在應用服務器上進行訪問。

圖1 基于Drqueue單一的集群渲染架構
本項目的其中一個研究出發點是,能否實現將高校閑置的資源共享、運用到動漫渲染中,為教學、科研和小型動漫創作提供堅實的后盾。高校的資源是異地分布的,資源的供給與回收也是動態變化的,為此,探索云渲染就不僅僅只是一個集群渲染,既然是在云計算環境下的渲染,那就有可能存在不同的渲染集群參與同一渲染任務,因此本文引入了Multi-Cluster的概念。在云計算領域里,IBN Platform LSF[9]在2010年提出過Multi-Cluster to the Cloud的概念,并通過優秀的集群調度軟件 LSF(load share facility)[10]實現了將云供應商創建的新Cluster加入現有云平臺以擴展或提供更強的計算功能,它的實現是通過多集群協調模塊(multicluster orchestrator),應用相應的調度策略自動向云供應商創建的新集群分發任務,從而合并本地集群與新集群的計算功能。
借助Muti-Cluster的理念,本文將集群渲染擴展到更廣泛的云環境中,其結構架構圖如圖2所示。其中VM為集群里的虛擬機或實體機,是渲染任務完成的主力軍,我們上節也稱之為Slave節點,VM-M為渲染集群里的Master節點,負責集群里的渲染任務管理,以及集群間的通信和狀態上報等。我們在組建Cluster的時候,同一Cluster通常是機器類型一致的或同一操作系統安裝有相同的渲染器,這樣處置是因為不同Cluster渲染出來的結果有可能存在色差問題;另外,同一Cluster通常位于同一網絡,可以快速訪問其相應的文件服務器,節點間的通信開銷在可控范圍內。
擴展后的渲染流程如下:用戶向渲染應用服務器提交了渲染請求后,渲染任務將保存到數據庫服務器中,并通知用戶將渲染源文件及材質文件等上傳至文件服務器F中。由于不同Cluster可能是異地分布的,所以文件服務器也是異地分布的,每個Cluster通常能就近高效訪問文件服務器。渲染管理服務器收到渲染任務后,從渲染節點集群集中選擇合適的集群(可能是多個,如果是多個的話,需要首先進行任務的切分)執行渲染任務,當渲染任務執行完畢后,一方面,將渲染狀態反饋回渲染管理服務器,另一方面直接由執行渲染任務的Cluster返回渲染結果至相應的文件服務器,用戶通過上網即可查看渲染狀態和下載渲染結果。

圖2 云渲染平臺的結構示圖
為了減少網絡拓撲對渲染性能的影響,在渲染節點集群調度中,使用了topology-aware[11]的調度策略,實現了渲染資源就近調度及最大調度。例如:如果在學校A里能找到滿足要求的渲染資源可調用,則來自學校A局域網里的渲染請求將優先考慮學校A里的渲染集群,這就是就近分配的原則;若來自學校A的渲染請求(要求N核資源執行渲染任務)在學校A部署的集群集里空閑的CPU已不夠N核,但在另一學校B部署的集群里卻又滿足N核的請求,此時,平臺優先將任務分配到學校B部署的集群中執行,從而減少因為渲染任務過分劃分導致性能的下降,也盡可能地減少了因為集群機型不太一致導致的色差問題,這就是最大分配的考慮。
在學校A的局域網內部署了2個渲染集群C1,C2,在學校B的局域網內部署了另外2個渲染集群C3,C4,每個渲染集群里的渲染節點都是學校A和學校B云平臺上的虛擬機VM(64bit),分配給VM的CPU核數和內存可以通過云計算管理平臺進行重新配置。每個渲染集群都部署有Drqueue作為渲染管理軟件,每個渲染節點安裝Centos操作系統,實驗中渲染器也采用開源的Blender[12](當然,Drqueue也支持其他渲染器,如maya,3Dmax等常用渲染器)。實驗渲染案例是25幀的blender動畫,分辨率為8000×6000。平臺的渲染時間開銷及渲染加速比如表1所示。

表1 平臺渲染時間對照表
表1結果表明:在普通實驗機上(表1中的第一行)執行的渲染任務應用到該平臺上,只需求很短的時間,該平臺有很好的加速比,能勝任大創作,并在較短時間內完成渲染任務。
開源的Drqueue更有利于我們在實現中進一步改進和做二次開發。本文基于Drqueue實現了渲染資源和渲染應用跨校園的云渲染實驗平臺,它把高校的云計算資源很好地應用于動漫渲染,為高校的動漫課程及動漫創作提供了堅實的后盾。目前,已整合了2個高校的云資源,平臺的可伸縮性讓它可以方便地擴展到多個高校,平臺的高渲染加速比讓它能更好地服務于高校的動漫專業教學與創作。
(References)
[1]馮俏俏,趙明.我國動漫產業發展困境與對策研究[J].編輯之友,2012(5):62-64.
[2]許盛.高校動漫教育存在的問題及改革對策研究[J].教育探索,2012(7):59-60.
[3]廖宏建,楊玉寶,唐連章,等.基于云計算的動漫渲染實驗平臺研究與實現[J].實驗室研究與探索,2012,31(7):68-71.
[4]Madhavan K P C,Arns L L,Bertoline G R.A Distributed Rendering Environment for Teaching Animation and Scientific Visualization[J].Computer Graphics and Applications,2005,25(5):32-38.
[5]Kazoo.DrQueue Commercial Website[EB/OL].[2012-12-11].http://www.drqueue.org/.
[6]黃晨暉,林泳琴.基于云計算的虛擬計算機實驗室的研究與實現[J].實驗室研究與探索,2010(11):178-181.
[7]Swaroop C H.A byte of python[M/OL].北京:百度文庫.[2012-12-10].http://wenku.baidu.com/view/bd97db0a763231126edb115e.html.
[8]羅秋明,孫宏元.集群渲染管理軟件的構建技術與框架設計[J].計算機工程,2008,34(11):249-251.
[9]IBM.IBN Platform LSF[EB/OL].[2012-12-11].http://www.ibm.com/us/en/.
[10]鄧綻蕾,談國新.基于LSF的MAYA集群渲染研究及實現[C]//第三屆和諧人機環境聯合學術會議(HHME2007)論文集,2007.
[11]Gkantsidis C,Goel G,Mihail M,et al.Towards topology aware networks[C]//INFOCOM 2007.26th IEEE International Conference on Computer Communications.IEEE.IEEE,2007:2591-2595.
[12]Blender,Blender.org-Home of the Blender project-Free and Open 3DCreation Software[EB/OL].[2012-12-11].http://www.blender.org/.