Windows Audio processing,Task scheduler, priotize foreground or background tasks

Started by ranko, October 13, 2019, 05:58:52 AM

Previous topic - Next topic

ranko

In recording forums people are discussing / struggeling whether the Windows system setting
to priotize background tasks has still any benefit for audio processing.
In former times (maybe because of weaker PCs) it seemed to be required as one of many tasks
to fine tune Windows for audio processing.
Some vendors of recording interfaces still recommend it and I also proactively use it.

But users in recording forums have doubts, whether its still useful and do not set this option anymore.
We all are struggeling now whether this is the right thing to do.
We are asking ourselves, in what regards priotized background processes have any benefit to audio processing i.e. with a DAW like Cubase.

I think it would be a good advantage for you - in this otherwise empty subforum - to give us some insights
and then to explain how Process Lasso fits into this picture.

Some general thoughts about the Workload when processing audio..
When working with DAW (Digital Audio Workstations), then there are several aspects important:
- Quality of the ASIO driver which gives direct access to the Audio HW bypassing the Windows Sound System
- At times high CPU / Memory utilization and high I/O depending on the project

Even higher load depending on how the application is being used or what the requirements are
If you only to record tracks, then you do not need low latency between the audio interface and the PC and can use big ASIO buffer sizes,
this reduces the CPU load and also ensures, that even under load audio loss is not so much likely.
But if you play i.e. a virtual instrument as drummer or guitarist, then the RTL (Round Trip Latency) between audio interface and PC needs to
be as low as possible. To achieve this you need much lower ASIO buffer sizes, which increases the CPU load and also interrupt load.

Things become even more nasty if the stress of the system is increased by certain Project / DAW settings
- higher sample rates up to 192 kHz (more data to be processed in shorter time)
- higher data resulution of the DAWs digital mixer from 32 to 64-bit

I read already some articels how the windows process scheduler works (roughly) and that Foreground processes have
higher Quantum Values compared to Background processes and that on server (maybe also Windows Server) the
Quantum is higher compared to a workstation OS.

Questions to you:
1) Do you perhaps know what the priotizing of background processes in Windows actually does ?
2) In what regards are these "background processes" related to Audio processing with a DAW like Cubase ?
    Do also drivers get i.e. higher quantum values to get better chances to get the I/O work done (disk I/O, USB I/O, ..?)
3) To sum up, do you think its still beneficial to priotize background processes for audio to proactively prevent audio loss ?
4) How does a program like Process Lasso impact the process scheduler ?
    - Do you change i.e. Quantum values and alike ?
    - Do some of Process Lassos settings / optimizations interfere or overwrite settings, that are being done by priotizing background tasks ?
5)  Which features of Process Lasso should be enabled for audio processing, which should perhaps be avoided ?

I personally think that the energy profile "Bitsums Highest Performance" profile is beneficial and it also deactivated CPU core parking.
I do not know exactly, whether ProBalance and SmartTrims should be better enabled or disabled for audio processing.

Would be very kind if you could give me or people doing recording some insights and I would be more than happy
to summazize on audio forums and where the benefits are in additionally using Prozess Lasso for DAW/audio work.

Maybe leave out too special features like process pinning and alike, I think these are features which are nice but
require a system specialist who is able to fine tune and measure whether the changes have a good or bad impact in Application performance
compared to simply enabling / disabling certain features and maybe change a parameter or two.
Xeon E5-1680v4 | Supermicro X10SRi-F | 64GB DDR4 ECC | MSI RTX4070 Ventus | X710-DA2 | Win10 Pro 22H2

edkiefer

Hi ranko

To start off have you read https://docs.google.com/document/d/1bR4MvlWZ5210mSsiWziqTcPku5Q1_Q34B9WyoouZ_gs/edit#

Not sure about your audio workflow and use, but see if that answers some of your questions.
Bitsum QA Engineer

ranko

Thanks, I read it, up to that level I am familiar with your product.

I try to rephrase to bring my question more to the point:

1. what happens inside of Windows when I choose the setting to optimize Windows for background tasks
    its not documented, I hope that you have that much insight, when programming such a tool as Process Lasso

2. whether its still applicable to to priotize background services, when working in the area of Music Production (Mixing, Mastering) and why.
    Some people think/argue that modern CPUs, SSDs are so powerful, that the root cause for this setting potentially does not exist anymore.

3. whether the windows settings, to optimize windows for background tasks, are being changed further by Process Lasso.

Many thanks
Xeon E5-1680v4 | Supermicro X10SRi-F | 64GB DDR4 ECC | MSI RTX4070 Ventus | X710-DA2 | Win10 Pro 22H2

edkiefer

Quote from: ranko on October 13, 2019, 10:17:59 AM
Thanks, I read it, up to that level I am familiar with your product.

I try to rephrase to bring my question more to the point:

1. what happens inside of Windows when I choose the setting to optimize Windows for background tasks
    its not documented, I hope that you have that much insight, when programming such a tool as Process Lasso

2. whether its still applicable to to priotize background services, when working in the area of Music Production (Mixing, Mastering) and why.
    Some people think/argue that modern CPUs, SSDs are so powerful, that the root cause for this setting potentially does not exist anymore.

