FORUMS: list search recent posts

Suggestions on Configuration for After Effects Render Farm

COW Forums : Adobe After Effects

<< PREVIOUS   •   FAQ   •   VIEW ALL   •   PRINT   •   NEXT >>
Scott Eastman
Suggestions on Configuration for After Effects Render Farm
on Jan 18, 2011 at 8:59:33 pm

Hello,

We are currently using After Effects (CS4) to render several projects into final videos using two Mac Pros. The final videos range from 30s to 1hr. The volume of renders we have to perform is steadily increasing and I am tasked with determining what new hardware we need to purchase in order to handle this increase.

I'll preface my question with the caveat that I'm not all that familiar with After Effects and the hardware configurations that best improve render times. I am aware that AE supports network rendering but we are currently not using this feature.

My question is: What hardware configurations will serve best to reduce render times in After Effects. And, would it be better to use AE's network rendering feature instead of each machine in our render farm handling a single project on it's own? Is this simply a case of more processors and more ram the better? Or, perhaps AE is not optimized for multiple processors, and thus a single (multi-core) processor will suffice and I should just load up on ram? Disk space is not an issue.

(If you know of a better place to ask these questions please let me know.)

Thanks in advance for the help.

Cheers,


Return to posts index

Walter Soyka
Re: Suggestions on Configuration for After Effects Render Farm
on Jan 18, 2011 at 9:29:51 pm

Let me first outline how network rendering works with After Effects, and then I will list a couple of bullet point notes from my experiences with network rendering. Much of this information is found in the manual [link], but some of is not. All of it was learned the hard way.


How After Effects Network Rendering Works

You use Collect Files to get your project, its render queue, and all required footage together into a single folder. You configure the render nodes to watch that folder; once Collect Files is complete, it creates a render control file. On the render nodes, you select the folder to watch. When the render control file appears in it, the render nodes begin work according to the options it specifies. All watch folder network renders are done as image sequences, with each instance of AE on each render node working on one frame at a time.

There is no active communication among the render nodes, and the machine hosting the watch folder does not actively control them. Control is completely passive -- each machine looks at the shared storage to see if "Frame 0000" has been rendered yet. The first one to see that there is no image for "Frame 0000" will create that first file in the image sequence to claim responsibility for the frame, then begin rendering it. Finally, when the frame is complete, it overwrites the placeholder "Frame 0000" file.

As other render nodes join the party, they will see that "Frame 0000" already exists, so they will skip it and look for "Frame 0001." If "Frame 0001" already exists, they'll continue sequentially until they find the first frame that doesn't exist, create a file for it to claim responsibility for it, and begin rendering.

All the render nodes are also accessing footage from the shared storage, so that storage system is seeing many constant small reads and writes.

As you can imagine, this places some serious strain on the network and disk subsystem on the server.

Aharon Rabinowitz outlines a method for using multiple computers to render, but without watch folders (and without the coordination that watch folders allow). Depending on your needs, it might be worth trying:
http://library.creativecow.net/articles/rabinowitz_aharon/multi_machine_ren...


Notes on After Effects Network Rendering
  • Each of AE's render nodes is self-directed; there is no supervisor or controller for distributing the workload. (See this thread [link] where I explain how the AE network renderer works in some detail.)
  • You need a very fast network and very fast storage on your server. (Again, see the link above for my explanation of how the AE network renderer works and why this is necessary.)
  • Network rendering will create an image sequence on your shared storage. You can add a post-render action to re-import the image sequence and output a movie, but this will only be handled by one computer. If there is sound in your project, don't forget to output it separately if necessary.
  • You must specify the maximum number of render nodes when you set up the watch folder render. Multiprocessing increases your node count. For example, if you have four quad-core machines, you will have 16 render nodes.
  • All fonts and plugins used in your project must be installed on all render nodes.
  • Some plugins are licensed for unlimited use in render farms; others are limited to a specific number of render nodes; still others must be licensed for render nodes separately. Many plugins activate through their installers, but others activate with the AE environment itself. In this case, you will need a full license of AE in order to activate them. Most font licensing also limits the number of workstations they may be installed on.
  • Some plugins allow GPU acceleration. I highly recommend turning this off unless your render farm is completely homogenous.
  • Cross-platform file naming and path conventions can be tricky.


Walter Soyka
Principal & Designer at Keen Live
Motion Graphics, Widescreen Events, Presentation Design, and Consulting
RenderBreak Blog - What I'm thinking when my workstation's thinking
Creative Cow Forum Host: Live & Stage Events


Return to posts index

Spencer Tweed
Re: Suggestions on Configuration for After Effects Render Farm
on Jan 18, 2011 at 9:40:32 pm

Yo Scott,

Sounds like you have several questions here. To the first (hardware) definitely go with one of the nicer NVIDIA graphics cards if you can. In CS5 I see performance boosts of up to 4x from my not-too-shabby ATI Radeon to an NVIDIA Quadro FX 4800. That said, the whole point of a render farm is that you can take tens of crappy computers and make use out of them. I stick to quality over quantity though, take this from experience.

