Activity › Forums › Adobe After Effects › Why Does AE Need MultiProc?
-
Why Does AE Need MultiProc?
Posted by Mark Walczak on April 15, 2011 at 5:36 pmHi Everyone,
I just have a general, albeit simple question. If AE is a true 64-bit program, then why does it even need the MultiProc feature? Shouldn’t be able to gobble up the entire processor(s) by default? Now, I know that not all x64 programs are created equal, but I find it hard to believe that AE can’t take up 800% CPU (on an 8-core Mac) in the same manner that Cinema4D is able to work. The most CPU I’ve ever seen the standard AE process take is about 300%.
If anyone could shed some light on this topic, I would greatly appreciate it!
Thank you!
Mark Walczak replied 12 years, 7 months ago 4 Members · 4 Replies -
4 Replies
-
Joseph W. bourke
April 15, 2011 at 5:58 pmHi Mark –
I’ve just begun looking at this issue myself, as a recent purchaser of CS5 Master Suite. I’m going to need some real horsepower. I ran across this on the Adobe site, and I think the videos give a pretty good grounding in multi-processors, although they are HP centric:
https://tv.adobe.com/show/maximizing-cs55-performance-with-intel-xeon-processors/
Joe Bourke
Owner/Creative Director
Bourke Media
http://www.bourkemedia.com -
Jon Bagge
April 15, 2011 at 6:35 pmI just have a general, albeit simple question. If AE is a true 64-bit program, then why does it even need the MultiProc feature? Shouldn’t be able to gobble up the entire processor(s) by default?
64 bit has nothing whatsoever to do with multi processing. It just means it can address more memory.
Now, I know that not all x64 programs are created equal, but I find it hard to believe that AE can’t take up 800% CPU (on an 8-core Mac) in the same manner that Cinema4D is able to work. The most CPU I’ve ever seen the standard AE process take is about 300%.
For multi processing to work the program has to be specifically written to be able to split the work up into individual chunks that can be rendered on separate cores. If a calculation on one core depends on the result of a calculation on another, it will have to wait. There are plenty of effects where it’s either hard or impossible to break up the work in this way.
In AE you can have an incredible amount of layers with different effects on them, and it’s not trivial to work out how to share this across cores.
That’s why in AE you can run multiple copies of the application on separate cores, each rendering a frame. Most effects don’t depend on information from other frames (although some do).In Cinema 4D each pixel in the frame is a separate calculation (at least for the most part) and so it’s much easier to split the frame up into units that can be spread across cores.
Having said all that, I can easilly get AE to use 80-95% CPU across 16 cores (8 cores with multithreading) for certain type of projects.
————–
http://www.jonbagge.net
Jon Bagge – Editor – London, UK
Avid – FCP – After Effects -
Walter Soyka
April 15, 2011 at 6:48 pm[Mark Walczak] “I just have a general, albeit simple question. If AE is a true 64-bit program, then why does it even need the MultiProc feature? Shouldn’t be able to gobble up the entire processor(s) by default? Now, I know that not all x64 programs are created equal, but I find it hard to believe that AE can’t take up 800% CPU (on an 8-core Mac) in the same manner that Cinema4D is able to work. The most CPU I’ve ever seen the standard AE process take is about 300%.”
64-bit doesn’t have much to do with processing power — the big advantage with a 64-bit application is the amount of memory it can use.
There’s a significant technical difference between the AE and C4D renderers.
To oversimplify a bit, AE’s renderer is layer-based, and it starts with the source footage. It renders each layer of source footage and composites them together internally as it goes.
C4D (and other similar apps) use bucket (the little orange render boxes) or scanline renderers, essentially starting with the rendering viewport and working backwards. All the objects in the scene are sorted by their coordinates; if an object appears within a bucket or scanline, it will be rendered there. If not, it’s not considered in that bucket.
They both fundamentally use multiprocessing to speed up renders, but because the renderers are different, the way the tasks are divided up is different, too. AE multiprocessing renders one whole frame each in multiple processes; C4D “multiprocessing” renders one bucket each in multiple threads or processes. In both cases, the threads/processes are split among processing cores, and the results are combined by the host application.
In other words, AE thinks in frames, and works on multiple frames at the same time. C4D thinks in buckets of pixels, and renders multiple buckets within a single frame at the same time.
Because each rendering process for AE must have access to all the layers it needs in its own space in RAM, you need a lot of RAM. By way of example, I’m rendering a big AE comp right now. I have 8 cores, and they are all running between 97-100% at any given moment. I have 32 GB of total RAM, about 25 GB of which is used right now. If I only had 16 GB of RAM, my processors would be waiting on items to be shuffled in and out of memory, and would be running much slower.
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 -
Mark Walczak
April 15, 2011 at 7:40 pm
Reply to this Discussion! Login or Sign Up