Rendering is the art of ‘drawing’ an image, which means you’re creating new pixels. If you had one pixel which is red in color, and you applied a filter to make it green, when you export it to a finished pixel, the software will have to recreate a green pixel. This is called rendering.
Rendering can be quite complex. Imagine creating a 3D model of a dinosaur. There are many elements that go into it:
- 3D skeletal structure
- 3D polygons for musculature
- Rigging algorithms to define movement
- Lighting, and so on.
All these are drawn, programmed and assembled one by one, and it is the job of the software to calculate the final image of a dinosaur and render it. When you have billions of elements, like in a CGI movie or animation film, the calculating power required far exceeds what a modern single-computer is capable of, under the time constraints of a production.
Enter a render farm. This article explains what a render farm is, its usefulness, and whether or not you should build one.
If you don’t know much about the VFX and CGI industry, read the Special Effects Software Guide first.
What is a render farm?
Let’s start with an analogy.
The unruly classroom
Imagine an unruly classroom, where each kid cheats on every test. The frustrated teacher, determined to teach the kids a lesson beyond the scope of the school curriculum, devises a devious plan.
Each kid will get a separate math problem to solve, and they must solve it within a given duration. And here’s the diabolical catch: The entire class must wait until each and every problem is solved correctly.
Now, imagine the flow of events. At the beginning of the test, the teacher passes on test questions to each student. Time starts. Each student calculates furiously until he or she solves the problem and raises his or her hand. When the problem is solved, the teacher looks at the result, and either approves or rejects it.
A rejected job is recalculated. An approved job is deemed complete, and the kid who solved a problem the quickest must wait the most. This goes on until every problem is solved. When the last problem is solved, all the answer sheets go back to the teacher, who organizes them alphabetically or whatever.
She looks up. The class is empty.
The render farm
A computer is a device that computes. In our analogy, each student is a computer. The teacher, too, is a computer.
They are all networked together in such a way that the teacher-computer passes on jobs to each student-computer, and the job is executed. In networking parlance, a bunch of computers organized in this fashion is called a farm.
Therefore, a render farm is a cluster of computers designed and organized for the sole purpose of rendering. Each computer is called a node. The computing that takes place is called parallel computing, because each node can be given a specific and unique task that doesn’t require any other node – in short, the calculations can happen in parallel (at the same time).
Normally, a render node is just a dumb calculating device. It must calculate whatever job is assigned to it. It is the job of the main computer to distribute tasks to each render node, and the software application that does this is called a render management software, or a Queue manager.
The job assigned to each node can be a sequence of images, a full image, a layer of the image (a channel), or some other section. Obviously, the queue manager must be able to perform this duty without human supervision. It must be able to intelligently assess the needs of the job as a whole, the capability of each node, and the current networking status. Once a render node completes rendering, it is immediately assigned another task and kept busy.
In our unruly classroom analogy, a bright kid (a superior render node) might finish her paper, and solve somebody else’s too, just so she can get out early.
To know more about some important render software, read my article on rendering applications.
Difference between a render farm and a supercomputer
A render farm is an organic thing. When somebody starts a VFX business, he or she won’t be buying thousands of computers from the word go. It takes time to build credibility, so VFX facilities start small, and then expand when necessary.
You add one computer today, two a few months from now, and ten thousand twelve years from now. You can design a render farm with simple server components, and scale easily (nothing is easy!). This is also cost effective.
On the other hand, a supercomputer is designed for a specific purpose, and must offer ‘supercomputing’ right now. This is why scientists design supercomputers – they already know the scope of work (we hope they do) it is to perform.
What about licensing?
There is a catch with render farms, one that isn’t readily obvious. Each software application is sold as a license. Some applications require you to purchase an additional license for each render node. E.g., Nuke, by The Foundry costs about $4,155, while each render node license will cost you about $460.
The pricing models aren’t standard, and some software, like Autodesk Maya, allow up to 6 render nodes with each license, using Mental Ray. Depending on your needs, some vendors and resellers offer discounts as well. The point is, don’t neglect to factor in software licensing per node as a cost.
Can you build a render farm, should you build one, and how do you build a render farm?
Can anyone build a render farm?
Sure you can. Each render node is just a computer. All you need to know is a little bit about networking computers and you could do it yourself. Or, you could hire a network engineer to do the job. Then, you buy the license, install it, use your desired render management software and you’re good to go.
Should you build one?
Depends. Do you really need one? Let’s say you are single-person post house, doing intensive graphics and animation work. At some point, you’ll no longer be able to render at night and work by day. You’ll be faced with the following questions:
- Should you hire another person and buy another computer+software license? Or,
- Should you build a render node and continue going solo? Or,
- Can you outsource your rendering?
It’s a cost factor primarily, assuming all three solutions can deliver the job before the deadline and under budget. It’s also a location and space factor. Do you have the space to accommodate another artist? Even this ultimately boils down to cost, really.
Only you can decide at what point a render node works, as opposed to a dedicated terminal with a human in front of it. Both solutions have advantages and drawbacks.
How do you build a render farm?
If you know how to assemble a computer and get it talking to another computer via a LAN, you know everything there is to know about building a render node. A render farm, on the other hand, is many computers talking at the same time, and it is no longer possible or feasible for only one person to build, scale or maintain it.
Here are some websites to get you started:
- Build your own render farm, by ExtremeTech
- Building your own render farm, by Tom’s Hardware
- How to set up a basic render farm, by Autodesk
- Story of Helmur, Linux cluster in an IKEA cabinet
- Renderfarmer’s DIY render farm
What about cloud-based solutions?
In addition to building your own render farm, you can outsource your rendering work to various companies who offer rendering nodes on a project-by-project or job-by-job basis. As a rule of thumb, the cost might vary between $0.10 to $1.00 or more per frame. The faster you want something done, and the better computers you choose, the more the price.
Some of the well-known websites are:
I hope this general overview has helped you understand what a render farm is, and answer whether it is the right thing for you, and how you can build your own.