RAM is also something to think about. If you never plan to go 64bit (CS5 and above) then you will not use more than 3g of RAM unless you render multiple frames simultaneously (which I personally don't suggest). However if you do plan to go to CS5 and above, get all of the RAM you can get. The more the better; Adobe suggests 8g and up (12 should be plenty).

Lastly I suggest having a fast network connection - fiber optics is best (seriously). The slowest thing about net-rendering in After Effects is that when you send a job to render you have to duplicate all of the footage items onto your network (even if they are already there), and then these are pulled by each machine. If you have a comp that has a few minutes of HD video this can take quite a while.


Now for your next question:
would it be better to use AE's network rendering feature instead of each machine in our render farm handling a single project on it's own?

You should do a bit more research. There are 2 ways of net-rendering in AE. 1: you send a project to the farm and each machine takes a separate frame and renders out a sequence. 2: you send a project to the farm and each computer renders an item in the render queue.

I usually choose option 1 if I have a few big projects, and option 2 if I have a million little projects. Get it?



Let me know if you have any more questions, but definitely refer to the After Effects manual as I think you should look at what exactly net-rendering IS in After Effects.

Hope this helps,
- Spencer


Return to posts index


Walter Soyka
Re: Suggestions on Configuration for After Effects Render Farm
on Jan 18, 2011 at 9:57:19 pm

[Spencer Tweed] "In CS5 I see performance boosts of up to 4x from my not-too-shabby ATI Radeon to an NVIDIA Quadro FX 4800."

I am assuming you are talking about Premiere Pro here -- After Effects does not render on the GPU.

There are a handful of GPU-accelerated effects, but in a network render, everything should be rendered on a CPU unless the machines are completely homogenous. OpenGL rendering should never be used (on a render farm or on a workstation).


[Spencer Tweed] "RAM is also something to think about. If you never plan to go 64bit (CS5 and above) then you will not use more than 3g of RAM unless you render multiple frames simultaneously (which I personally don't suggest). However if you do plan to go to CS5 and above, get all of the RAM you can get. The more the better; Adobe suggests 8g and up (12 should be plenty)."

I'm curious why you prefer to leave multiprocessing off -- I can't imagine rendering without it. If you have a quad-core or better, get at least 2-4 GB of RAM per core (RAM is cheap!) and a 64-bit operating system, and turn on multiprocessing for a big performance boost.

There are a few effects that disable multiprocessing (Cycore's time effects come to mind), and an effect that uses GPU acceleration will perform poorly with multiprocessing unless it's set to render on the CPU. With pre-CS5 versions of AE, multiprocessing could be problematic with poorly-supported footage like MPEG2, MPEG4, etc., but transcoding that footage to a better-supported intermediate codec would solve that.

Of course, the CPU- or RAM-constrained should leave multiprocessing off.


[Spencer Tweed] "Lastly I suggest having a fast network connection - fiber optics is best (seriously). The slowest thing about net-rendering in After Effects is that when you send a job to render you have to duplicate all of the footage items onto your network (even if they are already there), and then these are pulled by each machine. If you have a comp that has a few minutes of HD video this can take quite a while."

Agreed -- but it's not just your network connection. For watch-folder rendering, every render node will be continually hammering the server with little I/O requests, so a fast server with fast disks is vital, too.

Walter Soyka
Principal & Designer at Keen Live
Motion Graphics, Widescreen Events, Presentation Design, and Consulting
RenderBreak Blog - What I'm thinking when my workstation's thinking
Creative Cow Forum Host: Live & Stage Events


Return to posts index

Spencer Tweed
Re: Suggestions on Configuration for After Effects Render Farm
on Jan 19, 2011 at 6:13:36 am

[Spencer Tweed] "In CS5 I see performance boosts of up to 4x from my not-too-shabby ATI Radeon to an NVIDIA Quadro FX 4800."

I am assuming you are talking about Premiere Pro here -- After Effects does not render on the GPU.

There are a handful of GPU-accelerated effects, but in a network render, everything should be rendered on a CPU unless the machines are completely homogenous. OpenGL rendering should never be used (on a render farm or on a workstation).


You are right, if you are just rendering you might not notice a difference. It is subject to test though, I don't believe that After Effects ONLY uses CPU. This may be true for most 3D apps, but I believe it is a little different in AE. I definitely notice a difference inside of AE itself when ram previewing, etc (and I don't use open GL). Additionally all of my render nodes were configured for 3DS Max (AKA, no GPU whatsoever) and honestly suck at rendering AE despite their quad-core CPUs. They are admittedly old though...





The reason I don't use render multiple frames is that it tends to crash AE and slow down performance, despite the render boost. Specially if you cap out the RAM, it can start cashing to the disk and kill render speeds (4 core CPU = 4 cores trying to pull files off of your HDD).

Under the right conditions I am sure that it is a good ideal, but it has only been trouble for me.


- Spencer


Return to posts index

<< PREVIOUS   •   VIEW ALL   •   PRINT   •   NEXT >>
© 2017 CreativeCOW.net All Rights Reserved
[TOP]