ADOBE AFTER EFFECTS: Forum Expressions Tutorials Creative Cloud

Network Rendering

COW Forums : Adobe After Effects

<< PREVIOUS   •   FAQ   •   VIEW ALL   •   PRINT   •   NEXT >>
James Mortner
Network Rendering
on Feb 10, 2012 at 11:05:11 pm

Hello all AFX users,

It's my first post here so be nice !

Does anyone use any network rendering, .app files from BG render or have a render farm set-up for AFX ? I'm wondering
if anyone does it, any pitfalls or gotcha's you found.

And no, we don't have Qube and cant buy it right now :)

Many thanks for your collective wisdom and happy friday,

James


Return to posts index

Walter Soyka
Re: Network Rendering
on Feb 10, 2012 at 11:06:37 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

James Mortner
Re: Network Rendering
on Feb 10, 2012 at 11:19:26 pm

Excellent, some great reading in there. I will plough through and keep you updated !


Return to posts index


Andrew Somers
Re: Network Rendering
on Feb 11, 2012 at 4:56:50 am

The first question to ask yourself is "why?".

Network rendering for After Effects may not be useful to you, or it may be mandatory. But having it just to have it is not productive. (Sure, it may be fun to brag about the size of your renderfarm at the local users group meeting... but do you really need it?)


Consider:

1) Today, the biggest bottleneck in most renders is disk speed. If you don't have super fast disks, and a super fast datapath, most renders will not benefit measurably from distributed (network) rendering.

2) If you *already* have a renderfarm for other CPU intensive tasks (like 3D raytracing), then adding functionality for AE on that farm may be useful.

3) A real renderfarm for AE of several quad-core machines will need, at the very least, fibre-channel cards in each machine, a server, and a SAN RAID. Ethernet - even gigabit ethernet - is too slow for file serving media to multiple machines.

4) Weight the costs - the cost of setting up a bunch of quad core machines, with fibre channel and a SAN etc are quite high - while you can buy a stand alone 12 core machine and fill it with 48 GB of RAM and eSATA drives in a cheap raid that will give you similar performance at an overall lower cost.

5) The tutorial video that Walter links to above does show a "workable" solution that may be of benefit in some cases.




Here are three examples of when and when not to use a renderfarm:


Example one: Lone wolf, no farm.

If you are an independent artist working by yourself, you have little or no need for a farm. The costs to set up, and the time spend to manage it, will not pay off in terms of speed. Get the aforementioned 12 core system full of RAM and inexpensive eSATA raids instead - that's a far better investment.

You can find a number of scripts that will allow for background rendering when you work in a foreground instance of AE.

http://aescripts.com/bg-renderer/

Now, if BG rendering is too much of a performance hit for you, then as an add on, add an 8 or 12 core machine (just one) that you can copy projects to for background render and leave it at that.



Example two: Wolf pack, with farm.

If instead you have a *department* of artists all working together on the related projects, then you need fast common storage for everyone - and as long as you have fast common storage, then adding render nodes begins to make real sense.

This will allow artists to quickly "collect files (project only)" for watch folder render, and move on to the next project.

I'd estimate the cost/benefit curve of this method begins to prove itself with about three or four (or more) artists working simultaneously on the same project.

The downside here is that each machine in this setup needs about $2000 in hardware and software for fibre channel and the SAN client, etc. And your SAN server will be too mission critical that it cannot (well, should not) be used for rendering. And the RAID itself won't be cheap, either.



Example three: Middle ground, a couple stray wolves and a chicken coop.

In the middle ground, with two, perhaps three artists, it's probably better to have simple NAS storage and a simple ethernet server for the main files, and have each artist copy those files locally for work while working, then copy the files and project to independent standalone machines for background render, using "Collect Files (ALL)"

It is important that artists do NOT try and work by just linking to files over the network, but always copy files locally for work purposes.

