After Effects Multi-core Video Rendering... only 4% of CPUs are being Consumed"

Started by dayoldy, June 21, 2013, 12:41:35 AM

Previous topic - Next topic

dayoldy

Hi Bitsum Community,

I am new to this community. When I went on Google to try to find more knowledge about CPU usage, I saw your Process Lasso product. I wonder... if I buy Process Lasso, could it teach me more about how my processor cores are being used? And also, could it maybe help each process use more than 4%?

Here is some background...
I have been trying to optimize the performance of Adobe After Effects video rendering. I built a 12 core Xeon machine with 64GB RAM.
After Effects preferences gives me the ability to assign 18 cores to rendering (in addition to one main core running the main program). It gives me the ability to shelter 6 GB of RAM for the OS and other Applications and to asign 58GB to After Effects. And I can also assign 3GB of RAM to each of the 18 cores (while the main core is left to take the remaining 4GB and whatever it needs from the other 18). It really helps with using my powerful machine to better ability.

During rendering I monitor the processes in the Windows 7 Resource Monitor. While the render progresses, the graph panes on the right side of the CPU tab show each of the 19 cores consistently filled to the top.  So it looks like they are working at 100 percent. And I like very much to see that!  :)

When I look at over at the left side, at the Processes table, I see 110 threads for each process. But then as I look at the numbers posted under  "CPU" and "Cycle" headings, I am puzzled.   ???  It shows that for each of the 19 cores only 4% of the CPU is being "consumed", and also only 4% of CPU Cycle time is being "consumed". Is it possible to increase the usage percentage of the CPUs for faster processing?

Here's another puzzling thing...  ???  if I right-click on any of the 19 processes and select "Analyze Wait Chain", a message box says, "One or more threads of AfterFX.exe are waiting to finish network I/O." And it shows a visual dependency tree of 3 threads.

I tried setting higher priority for the 19 processes to both "Above Normal" and "High"; but the rendering actually ran slower and the CPU graphs were more jagged (fast and then slow).

Thank you.
dayoldy

Jeremy Collake

If I am reading correctly... 19 threads at 4% CPU time consumption each = 76% total CPU utilization. Assuming the actual numbers are a bit over 4%, and adding in other system activity, this accounts for your CPU utilization. I believe the confusion is perhaps you are expecting to see per-core statistics, so that a single thread using 100% of a core shows 100%. In fact, on an 12 core system, the most CPU utilization any single thread can show is 8.3%. Of course, there are multiple threads in processes, so the total can rise higher than that, but in this case it sounds like each process has a primary worker thread, and the parallelism is accomplished by forking its process.

Don't worry about the Analyze Wait Chain. That's not for casual use. Most any time you look at an 'active' thread, it's likely to be waiting on some I/O or another. What you see is surely just a normal manifestation of the design of the application.

There's no way to make anything run faster. Don't fool with priorities. The intent of ProBalance is to keep your PC more responsive during high loads. Process Lasso, or anything, can't make it run faster. Even if you spent a load of time trying to optimize the PC, you'd, at best, only achieve marginal effects.. and at worst, cause all sorts of problems.
Software Engineer. Bitsum LLC.

edkiefer

Yes, If you see core graphs on right 100% you can't get much better than that .
You can tick off the box fo the process and see what % or graph is that process (yellow/orange line)
Bitsum QA Engineer

BenYeeHua

Yup, I think that reducing it will be increase some performance for it.
QuoteIn many cases, performance is improved by using fewer than the maximum number of processors for Render Multiple Frames Simultaneously multiprocessing, even when you have enough RAM for all of the processors.

After Effects is a multithreaded application that can also use other forms of multiprocessing beyond just Render Multiple Frames Simultaneously multiprocessing, and it is possible for the processors to become ââ,¬Å"overscheduledââ,¬Â if these threads are competing for the same resources as the background processes used for rendering with Render Multiple Frames Simultaneously multiprocessing.

Therefore, the best approach is to begin by using a small number of processors for Render Multiple Frames Simultaneously multiprocessing; and then increase the number of processors used until you find the optimum number for your computer system and compositions.

For an 8-core computer system, the optimum number of processors may be 4 for some compositions, 6 for others, et cetera.

Run your own tests for your own scenarios. Remember: The reason that these settings are preferences is that the optimum values are different for different computers, compositions, and so on. There is no one ââ,¬Å"rightââ,¬Â setting.

Keep in mind that using the Render Multiple Frames Simultaneously multiprocessing feature does not speed up the rendering of all compositions. The rendering of some compositions is memory-intensive, such as when you are working with very large background plates that are several thousands of pixels tall and wide. The rendering of some compositions is bandwidth-intensive (I/O-intensive), such as when you are working with many source files, especially if they are not served by a fast, local, dedicated disk drive. The Render Multiple Frames Simultaneously multiprocessing feature works best at improving performance when the resource that is most exercised by the composition is CPU processing power, such as when applying a processor-intensive effect like a glow or blur.
http://blogs.adobe.com/aftereffects/2010/03/performance-tip-dont-oversched.html
http://helpx.adobe.com/after-effects/using/memory-storage.html