Page 1 of 1

While mixing CPU slows down

PostPosted: Thu Aug 18, 2011 7:59 am
by HansKeesom

While the rendering does mixing, I see my CPU not being used to the max. Looking in windows source control I see no obvious reason for it.
Is there a reason why this happens and better, how can I solve this. When all bottlenecks are gone the CPU should go to 100% right?


Hans Keesom

PostPosted: Fri Aug 19, 2011 2:38 pm
by HansKeesom
When I say no obvious reason, I mean that the disk I/O is remarkable low. If the pagefile would be swapping heavily I would think I would see this here. But as it looks it does not have high traffic
E: is my SSD where also the AGP temp-directory is.

PostPosted: Fri Aug 26, 2011 6:34 pm
by lumelix
Hi Hans
For max performance:
Try to stop all other unneeded tasks like onenote.exe etc.
Stop Antivirus tools (!), they sometimes check all your temp files.
Activate all buffers/cache on HD and if possible on SSD.
Check the temps of your hardware, if there is no overheating of a component,
so it will be regulated down.
Check the settings for multicore in APG
Have you XMP memory ?

PostPosted: Fri Aug 26, 2011 6:55 pm
by HansKeesom
Hi Martin,

Thanks for all the tips, I will check all these points. Meanwhile I upgraded from 6 GB to 16 GB, which means from 2,5 GB free memory to 11 GB free memory to use for APG. That is very comfortable, even when not doing gigapanos. Still, your list is a good one!!!

PostPosted: Fri Aug 26, 2011 7:12 pm
by lumelix
Hi Hans
Have you only upgraded the mem or the motherboard too ?
In some case, using the max RAM amount will degrade the RAM running only in single than in dual channel mode.
This means only 50% of the RAM speed and could be a new bottleneck ;-)

PostPosted: Fri Aug 26, 2011 7:54 pm
by HansKeesom
Hi Martin,

I upgraded after the original problem occured. It took me from 5.5 hours to 24 minutes on a certain test-set. i now am testing to see if the problem described this occurs.

Yes I know, I used to have 3 bars of 2 GB because that was supposed to allow for 3 channels of communication. Having 8 GB would not have made much different anyhow as the OS I was using at the time did not support it.
Now I have 4 bars of 4 GB and it could well be this is slower. But the advantage of having 16 GB instead of 6 GB, or better said 11 GB free instead of 2.5 is problably bigger then the lost om communication speed to the memory.

I think the fact that I went from 5.5 hours to 24 minutes shows it is a good trade-off :-)

PostPosted: Mon Aug 29, 2011 8:27 am
by AlexandreJ
A good multithreading algorithm is hard to achieve. We are working on this topic since 2 years already with Intel as partner. An engineer there validates the changes we do in the code to see if the idea / spirit of each algorithm is going to scale well or not.
This is complicated. Many of the stages are now multithreaded, but some of them are not at all.
Moreover, we have to take care of the hyperthreading fact too. It's a core, but virtual core and doesn't have the same abilities as a real physical core.
Be sure, that on the MT topic, we are really good even if the task manager isn't showing that well ( BTW : it's the worth MT benchmark, but unfortunately, it's the only visible :( ).

So, in you case, blending, we only use real core and not the virtual core because it would have slow down the process. Here's the IO dominates and a virtual core cannot do IO ( in fact it can, be it would lock the second core sharing the same die ). So we just use real cores.

PostPosted: Mon Aug 29, 2011 9:31 am
by HansKeesom
Hi Alexandre,

I know you do your upmost best.
To know that what I describe is something known and explainable is enough for me.

Actually looking at the taskmanager one can see that what you say is correct.

Thanks for the explaination.

Kind regards,


PostPosted: Mon Nov 19, 2012 1:29 pm
by HansKeesom
Hi Alexandre,

One followup question, would I gain something by turning OFF the hyperthreading? The % will go up to 25% but is that really faster then 13% when hyperthreading is on?

PostPosted: Mon Nov 19, 2012 3:47 pm
by lumelix
Hi Hans
Hyperthreading (or multithreading) is a nice thing if you would do several jobs (threads) parallel together.
But as I know APG have only one render-process, so it don't need hyperthreading.

Only if you want to render several panos at the same time, hyperthreading is helpful.

PostPosted: Mon Nov 19, 2012 4:03 pm
by HansKeesom

The question is what is best for APG, hyperthreading ON of OFF. Rendering I do while asleep so not the first thing I was thinking off, but if hyperthreading helps there, that would be good.

Re: While mixing CPU slows down

PostPosted: Wed Feb 12, 2014 7:17 pm
by HansKeesom
Correctiong, hyperthreading is not the same as multitheading. "For each processor core that is physically present, the operating system addresses two virtual or logical cores, and shares the workload between them when possible. The main function of hyper-threading is to decrease the number of dependent instructions on the pipeline."

Multithreading can be computer architecture and software
"In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by an operating system scheduler. The scheduler itself is a light-weight process. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process. Multiple threads can exist within the same process and share resources such as memory, while different processes do not share these resources. In particular, the threads of a process share the latter's instructions (its code) and its context (the values that its variables reference at any given moment).

So APG should be multithreaded but isn't always so it can run on a multicore system which might have the option to create virtual cores to run the software on.
As APG is not really that multithreaded there is little point to use hyperthreading or buy processor that specifically can use many core, virtual or real.