3. whether the windows settings, to optimize windows for background tasks, are being changed further by Process Lasso.

Many thanks
Ok, Are you running Windows server editions or work-station ones?
The server version are prioritized for background processes and the standard workstation is for foreground processes. The Windows scheduler does these adjustments.
I don't have personal experience with high-end audio stuff but my understanding is to use server versions or set to background processes in windows settings.

Here link about this part of OS.
https://www.thewindowsclub.com/processor-scheduling-in-windows-7-8

More in-depth
http://recoverymonkey.org/2007/08/17/processor-scheduling-and-quanta-in-windows-and-a-bit-about-unixlinux/


What I would try is setting windows to prioritize background and running PL with default values and then exclude the audio processes that you work with from Probalance.
That is under advance settings in PL options.
See how that works and if needed you could also raise one or two of the audio workload processes CPU priority but I would go slow and even see if it is needed.

As for windows background services, if you mean the setting in Probalance advanced options ("exclude system services from restraint"), I would leave it checked but again you could experiment with this too. It shouldn't affect, windows processes like indexing and other maintenance processes "should" only kick in when the system is idling.
This doesn't always happen so need testing.

Overall I can't give exact settings cause there are too many factors and variables, I can only give a general guideline.
On
"3. whether the windows settings, to optimize windows for background tasks, are being changed further by Process Lasso."
Probalance alters the CPU priority when the CPU% load of a process goes above the specific values set in settings.

https://bitsum.com/how-probalance-works/

By default, this is done to background processes, so a normal process ould be lowered to below normal until the load lowers. This is why in this particular case you want to exclude your audio workload processes.
This way any other background will be restraint so your workload processes are less affected by the load.

Also think of the CPU priority settings (idle, below normal, normal, above normal, etc) as a pie chart so the higher priority values will give the processes more, a larger slice of the CPU pie. That is a crude way to visualize it.

Hope that helps
Ed
Bitsum QA Engineer

Jeremy Collake

Here is my 2 cents:

#1 - See Ed's links.

#2 - It probably doesn't matter for most people, but it's hard to say with certainty (as Ed said). Contention for the CPU can occur easily and interrupt real-time tasks like audio processing and playback. That said, it's then hard to say which setting is most often effective at limiting the effects of contention. There are a lot of user, device and application factors. If it were me, I'd just leave it alone, defaulting to foreground for Workstations and background for Servers.

#3 - These CPU scheduler settings aren't being changed by Process Lasso.

Lastly, you asked what makes for a 'background' process. It is everything BUT the window of the application you are actively using (has keyboard/mouse focus). That is called the foreground process.

Ed gave good general guidance.
Software Engineer. Bitsum LLC.

ranko

Hi,

I am talking about Windows 7 / 10 Professional, this setting here (sorry only German version here, but I think you know what I mean when you see it).

I need to look at the links at another day, already got late ... many thanks for your time and providing the links.

Xeon E5-1680v4 | Supermicro X10SRi-F | 64GB DDR4 ECC | MSI RTX4070 Ventus | X710-DA2 | Win10 Pro 22H2

Jeremy Collake

Yes, that is what we are also talking about.

There is no general guidance as to which setting is better for audio tasks. I would leave it alone.

Background programs are simply those that don't have the keyboard and mouse focus. When 'programs' is prioritized, the application that has the keyboard and mouse focus gets more CPU time slices.

Process Lasso does not change this setting.

Software Engineer. Bitsum LLC.

edkiefer

Quote from: ranko on October 15, 2019, 01:57:05 PM
Hi,

I am talking about Windows 7 / 10 Professional, this setting here (sorry only German version here, but I think you know what I mean when you see it).

I need to look at the links at another day, already got late ... many thanks for your time and providing the links.


When you have time to read the first two links I posted above, it pertains to those windows settings.
Bitsum QA Engineer

ranko

Hi,

the two links were awesome ;) Found some time and wrote a blog article and gave Bitsum / you credits for giving me the missing information.

Many thanks for the information !! ;)

https://www.tonstudio-forum.de/blog/index.php/Entry/92-Windows-Optimale-Leistung-anpassen-f%C3%BCr-Hintergrunddienste-weiterhin-erforderlich/
Xeon E5-1680v4 | Supermicro X10SRi-F | 64GB DDR4 ECC | MSI RTX4070 Ventus | X710-DA2 | Win10 Pro 22H2

Jeremy Collake

Great!

BTW, Process Lasso has a tool to allow you to adjust these same settings. It is called the Tweak Scheduler. You can get to it via 'Tools / Tweak Windows NT scheduler parameters'. There is no particular advantage to using it over the Windows control panel settings, but it is a little more detailed (or confusing).

Software Engineer. Bitsum LLC.

ranko

Great and I understand it after having read the information provided by the two links.
Definitivey better to have this all in one place.
On the other hand, once you know it, then from my understanding priotizing for background tasks should give most advantages.
And as has been mentioned, i/o related tasks are priotized anyway as low level routines run with a higher priority.
This is only about time slizes ... and the CPU can work more efficient to get something done before the next context switch happens.
Xeon E5-1680v4 | Supermicro X10SRi-F | 64GB DDR4 ECC | MSI RTX4070 Ventus | X710-DA2 | Win10 Pro 22H2