INDUSTRY
Linux-based Distributed Rendering and the Visual Effects Market
By Steve Fisher, Editor -- Recently, Side Effects Software, developer of the Houdini family of 3D software, and Sun Microsystems announced that Axyz Animation, Inc. has successfully achieved distributed rendering across a Linux-based compute farm using Sun Grid Engine software with the Houdini 3D solution. To discover the challenges involved and to see if Linux-based solutions could be the wave of the future in the visual effects market Supercomputing Online interviewed John Tollefsrud, Grid Marketing Manager, Sun Microsystems, Inc. SCO: Please provide a technical description of Axyz Animation’s Linux-based computer farm. TOLLEFSRUD: Axyz Animation is a smaller FX shop, with Sun Grid Engine software being used on a mix of 15 CPUs scattered over 9 computers, including both servers and graphics workstations. The hardware ranges from pre-built systems to "home-rolled", with Redhat Linux, ranging from v6.2 to v7.3, running on these systems. Memory typically falls in the 1 gig range, with CPUs ranging from an ancient Intel Pentium II 450MHz processor used to manage the Sun Grid Engine process (and that slow machine manages it quite well according to Axyz), to more recent Intel Pentium 4 processors at 2GHz. Sun Grid Engine software is required to manage a number of types of processes - for instance Axyz will uses Side Effects Software's Houdini to generate data for rendering, Side Effects' Mantra renderer along with Pixar's Renderman for rendering images, and various batch-type jobs, such as image processing or data generation. Axyz Animation wrote a series of utility scripts that give the company an easy interface to the process of getting images to the animators in the most efficient manner possible. All an animator needs to know is the scene they're rendering, the layer they want, the frame range or any other specialty parameters, and the scripts and Sun Grid Engine software handles the rest. SCO: What are a couple real challenges for companies doing distributed rendering? TOLLEFSRUD: Axyz Animation sees two major steps to the process - one is to determine and implement the particular applications with all their various licensing/resource needs. The other is the code that is required to ascertain what resource is available, which one is "preferred" over another, and in general manage the farm. The latter runs on a lower level than the first. Sun Grid Engine software allowed Axyz to avoid dealing with the management hassles of that level completely - allowing animators to implement applications in a fraction of the time and with far better results than recreating things like load measurement from scratch. SCO: I imagine bandwidth bottlenecks might be a problem, but what are one or two others? TOLLEFSRUD: Bandwidth bottlenecks are typically solved in hardware - you go the SAN route with gigabit networking to solve that. The sort of bottlenecks Axyz Animation tends to get for instance are: *The process to generate data for rendering a given frame might take longer than the actual time to render it. This is always a struggle, and is sometimes dealt with by breaking the process into smaller pieces, sometimes pre-cooking part of the process to save time later. *Priorities of jobs, scheduling, reserving license tokens for animators during the day is always a chore. *Synchronous processes, sort of related to the first point, but more generically. As much as animators can make the rendering process asynchronous, the better. Sometimes you can't always do this, but there are ways to help deal with it. For instance, in order to generate shadows in a given image, it's often possible or desirable, depending on the technology you're using, to create "shadow maps" beforehand. Doing this as a separate process before creating the final image is preferable because, in the event you haven't altered the animation or light positions, you may be able to use the existing maps without inefficiently recooking them. SCO: I see. How Did Sun help Axyz overcome these issues? TOLLEFSRUD: Well, in the above shadow map example, you must be careful - the shadow maps for a given frame must be completed before you attempt to render the final image. Sun Grid Engine software has the framework to allow Axyz Animation to do this - animators can make the final image render dependent on the shadow maps completing. One of the reasons Axyz Animation loves Side Effects' Houdini software is that there's so much "back door" access to the process. This helps immensely with the issue of breaking out the process of getting a single rendered frame into many smaller tasks. Sun Grid Engine software lets Axyz implement this effortlessly - animators commonly create tasks for Sun Grid Engine software that will, in turn, spawn their own processes right back to Sun Grid Engine software, which just keeps burning through the task list far, far faster and with less room for error than the animator manually breaking out the process. Sun Grid Engine software gives Axyz Animation complete control over priorities and scheduling. Animators can withdraw their workstations from the farm, or add it, reserve license tokens for their own work interactively, while Sun Grid Engine software keeps relentlessly working in the background using whatever free tokens it can find. Due to the smaller size of the company, Axyz Animation doesn't currently use the process of freeing up or conscripting CPUs to the farm, but this can be scheduled automatically. SCO: Is Sun’s Grid Engine software particularly well suited to “Hollywood” type apps like Side Effects’ Houdini? If so, why? TOLLEFSRUD: Sun's Grid Engine is a perfect match for Side Effects' Houdini -- a powerful, full-pipeline 2D/3D package that manages large amounts of data through its many entry and exit points. Sun Grid Engine's applicability goes far beyond its natural designation as the back-end handler of distributed rendering tasks. Combined with Houdini, it can efficiently manage the distributed generation of geometry and 2D/3D textures, the animation of particles and the compositing of images, while always ensuring an optimal CPU load across the grid. SCO: Do you see combinations of Linux, 3D apps and tools such as Grid Engine as the wave of the future for the visual effects market? TOLLEFSRUD: Sun Grid Engine software is an ideal ingredient to visual effects pipelines. Combined with open and non-proprietary operating environments like Linux or Solaris, and an open-architecture 2D/3D package like Houdini, it offers studios a cost-effective, easy to implement solution for the daily chores of distributed computing. SCO: Separately, what was Sun's experience at the recent GGF meeting in Scotland like? How'd things go? Anything special you'd like the readers to know about? TOLLEFSRUD: With industry leadership increasingly present in GGF, a hot topic was Intellectual Property Rights (IPR) as it relates to GGF documents and grid standards. Sun made a commitment at GGF5, delivered by Sun's CTO of Sun ONE Hal Jesperson in a keynote address, that all of Sun's contributions to the work of GGF will be on a Royalty Free basis. Sun further invited all participants to join in making such a commitment. GGF bylaws unfortunately are inadequate to ensure that companies don't use a 'Trojan Horse' approach to propose standards and then later attempt to extract royalties on related patents they may hold - a problem that has occurred in other standards groups. Sun is a proponent of Royalty Free (RF) standards.