For consistency (needed if you have to resurrect an old project), mandate that each working project be in a folder, and in that folder also have a folder called "media" where ALL media for the project be stored. This makes it was to delete the media from the local drive when the project is done, and *also* means that to reconstruct, all you need do is repopulate the "media" folder with the media for that project.


A typical two-artist setup would be to have three machines total (assume these are MacPros for the sake of argument):


1) Machine A: Artist one's machine - an octocore with 24 GB RAM, boot drive, and a 3 or 4 drive raid 0.

2) Machine B: Artist two's machine - an octocore with 24 GB RAM, boot drive, and a 3 or 4 drive raid 0.

3) Machine C: The server and BG render machine - a 12 core machine with 48 GB RAM, and a RAID 5 connected via eSATA and a PCIe raid controller.

http://eshop.macsales.com/item/NewerTech/MXPCIE6GRS/



Machine A is directly connected to Machine C's Ethernet Port 1, and Machine B is directly connected to Machine C's Ethernet Port 2.

Machine C acts both as file server and render machine.

The object here is that you spend all your money on a really fast machine with really fast drives rendering in the BG, and really fast machines with really fast drives to do work on in the foreground.

And you spend *no* money on exotic network topologies (that cost $2000+ per machine).


Return to posts index

James Mortner
Re: Network Rendering
on Feb 11, 2012 at 6:38:55 am

Yeah, we're kind of closer to the no farm and trying to make other machines render after hours. The network is pretty fast but storage could be a problem with storage remaining.

Its only for one project to try and speed up deliverables so its more of a tweak to exisitng infrastructure. No need to boast !


Return to posts index

Jon Bagge
Re: Network Rendering
on Feb 12, 2012 at 6:52:28 pm

Also consider the cost of just buying an additional licence for AE to run on a second machine with it's own HD. Then copy the whole project over manually. May not be as fancy, but sophisticated network solutions will very quickly amount to more.

And whereas you might have the whole production suite on your main workstation, you'd only need AE on the render machine.

Bear in mind this will make upgrade costs higher every time.

--------------
http://www.jonbagge.net
Jon Bagge - Editor - London, UK
Avid - FCP - After Effects


Return to posts index


Andrew Somers
Re: Network Rendering
on Feb 13, 2012 at 2:03:10 am

If it is being used for render only, you don't even need that - just install the render engine on that machine - it is a free install included with every license, and you have have as many as you like.


Return to posts index

Jon Bagge
Re: Network Rendering
on Feb 13, 2012 at 3:42:12 pm

The point was that if you do that you *must* render everything out of the same folder on a network. If you don't spend the money getting fast enough network/HDs, you lose the benefits of multi node render.

If you buy another licence it can render on it's own HD, and you don't need to invest in complicated network solutions.

--------------
http://www.jonbagge.net
Jon Bagge - Editor - London, UK
Avid - FCP - After Effects


Return to posts index

Andrew Somers
Re: Network Rendering
on Feb 13, 2012 at 10:19:27 pm

Well, until CS 5.5, you did not have to buy a license - the render engine can render on its own hard drive. The only difference between the full and the render engine is that the render engine does not have any of the menus for editing, etc etc. Only for rendering.


Return to posts index


Walter Soyka
Re: Network Rendering
on Feb 13, 2012 at 3:53:02 pm

[Andrew Somers] "If it is being used for render only, you don't even need that - just install the render engine on that machine - it is a free install included with every license, and you have have as many as you like."

Starting with CS5.5, you no longer get unlimited render nodes with a full license:

http://blogs.adobe.com/sforde/2011/10/12/render-engines-and-joy-of-legal-ob...

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

Andrew Somers
Re: Network Rendering
on Feb 13, 2012 at 10:17:30 pm

Thanks for the added info Walter - I have not upgraded to 5.5 yet. Guess this is another reason to wait, lol.

It would seem to me they could get around the licensing issue by allow for "free" nodes that had MPEG disabled. I never *ever* render to MPEG - if I need an MPEG I use Encoder instead, but *always* render to AJA/ProRes/EXR/DPX etc.


Return to posts index

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