How HPC Impacts Our Lives II: HPC (and Linux) in the Movies
A while ago, I published a first article about how HPC impacts our lives, and I talked about space research, weather forecast, and oil and gas. Another area where HPC has become crucial – and which definitely affects our modern life every single day – is Entertainment: online gaming, Hollywood special effects and animated/3D movies.
Special effects in a film or the creation of 3D (and) animated movies would not be possible without HPC technologies. Those movies can take a long time to make. For example, massive amounts of computing power are needed to render them – far beyond what the average person believes. And in this special industry literally Time is Money!
With the availability of an HPC infrastructure, it is possible to significantly reduce the time taken to release an animation movie to the market. Computers can automate the creation of animated movie or 3D scenes and moving characters in a film. But even with a lot of computer automation, it still takes a long time to animate something because you have to create the animation frame by frame, crafting something from nothing on a computer. And it still takes weeks to create just a few seconds of an animated movie. The rendering of the motion picture frames, an extremely compute intensive phase, requires a huge data-crunching effort for the generation of the final output.
Rendering – Concept & Challenges
So – what exactly is rendering?
- Rendering is crucial for animated and 3D movies: it is the process of generating an image from a model, or several models which collectively can be called a scene file, via a software program. It means that the computers build the animated or 3D world in its full colors as the scene is meant to be viewed in a cinema or on the screen. The machines create the frame, which is an individual picture in a sequence of images, and it is then captured as one of thousands of frames in the movie. When you watch the movie, you see anywhere from 24 frames to 60 frames per second.
- During the rendering process, the render engine calculates /computes the details like ray tracing settings, resolution settings, textures, lightning, geometric information, shading information, etc. as a description of the virtual scene. This process utilizes 98-100% of the resource in the compute nodes – like CPU and memory.
- Of course the time and the compute power taken on the rendering depends on the number and complexities of elements present in the scene. The more details you have, the more “real life” you want a frame to be, the more time and compute power is needed. And details in animated movies and special effects become even more detailed, because the audience has “trained” the eyes and is much more critical than previously.
To make the movie Avatar, for instance, 40,000 processors were handling 7 or 8 gigabytes of data per second, running 24 hours a day.
A final copy of Avatar equated to 17.28 gigabytes per minute of storage. The sum of required computing power for the creation of Avatar reached 205 teraflops, which when the movie was created equaled the power of the supercomputer ranked number 16 of the fastest supercomputers in the world. Now, seven years later, in November 2016, the supercomputer ranked 16 reaches 5,283 teraflops, about 25 times the power.
Pixar talks frankly about their Linux usage for their movie creation. When they created the movie Monsters University in 2013, they had about 2,000 computers with more than 24,000 cores.
And it still took about 25-30 hours to render a single frame of the movie. All in all, it took over 100 million hours of CPU time to render the entire movie. If you used just one CPU to do the job, it would have taken about 10,000 years to finish. With all of those CPUs that Pixar did have, they needed just 4 years to finish the movie, including the rendering.
Why Linux Became Big in the Movies?
Using Linux on HPC clusters for movie creation is not an invention of the past 5 years. Today most of the major studios use Linux for their special effects as well as for animation and rendering of the movies. And the reasons are based on the nature of Linux being open source:
- On one hand, render farms with several thousand machines get pretty expensive already, and adding thousands of millions of dollars for proprietary operating systems licenses often is not affordable, or getting into restrictive contracts with proprietary vendors, that do not leave room for flexibility.
- On the other hand, flexibility and the opportunity for customization are even more important. It is just a lot easier to strip down Linux and make it processes data quicker, than it is for proprietary operating systems. As Linux is open source, you can fine-tune performance, add packages or code, etc.
- In addition, if film companies are using a closed-source tool set, and there is a feature missing or a non-trivial bug causing issues with their workflow, they have to spend a fair amount of money to get the vendor to fix it for them. With an open-source solution, they can hire someone and fix it or extend it themselves for a whole lot less money.
This might indeed be one of the most important reasons for the use of Linux: A lot of movie and special effects companies need to write algorithms and applications for their own special needs – with Linux they can easily do that. Some film studios nowadays employ hundreds of Linux programmers, and they even develop their own applications for image retouching, visual effects and animation.
Just to give you two popular examples from Linux tools that had been developed by the movie industry:
- OpenEXR is a high dynamic range imaging image file format, released as an open standard along with a set of software tools created by Industrial Light and Magic. It is very broadly used in the computer-graphics industry, both for visual effects and animation. OpenEXR’s main advantage over other image formats is high dynamic range: it supports floating point pixels. High dynamic range (HDR) images allow a closer representation of real-world colors: shadow and highlight detail is preserved.
- Cinepaint is a deep paint image retouching tool that supports higher color fidelity than ordinary painting tools. It has been partially written by Rhythm & Hues, and is a derivate of GIMP, the GNU Image and Manipulation Program which is THE image editing program on Linux.
Who Uses Linux for HPC in the Movies?
Industrial Light and Magic, a George Lucas company, already switched to Linux rendering farms back in 2002, for Star Wars Episode II. Andy Hendrickson, their director of research and development, explained “Linux is increasing the quality of our work, not the quantity. Large amounts of processing power enable more user control. We often go into a show knowing what we want but are forced to scale back realism with shortcuts because of a lack of processing power. Using Linux we can add more realism. We direct effects. It isn’t enough to have a cloud that is an accurate model. Artistic staff directs the effects with Make that cloud more fluffy.”
Crest Animation Studios had been known for TV episodes such as Bratz, Pet Alien and Jakers! as well as movies such as Arthur the Movie.
Crest’s focus was on computer- generated imagery (CGI) as it relates to animation. Crest had configured an HPC render farm comprised of 500 compute servers. The configuration included dual CPUs and single-core systems as well as dual- and quad-core computers. To support the render farm, they used also 4 to 8 gigabytes of random access memory; high-through- put storage (an HP Enterprise Virtual Array 8000); and a non-blocking, high-bandwidth network. For rendering the above movies, they were using the SUSE Linux Enterprise Server operating system on their systems.
Intelligent Creatures uses Nuke, a node-based digital composing software used for film and television post-production, on SUSE-based workstations. One of the movies where they have contributed to the live-action visual effects is Watchmen, and also the TV series Transporter.
Rising Sun Pictures is an Australian-based visual effects company, and nearly their entire environment is based on Linux. Together with other companies, they worked on blockbusters such as X-Men: Days of future past. One of the key scene they contributed is where Quicksilver acts in lightning speed in the kitchen, after they liberated Eric /Magneto, to fool the guardians, and the audience sees everything in slow motion, while the other actors seem to be frozen.
The slow motion sequence is an astonishing blend of live action, computer-generated objects and extensive visual effects. Each of these elements needed to be rendered in near microscopic detail, placed precisely within the geometry of the kitchen and choreographed to move and react realistically to lighting, other objects and characters.
HPC Matters – Because We Want to Be Entertained!
Isn´t it amazing? Without HPC technologies and the massive computing power available today – and without Linux as substantial and cost-effective part of the HPC stack – we would not be able to enjoy the advanced 3D and animated movies or high tech games we are used to have today. Or – it would take a lifetime until they come to market!
Disclaimer: The text at hand has not been reviewed by a native speaker. If you find typos, please send them to me (firstname.lastname@example.org) – or if you like them, just keep them :-).