| CG film industry has appeared explosive growth under the background of national cultural industry promotion, and has developed towards high definition and 3D film. Time used to render whole film is getting longer and longer, as along with the growth of image quality, the time used to render one frame of image increases, and often takes several hours to render one image. Using Cluster to do parallel rendering become a common way to speedup film production as the computing capability of single computer cannot fufill the need of industry production.Traditional Rendering Management software takes rendering task as ordinary task when rendering with Cluster without taking the special features of rendering into consideration, such as the time continuity and data co-relation between rendering tasks. After some research, we found there exits shared file data between frames which belongs to the same screen. They need to access same static geometric data and texture data when rendering in parallel. Based on that, this paper makes some optimation of rendering on Cluster.In order to use the data co-relation feature, this paper makes all processes that process task which belongs to the same screen into a whole unit, inside this whole unit uses message to communicate, we call such a whole unit as a Rendering Unit. And we use a seperate module to manage all shared data of the screen, we call this module as Shared Data Management. Each Rendering Unit is responsible for processing tasks belongs the same screen, when some process inside this Rendering Unit need to access shared data, it need to send data access request to Shared Data Management and wait its response. Also task scheduling need to do in multi-level, screen-level by Rendering Management software and frame-level by Rendering Unit.When design Shared Data Management, this paper refered Distributed File System, it supports location transparent, data access transparent and data replication. Location transparent and data access transparent makes rendering engine and libraries used by rendering engine use Shared Data Management more easily, and has no need to do a lot of code modification, and rendering engine can switch back to normal file access method when it’s necessary.Rendering is both a compute intensive and I/O intensive application, which means Shared Data Management can only scatter shared data over memory on nodes of Rendering Unit to avoid effections to normal rendering process, which brings the problem of remote memory access. In this paper we proposed three ways to implement remote memory access:based on MPI one-sided communication, based on RDMA and based on TCP protocol, this paper implemented the RDMA method.This paper’s work is part of national 863 project:Application and Research of Photorealistic Animation Rendering System, rendering engine is Bleman which is Renderman compatible. |