Used servers can be bought for very low cost and can make for powerful rendering machines.  These Dell PowerEdge R610 servers are outfitted with dual Xeon Hexacore processors and are around $400 each.

Render farms don’t have to be expensive. In fact, you can purchase used computers for very little cash, use old computers from around your office or even use computers that are idle while workers are at lunch or home for the evening.

We’re going to use Adobe After Effects as our example, but the same rules apply to any render farm capable software.

What’s a render farm and why do you need one?

Simply put, a render farm makes possible distributed network rendering. If it takes ten minutes per frame to render a clip, and that clip is 100 frames long, your render time is 1,000 minutes, or 16.67 hours. But what if you use three computers to render it? Each computer at any given time is working on a frame concurrently. You just cut your time by 1/3 — 1,000 minutes becomes 333.33 minutes, or 5.55 hours. Can you see the benefit now? Not only that, you can picture render on the farm and still be free to move onto another project on your creation computer. No more being forced to render overnight.

Advertisement

How to Make a

DIY Green Screen

Free eBook

Free

How to Make a

DIY Green Screen

Free

Thanks! We will email your free eBook.


Before You Build a Farm

Do your best to avoid mixing kernels. The kernel is the central code to an operating system, so this means don’t mix Macs and PCs. Why? The Mac kernel handles random numbers differently than a Windows kernel. On things like noise or procedural textures — anything that uses a random seed parameter — you could end up with a flicker effect because the PC frames will look slightly different from the frames rendered on a Mac.  This isn’t always true, and there are some ways around this, but those techniques are way beyond the scope of this article. It’s best just to use “never mix kernels” as a rule of thumb.

Most software, After Effects included, does not require a full install to become a render node. After Effects only requires the render engine to be installed. This means that one After Effects license can be used across an entire farm. The full instructions for installing the render engine are available here on Adobe’s website.

However — and this is a big however — you do need to license and install any plug-ins on each render node along with any fonts that are associated with the projects you intend to render. Some plug-ins do come with a render node license, some do not.  You’ll have to check on your individual plug-ins.

Where to Get Nodes

As we said before, you can use idle computers around your network or old computers sitting in a storage closet. Power helps, but it’s not crucial. Think of it like a swarm of fire ants. One fire ant can’t do much damage, but an army of them can take down an elephant — or a huge render — in short order.

If power is what you want, it still doesn’t have to break the bank. You can always pick up used servers from sites such as Server Monkey. We picked up two Dell PowerEdge R610 servers each with two Xeon hexacores at 2.98 GHz for around $400 each. They both have the same render-power as our $8,000 creation machine because there’s no need for all the storage or a massive video card. They’re essentially just massive processors attached to a network and they happen to run Windows 10 Pro with no issues.

Setting up the Network

It’s important that your entire environment is mirrored across all the nodes. If you don’t have a SAN (Storage Area Network) device such as an ISIS, it’s ok. For this example, we’re using the RAID drives on the creation machine as storage. We set our content drive letters on Windows to V: and W:  on the creation machine, named “HarleyQuinn”.  Then, on both of our render nodes, “Talia-AlGhul” and “White-Canary,” we map those same drive letters across the network to HarleyQuinn’s drives. Now all the computers are using the same physical drives associated with the same drive letters.

Mapping and mounting your content drives to the exact same drive letters / names is crucial to avoid having to copy (or collect) your raw assets, saving you tons of drive space.
Mapping and mounting your content drives to the exact same drive letters / names is crucial to avoid having to copy (or collect) your raw assets, saving you tons of drive space.

On Macs it’s a little easier. Simply mount the network drives and they’ll have the same drive names as they did on the local machine. If you do have a SAN, just make sure all drive letters or mount names are the same for each drive on each render node

It’s also important to use as high-speed of a network as possible — Gigabit or higher.  Slow networks can cause slow renders. This is another advantage of using an old server. The R610s we’re using have four ethernet ports at a Gigabit each. They all work together to give the servers four gigabits of network bandwidth.

You should also have a way of monitoring your render nodes without getting up from your main computer. On a Mac, you can use screen sharing. On Windows, a screen sharing software package like Team Viewer, Logmein or VLC can be used. This will let you control all the render nodes and monitor them from one machine.

Setting Up and Kicking Off Renders

In After Effects, you should add your composition to the Render Queue. For the Output Module, select “Multi-Machine Sequence.” This is essentially an image sequence of PSD files output to a folder. Since there will be an individual image file for each frame, make sure you set your output to an empty folder, for your own sanity’s sake, on your content drive — V: or W: in this case.

Render farms work by distributing the work. Each render node works on one frame of the video concurrently and saves that frame as one image to the same folder.

Also, make sure you tick “Multi-Machine Settings” under the Render Settings options.  This ensures that no two-machines will work on the same frame at the same time.
Now, on each render node, you can start up the render engine in one of two ways:
First, if it’s a dedicated render-node, you may as well just start up the render engine’s GUI and set the watch folder (File>Watch Folder). That sets the render node to automatically look at a folder on a network location and to start rendering if it finds a render-ready project.

The other way is use a command line. On dedicated render nodes, this can be useful to just start up the render engine on startup. If you’re doing rendering on idle machines, this can be assigned to a batch file that someone clicks on their desktop when they go to lunch, or it can be associated with a task scheduler — literally called “Task Scheduler” in Windows, or an iCal event on a Mac — so that every night it starts up after working hours. The command line on windows for a watch folder located on W:AErender looks like this: "C:Program FilesAdobeAdobe After Effects CC 2017Support Filesafterfx.exe" -wf W:AErender

