基于嵌入式Linux平台的集群渲染系统设计实现
2016-04-14葛水英李志超
刘 尧,葛水英,李志超
(1.天津工业大学 电气工程与自动化学院,天津 300387;2.中国科学院 文献情报中心,北京 100190;3.北京中科视维科技有限公司,北京 100190)
基于嵌入式Linux平台的集群渲染系统设计实现
刘尧1,葛水英2,李志超3
(1.天津工业大学 电气工程与自动化学院,天津300387;2.中国科学院 文献情报中心,北京100190;3.北京中科视维科技有限公司,北京100190)
摘要在计算机图形学的影视动漫产业中,3D图形渲染始终是影响制作周期和成本的主要因素。对于小型工作室或动漫企业而言,自行构建一个具有商业渲染能力的集群渲染系统,需要大量的成本投入和高端的技术支持。针对以上问题,采用常用智能设备和开源软硬件,提出了一种基于嵌入式Linux平台的集群渲染系统构建方案。主要包括软硬件选择、操作系统移植安装和配置、硬件架构搭建、制作3D场景文件进行渲染测试。测试结果验证了该系统的可行性,且其运行良好,不影响渲染质量。
关键词3D图形渲染;分布式集群;嵌入式;Linux
Design and Implementation of Cluster Rendering System Based on Embedded Linux Platform
LIU Yao1,GE Shuiying2,LI Zhichao3
(1.School of Electrical Engineering and Automation,Tianjin Polytechnic University,Tianjin 300387,China;2.Centre for Documentation and Information,Chinese Academy of Sciences,Beijing 100190,China;3.Beijing Zhongke ASD Technology Co.,LTD,Beijing 100190,China)
Abstract3D graphics rendering has been the main factor affecting the production cycle and cost in the CG (Computer Graphics) movie and animation industry.For small studio or animation enterprises,lots of cost investment and high-end technical support are needed to build a cluster rendering system with commercial rendering capabilities.In view of the above problems,a distributed cluster rendering system based on embedded Linux platform is proposed using common smart devices and open source software and hardware.The choice of hardware and software,operating system transplant and configuration,hardware architecture building,and 3D scene rendering are covered.The test results show the feasibility of the system,which works well without affecting the rendering quality.
Keywords3D graphics rendering;distributed cluster;embedded;Linux
渲染是3D影视动漫等三维图形制作领域的关键技术,属于计算和数据密集型应用。由于复杂的场景和特效,着色渲染需要花费大量时间,成为CG动画产业中的瓶颈。为提高渲染速度,出现了渲染技术与集群系统结合的分布式集群渲染系统,其是利用集群管理软件将数量不等的运行着渲染软件的计算机,通过高速网络构建起来的一个计算机群,各计算节点以并行方式完成分配的渲染任务[1-2]。目前,国内外的集群渲染系统主要由Enfuzion、Qube、Deadline等商业集群管理软件,MentalRay、RenderMan等商业渲染引擎,Inter等主流商业计算机硬件设备,以及Windows Server或Linux系统软件构建而成[3]。本文设计的分布式集群渲染系统则选择基于高性能、廉价、耗能低的ARM架构处理器的嵌入式设备为渲染硬件,渲染节点的操作系统选择Linux的一个发行版—Debian,渲染软件采用开源跨平台的Blender。在提升渲染效率的基础上,降低渲染系统搭建的成本。
1集群渲染系统整体构建
1.1系统基本工作原理
集群渲染系统一般由客户端、管理节点、存储节点及计算节点4部分构成[4]。一个典型的集群渲染系统工作流程如图1所示,客户端使用Maya、3DMax等三维制作软件完成场景文件的创作,并上传至存储节点,通过管理软件接口将渲染任务提交给管理软件;管理节点通过Enfuzion等渲染管理软件进行渲染作业的调度和管理、任务的分发以及渲染状态的实时监控等;计算节点是执行渲染的核心,从管理节点读取任务脚本、启动渲染引擎进行渲染;存储节点主要负责集群渲染系统的数据共享和文件存储管理。
图1 典型的集群渲染系统工作流程
1.2集群渲染系统软硬件简介
(1)渲染软件。Blender是由GNU GPL(通用公共许可证)授权发布的开源跨平台的三维建模、渲染和动画制作软件。其提供了一种强大且足够胜任渲染集群的解决方案,可方便地搭建一套网络渲染农场,而无需购买第三方软件配置和管理渲染平台[5];
(2)操作系统。Debian是一款自由的Linux发行版操作系统,其具有低成本、安装方便、稳定性高等优点。尤其是,对ARM架构的硬件有较好地支持,且拥有包括Blender在内的超过43 000个预先编译好的软件包;
(3)集群硬件。本集群渲染系统选用5个不同配置的ARM架构的嵌入式设备作为渲染计算节点:珠海Cubietech团队推出的开源开发板,Cubietruck(Cubieboard3)和Cubieboard4各一块,小米公司的小米手机Mi3和小米盒子Mibox2各一部,以及谷歌平板电脑Nexus7一部。渲染集群管理服务器端和客户端运行在同一PC上。
1.3集群渲染系统硬件架构搭建
Blender内置了一个集群渲染架构,通过加载并配置其中的Network Render(网络渲染)引擎将本机设置为Master(服务器端)、Client(客户端)或Slave(负载端)。集群渲染系统硬件架构如图2所示,Master服务器端相当于图1中的管理节点,从Client客户端接受任务,并调度分配任务给Slave渲染节点;Client客户端制作三维模型场景文件、提交任务给Master,待渲染结束回收图形序列结果;Slave负载端即为渲染计算节点,执行实际的渲染工作。由于网络节点少,且Master和Client不参与实际的渲染任务,因此将服务器端与客户端设置在同一PC上。为更多地节省系统资源,只有客户端采用GUI启动Blender进行模型制作以及渲染状态监视,而服务器端和计算节点只需命令行启动分别进行任务调度和渲染。因此,计算节点的操作系统选择不带桌面系统的Debian系统以节省硬件的内存。手机等智能设备没有有线网口,故网络环境采用无线路由器TP-Link组建的无线局域网。
图2 集群渲染系统硬件架构
2计算节点操作系统与软件安装
2.1系统移植安装
2.1.1Cubietruck和Cubieboard4开发板
除了U-Boot和内核裁剪编译不同外,Cubietruck和Cubieboard4的Debian系统制作过程类似,主要步骤如下:
(1)在PC(Ubuntu14.04系统)端下载安装必需的工具软件,搭建交叉编译环境。从Cubieboard的GitHub仓库下载相应的sunxi工具包、U-Boot和内核源码等;
(2)编译配置文件、U-Boot、裁剪和编译内核。Cubieboard默认的内核配置了众多支持的外设驱动、网络协议、文件系统以及多媒体功能等,这不仅会占用系统的存储资源,而且影响系统对事件的响应速度和执行效率[6]。针对集群渲染的实际需要,使用make menuconfig在默认配置文件基础上,对内核进行裁剪配置:裁剪掉不用的驱动程序(蓝牙Bluetooth、红外IR、传感器Sensor、LCD和VGA输出显示等)、IPV6网络协议相关内容、CD-ROM/DVD和DOS/FAT/NT等文件系统部分、Video和Audio多媒体相关部分。另外,无线网卡部分默认只编译不安装,将其改成默认安装进内核;Cubietruck默认提供mali-GPU支持,裁去相关部分能节省较大内存;
(3)使用debootstrap和chroot命令工具网络下载配置Debian基础系统,制作成根文件系统ROOTFS,并对其进行配置。
2.1.2Mi3、Mibox2和Nexus7智能设备
由于Mi3、Mibox2和Nexus7出厂操作系统为Android,为了能在这些设备上安装和运行Blender,并不影响正常使用,使用一个开源软件—Linux Deploy在Android系统上快速地部署安装Debian系统。
Linux Deploy也是利用Chroot原理在Android系统的某个目录下构建一个Linux系统。部署过程大致如下:
(1)分别获得3个Android智能设备的超级用户权限;
(2)下载安装最新的Linux Deploy,设置要安装的系统版本(Debian Jessie)、镜像文件安装路径。取消安装系统桌面环境、VNC Server和X Server图形界面访问服务,只需选择SSH Server安全访问协议服务,然后进行网络安装系统。
2.2系统配置与渲染软件安装
在PC端使用SSH命令行分别远程登录访问计算节点设备上的Debian系统,设置SSH无密码登录和配置网络为静态IP,以便下次启动。更新软件源,并使用apt-get命令快速下载安装Blender(版本为2.72.b)。
3渲染测试与结果分析
为对比效果,渲染测试分别在台式机PC、笔记本PC以及嵌入式设备集群上进行,并采用相同的场景文件。渲染测试的场景文件描述为:文件大小为244 MB;画数为220万面;动画为摄像机动画;效果为运动模糊、半透明;渲染质量为中高;图像尺寸为1 280×1 080;渲染总帧数为100帧。
3.1PC单机渲染测试
为节约计算机的系统资源、将CPU时间更多地分配给渲染器,PC端的测试采用命令行渲染,并且不启动其他并行运行应用软件。
打开命令行终端(Windows7系统的台式机PC在运行框输入cmd即可,Ubuntu14.04系统的笔记本PC打开Terminal终端模拟器),启动Blender,加载设置好输出格式、输出路径、渲染起始帧等.blend格式的场景文件进行渲染。
3.2集群渲染测试
(1)PC端命令行启动加载预先设置为Master节点的Blend工程文件,等待接入Slave节点和Client端提交的任务;
(2)将预先配置为Slave节点的Blend工程文件上传到各个计算节点,命令行下SSH登录并启动,等待渲染任务;
(3)打开Blender客户端,制作三维模型场景文件,保存为.blend文件。刷新获取服务器地址,并提交渲染任务,等待任务完成返回结果;
(4)Blender集成了网络监视器,可通过Client端的Open Master Monitor启动。在渲染过程中对渲染进度、Slave状态、当前渲染帧、每个结点的渲染时间等状态进行实时监视,并可重置错误帧[7]。监视界面如图3所示。
图3 服务器渲染监视浏览器界面
3.3渲染结果及其分析
嵌入式设备集群与两种PC渲染生成的100幅图片序列完全相同,渲染过程中也没有丢失打包的数据。其中,渲染结果的一帧画面如图4所示,而表1为PC单机渲染与集群渲染对比情况。
图4 渲染测试结果
对比项目台式机PC笔记本PC集群配置CPU:InterCorei73770kHz(3.5GHz)RAM:16GBOS:Windows7CPU:InterCorei52430MHz(2.4GHz)RAM:2GBOS:Ubuntu14.04CPU:ARMCortex-A系列(1~2GHz)RAM:1GB或2GBOS:Debian8.0(Jessie)功耗/W3509251总价/元850045004430渲染时间/min/100帧120336342
渲染结果分析如下:(1)集群与笔记本PC对比:两者渲染能力及成本相当,但该集群的功耗较之明显减小;(2)集群与台式机PC对比:若按照线性的投入产出比,该集群更是体现其低功耗的优点,但渲染性能不及台式机PC。
可知,该集群的渲染效率并不理想,主要由以下原因造成:(1)该集群网络环境为无线局域网,严重限制了调度和传输场景文件数据的速度,而PC采用本地渲染无需网络传输;(2)集群采用不同类型的设备平台,性能配置差异较大,使得性能最差的节点Cubietruck拖慢整个系统渲染速度,而性能最佳的Cubieboard4单机渲染速度能达到台式机PC的20%,集群渲染约能完成全部任务的40%;(3)Blender任务分配是以帧为单位,且调度算法为非抢占式,对于复杂场景文件的渲染不利于负载均衡。
因此,可从以下几个方面优化和提高集群渲染系统性能:采用同等的高性能嵌入式硬件、采用千兆以太网并改善其网络性能、通过使用专门的集群渲染管理软件和对Blender自身的任务调度算法进行优化来解决负载均衡问题[8-9]。
4结束语
基于嵌入式Linux的集群渲染系统采用了低成本、低功耗的ARM架构硬件以及开源软件。表明嵌入式设备同样能进行三维图形渲染,不同类型的嵌入式硬件平台能进行集群计算,且与PC服务器搭建的集群渲染系统相比,具有低成本、占用空间小、低能耗等优点。本文搭建并测试了一个较小的采用不同硬件平台的集群渲染系统,由于系统具有良好的可扩展性,可根据现用条件和需要来扩展规模。而对于系统的优化有待进一步研究。
参考文献
[1]王永滨,石民勇,洪志国.网络环境下集群渲染技术综述[J].微电子学与计算机,2008,25(9):81-83.
[2]梁骥.基于分布式集群运算的渲染农场的研究与构建[J].实验室研究与探索,2014,33(2):126-129.
[3]李谦,伍卫国,黄舰航,等.渲染农场研究进展综述[J].计算机应用研究,2015,32(3):652-657.
[4]刘焕敏,王华,段慧芳.集群渲染在航天仿真中的研究与实现[J].飞行器测控学报,2010,29(4):75-78.
[5]Patoli Z,Gkion M,Albarakati A,et al.An open source grid based render farm for blender 3D[C].Sydney:Proc of IEEE Power Systems Conference and Exposition,2009.
[6]张国峰.基于Linux的三维图形渲染平台的构建和优化研究[J].系统仿真学报,2006,18(2):466-469.
[7]罗聪翼.Blender权威指南[M].北京:机械工业出版社,2011.
[8]仝伯兵,杨昕吉,谢振平,等.集群渲染系统构建与优化[J].软件导刊,2015,14(1):89-91.
[9]彭帅,李冬梅,陈朝晖.基于PC集群的三维图形并行渲染性能分析[J].计算机应用,2010,30(2):547-550.
中图分类号TP391.41
文献标识码A
文章编号1007-7820(2016)03-079-04
doi:10.16180/j.cnki.issn1007-7820.2016.03.020
作者简介:刘尧(1990—),男,硕士研究生。研究方向:嵌入式系统。葛水英(1975—),女,研究员。研究方向:视觉虚拟。
基金项目:国家科技支撑计划课题资助项目(2012BAH42F02)
收稿日期:2015- 07- 27