Message boards : CMS Application : How do I limit the number of concurrent CMS VM's?
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile Guy
Avatar

Send message
Joined: 9 Feb 08
Posts: 55
Credit: 1,528,489
RAC: 2,661
Message 48408 - Posted: 9 Aug 2023, 20:26:44 UTC

Hello,
How do I limit the number of concurrent CMS VM's?
I have an 8 core CPU (i4790K), but my 2TB SATA HDD struggles with more than two VM's.
I've reduced the number of cores available for BOINC but of course; that limits other projects.
Thanks.
ID: 48408 · Report as offensive     Reply Quote
captainjack

Send message
Joined: 21 Jun 10
Posts: 41
Credit: 11,832,631
RAC: 2,794
Message 48410 - Posted: 10 Aug 2023, 3:18:25 UTC

Create an app_config.xml file using these instructions https://boinc.berkeley.edu/wiki/client_configuration
ID: 48410 · Report as offensive     Reply Quote
Profile Guy
Avatar

Send message
Joined: 9 Feb 08
Posts: 55
Credit: 1,528,489
RAC: 2,661
Message 48412 - Posted: 10 Aug 2023, 6:46:40 UTC - in response to Message 48410.  

Thank you very much!
ID: 48412 · Report as offensive     Reply Quote
Profile Guy
Avatar

Send message
Joined: 9 Feb 08
Posts: 55
Credit: 1,528,489
RAC: 2,661
Message 51104 - Posted: 20 Nov 2024, 7:30:28 UTC

I have an 8 logical core CPU (i7-4790K) limited by BOINC to use just 6 of the CPUs (75%).
To limit the number of CPUs, use the BOINC Managers "Options -> Computing preferences".
It's recommended to limit the number of CPU cores used by BOINC so that essential Operating System background processes [and other programs] can run smoothly on those spare cores without interfering.

Aside: So thank you captain jack. And after some very helpful tutoring on the subject, I was able to tailor an app_config.xml file for each of my BOINC projects.

OK
Further limiting the concurrent apps run by any one project allows apps from other projects to run concurrently on the remaining CPUs as well.
Also, LHC@home has some multithreaded apps. By default, each one of those will try to use all available CPUs by itself.
So the following app_config.xml sets LHC@home up to use at most 4 of the 6 CPUs I've allowed for BOINC.
Like this:

Only 1 concurrent ATLAS task (1 Multithreaded task - Uses 4 CPUs)
or
Only 1 concurrent CMS task (1 Multithreaded task - Uses 4 CPUs)
or
Up to 4 concurrent Theory tasks. (Not Multithreaded - 1 CPU per task)

And the spare CPUs will run apps from other projects, if available.

app_config.xml
<app_config>  <!-- SuSE Linux Tumbleweed - no native apps -->

  <project_max_concurrent>4</project_max_concurrent>
  <!-- limiting the concurrent apps run by any one project allows apps from other projects to run as well -->
  <!-- as long as they have work available. Optional -->

  <app>
    <name>ATLAS</name>
    <max_concurrent>1</max_concurrent>
  </app>
  <app_version>  <!-- VM -->
    <app_name>ATLAS</app_name>
    <plan_class>vbox64_mt_mcore_atlas</plan_class>
    <avg_ncpus>4</avg_ncpus>
    <cmdline>--nthreads 4</cmdline>
  </app_version>

  <app>
    <name>CMS</name>  <!-- has VM tasks only -->
    <max_concurrent>1</max_concurrent>
  </app>
  <app_version>  <!-- VM -->
    <app_name>CMS</app_name>
    <plan_class>vbox64_mt_mcore_cms</plan_class>
    <avg_ncpus>4</avg_ncpus>
    <cmdline>--nthreads 4</cmdline>
  </app_version>

<!-- This 'app' section is superfluous because of line 3 -->
<!-- included for illustrative purposes only -->
  <app>  
    <name>Theory</name>
    <max_concurrent>4</max_concurrent>
  </app>
  <app_version>  <!-- VM -->
    <app_name>Theory</app_name>
    <plan_class>vbox64_theory</plan_class>
    <!-- nothing to do here either -->
  </app_version>

</app_config>

You may need to refer to the LHC@home Applications page if you're going to edit the app_config.xml file for yourself.
The "Version" column contains, in brackets, the "plan class" used in the app_config.xml file to identify the specific app you'll be sent automatically by BOINC depending on which OS and CPU you have.

I'm not running native apps because they take too long to run on my modest desktop PC.

Thanks to all.
ID: 51104 · Report as offensive     Reply Quote
Profile Guy
Avatar

Send message
Joined: 9 Feb 08
Posts: 55
Credit: 1,528,489
RAC: 2,661
Message 51108 - Posted: 21 Nov 2024, 13:08:27 UTC - in response to Message 51104.  

Extra app_config.xml info.

Where to put app_config.xml
It goes in its particular project folder, here:

Windows:
C:\ProgramData\BOINC\projects\<your project>\app_config.xml
Linux:
/var/lib/boinc/projects/<your project>/app_config.xml

Also -
Limit how much work you download.
It's important to note, obviously, the amount of work you choose to download should not exceed the ability of your PC to complete it in time, before its deadline.
Because if you do choose to get too many days worth of work your BOINC client (on your PC) will 'see' that it won't complete it in time. But it will try - it will "override" all your Preferences and app_config.xml settings and assign ALL(!) of your CPUs to the downloaded work units. And that clogs up your PC a bit. Slows it down. Why it lets you download too much I don't know. But that's how it works...

To manage this I've set the 'days of work' downloaded to a fractional value of 0.7 like this:

"Options -> Computing preferences..." then the Computing tab, in the General section:

Store at least [0.7] days and up to an additional [0] days of work

It's OK. It never runs out because BOINC checks about every hour or so and gets work from the project servers as often as it needs it. This way it just won't download "too much".

You may set yours differently. My modest 4GHz desktop PC has 6 of its 8 CPU cores enabled for BOINC, plus 1 GPU. And 0.7 days works well.

Instructions for writing app_config.xml files are here and, of course, further help can be gleaned if you ask on the forums.
ID: 51108 · Report as offensive     Reply Quote
Profile Guy
Avatar

Send message
Joined: 9 Feb 08
Posts: 55
Credit: 1,528,489
RAC: 2,661
Message 51227 - Posted: 30 Nov 2024, 17:47:09 UTC - in response to Message 51104.  

There is a similar post here -

More reasons to use an app_config.xml with your project.

with other reasons for using an app_config.xml described.
ID: 51227 · Report as offensive     Reply Quote

Message boards : CMS Application : How do I limit the number of concurrent CMS VM's?


©2025 CERN