The quotes are necessary in the command line because of the spaces in the path to afterfx.exe.

Finally, all you have to do is kick off the render by collecting your project (File > Dependencies > Collect Files). Now, if you know After Effects, you were probably freaking out when we said you needed all the same drive letters and names across all nodes. Although it’s true that if you collect all the files associated with a project, you don’t need to do this. But why would you want to duplicate hundreds of gigabytes? Let’s save some drive space by utilizing our mapped drive policy. On the top dropdown menu, for the Collect Source Files interface just select “None (Project Only).” All of our source files are either on V: or W:, and those drives are mapped properly, so no need to collect these files. After you complete this, the nodes will pick up the render and begin rendering frames.

The Selling Point for the Boss

Network rendering can really improve your efficiency at the office. Think of it this way: your average motion graphics artist in San Francisco makes around 35 dollars per hour. If adding a network node saves you 13 hours of that artist sitting and watching progress bars, that render node just paid for itself. We guarantee that motion graphics artists spend more than 13 hours staring at the word “rendering” on their screens in a year — some might even reach this amount in a month or a week.

For a complete tutorial on the processes described above, feel free to check out: https://youtu.be/dIcW0a_LpuY

Conclusion

A little confused? Don’t worry; the first time you do anything it can be a bit overwhelming. But believe it or not, it’s pretty simple to setup and use render farms with post-production software. Lightwave has LWSN; there are a plethora of network rendering tools for Maya, Nuke, Shake and other packages. Once you setup your first renders and get them going, you won’t be able to help but brag about it and talk about how cool network rendering is.

Not only that, but you can render as many times faster as machines you can plug in!  You can even start a render and move on to another project!

Ty Audronis has consulted on Post-Production Technology and Workflows for major network studios, film houses, advertising agencies, and educational facilities.  He has well over 20 years of production technology experience.

3 COMMENTS

  1. Do they just work for outputs, or can you utilize the render farm power while you’re working? Say I’m in Premiere or Avid, and I have effects in my timeline, can the render farm facilitate faster renders of those effects?

    Thanks

  2. While this only works when rendering outputs, there’s also another benefit you could utilize. In the example they were using after effects to output any size project to a full lossless file. I do a lot of SD uprez work, so this would be truly beneficial. Just for your own note, if you find older systems with multiple cores, you can force the system to utilize more of those cores. You can also have media encoder render the video out to a proxy afterward, using the additional methods in the next paragraph.

    After effects has a renderer component called AErender.exe or aerender.app, depending on which OS you’re using. This is the renderer program that actually processes your work. The GUI of After Effects only sends a limited render list to this function though. It doesn’t truly utilize your resources, only guesses at what it can use. Make sure you have at least 16gb ram on any node. If so, you’ll do just fine. Plug in a few SSD’s for Cache space, make sure they match and that they are set up on each machine locally. Once you are done setting up each machine, leave AE running only on the master creator machine. You can use the AErender.bat beta program on windows, or just use the command line on mac (though I believe there are some apps that will do this for mac now too; I work WIN OS), and you’ll send half the video frames (use the actual frame count from After Effects if possible), and you can split the operation on each machine by #ofthreads – 2, which means an 8 core can have 6-14 threads (from the example a hexacore is a 6 core, so think 6-12, more like 8) from inside the gui of the beta exe. You will have to set the memory to no more than 80%, I usually use 50-60 on an I7 with 16gb sysram and a 4gb gfx card, and set cache amount to 75% or so. When you start this on each system, give each one a separate (not the same) folder to use. This will become important in the next steps. Do NOT hit launch just yet. Open Adobe Media Encoder on either node (it’s free and open with any CC license and installs with After Effects), set up a watch folder and have this folder render out your desired output video format when it has been idle for more than 4 minutes. Back in the Aerender command line or beta exe, make sure you split the render properly, and hit launch. It will begin the process and open another window, I suggest you open one of the running processes, usually the bottom one works best, and leave it open that way. You have no screen to run so you should be okay to leave this. Each machine will heat up and slow all other ops to a crawl, each frame will take mere seconds, but in multiples of your split count (threads-2), which leaves just enough for the system to run a process or two in the background. Now do this to every node.
    I did this on a blowup of 12min of video with all the cleanup, on a single machine with a Quad core i7 that has 8 threads, I used only 4, and with a single process folder, AME output the video to something Premiere could use in mere minutes after the initial render. Originally, Media Encoder and After Effects both quoted around 4-6 days of encoding. This ripped out the master and the renders in about 12 hours to formats I could use for more edits and preview qualities at the same time.
    Just for fun I did it again, and set the renderer to opengl instead, then connected to a buddy’s set of octo core servers, each with a 2-4gb ATI card for video. 2 servers cutting 8 threads each with AME ripping the proxy and lossless video took just over 3 hours.
    I’m contemplating this setup now. Anything with dual cores would allow 2 threads. A cheap refurb box with 6-12 gigs of ram and a cheaper nvidia card would allow cuda for the rendering of effects with better accuracy to color and fine detail, but I guess I could settle for ATI cards and go with opengl if it meant getting more cores into the build. Just remember, you still have to POWER those cores.

Comments are closed.