Message boards :
Number crunching :
Max # jobs and Max # CPUs
Message board moderation
Author | Message |
---|---|
Send message Joined: 20 Jun 14 Posts: 373 Credit: 238,712 RAC: 0 |
The Max # jobs and Max # CPUs settings in the project preferences were initially added so that we could limit the number jobs and CPUs used by a new volunteer by providing default value which could be changed later. The aim was to stop a machine maxing out on VM tasks and rendering the host unusable for anything else. The current behavior for a multi-threaded application is as follows (threads are CPUs for the VM apps): Max 1 CPU, Max 1 Job => 1 single threaded job Max 2 CPU, Max 1 Job => 2 threaded job Max 1 CPU, Max 2 Job => 1 single threaded job Max 2 CPU, Max 2 Job => 2 x 2 threaded jobs In practice Max CPUs is used to set the number of threads and hence CPUs to be used by a VM, hence Max 1 CPU, Max 2 Job => 1 single threaded job, does not function as expected. In this case it should run two single CPU jobs. As far as I understand we could remove the Max CPU setting and nthreads could be set for the app in the app_config.xml. The two reasons given for not doing this are:
|
Send message Joined: 2 May 07 Posts: 2090 Credit: 158,856,517 RAC: 126,388 |
Run native if available? is now in Atlas-Prefs. Do we need to activate it now? Is the Beta-Pref obsolet? |
Send message Joined: 20 Jun 14 Posts: 373 Credit: 238,712 RAC: 0 |
Run native if available? I haven't enabled this for ATLAS yet, am waiting for the green light. |
Send message Joined: 15 Jun 08 Posts: 2401 Credit: 225,505,811 RAC: 125,141 |
An average user would always expect both settings as independent from each other. Hence Max #CPUs should do the correct settings for all following variables - <avg_ncpus> - --nthreads - --memory_size_mb - <rsc_memory_bound> Max #tasks - should act like <project_max_concurrent> Only then a default setting via web preferences, e.g. 1:1, would make sense and a user could set higher limits without dealing with an app_config.xml. All complaints in the message board turn around the fact that Max #CPUs also limits Max#task. Far more -> it even limits the #tasks that can be downloaded. That's what nobody - especially new users - don't understand! |
Send message Joined: 27 Sep 08 Posts: 804 Credit: 650,115,693 RAC: 242,671 |
I agree with computezrmle One additional point that I have found challenging since the only option that works for me is unlimited (due to job/task limit), the amount of memory used can be tricky. With the previous config I had to script a workaround for the working set. As it is now I set the --memory_size_mb greater than the project defined numbers so no script needed but I have to take care I don't use more RAM than I actually have since BOINC doesn't actually know how much RAM is being used. I also run all my ATLAS WU in a separate instance of BOINC since unlimited for this project is 1 Job, so the setting needed for ATLAS are not compatible with settings for Theory and CMS. |
Send message Joined: 18 Dec 15 Posts: 1687 Credit: 103,092,390 RAC: 127,156 |
An average user would always expect both settings as independent from each other. ...+ 1 |
Send message Joined: 13 Jul 05 Posts: 167 Credit: 14,938,551 RAC: 191 |
If someone's going to be diving into the code: Max #CPUs should do the correct settings for all following variables...Also, "Max #CPUs" is misleadingly named since it is a specification, not a limit. e.g. my 4-core machine asks for 4-core Atlas tasks: if it was sent a 3-core one then there would have to be a slot completely wasted, and then if the project tried to send a (long-running) single-core to fill the space it would take days to untangle the mess...! (And single-threaded-only apps will just ignore that setting, whatever it's called). |
Send message Joined: 14 Jan 10 Posts: 1274 Credit: 8,480,147 RAC: 2,155 |
If someone's going to be diving into the code:Max #CPUs should do the correct settings for all following variables...Also, "Max #CPUs" is misleadingly named since it is a specification, not a limit. The server does not sent a single-, dual-, quad-, etc-core tasks. It just send a task and your preference setting decides how it will be treated on your system - how many cores the VM to create must have. And yes, you're right it's not a limit, but a spec. |
Send message Joined: 20 Jun 14 Posts: 373 Credit: 238,712 RAC: 0 |
Run native if available? It is now enabled. |
Send message Joined: 20 Jun 14 Posts: 373 Credit: 238,712 RAC: 0 |
As far as I understand the scheduler code, the issue is that the project preferences setting is limiting the ncpus and that this value is used to set the number of threads. We probably don't want to touch ncpus and just set the number of threads. Will switch over to the dev project to test out some changes.Those that want to join can see me there. |
Send message Joined: 28 Sep 04 Posts: 675 Credit: 43,539,635 RAC: 15,635 |
Something has changed now. My settings are No limit for Max# jobs and 4 for Max# CPUs and my host has now 8 Atlas and 8 Theory tasks downloaded. Three Atlas tasks are running with 4 CPUs (set by app_config.xml) + 1 Theory task (15/16 CPUs allowed for Boinc to use, 2 CPUs reserved for GPU tasks). |
Send message Joined: 2 May 07 Posts: 2090 Credit: 158,856,517 RAC: 126,388 |
Run native if available? Test-Application must be enabled. Run native if available? must be enabled - This is not translated in German-language. Got now one task in Linux VM-native. |
Send message Joined: 12 Jun 18 Posts: 126 Credit: 53,858,925 RAC: 108,253 |
Max #tasksBe even better if Max#tasks behaved liked like: <max_concurrent>and there was a setting in Preferences for each project. |
Send message Joined: 20 Jun 14 Posts: 373 Credit: 238,712 RAC: 0 |
I have updated the scheduler. I hope it is an improvement over what we have now even though there is still a small issue. For those that are interested I have opened an issue in github. |
Send message Joined: 17 Feb 17 Posts: 42 Credit: 2,589,736 RAC: 0 |
Hello, Please let me know if this is the wrong thread. I've been doing some forum searching and just want to make sure I'm understanding this correctly. I am one of those new users and am struggling to understand, but think I have it figured out. All projects, apart from Atlas, are single threaded, regardless if they run on Native for Linux or vbox for Windows. This is why max number of CPUs is offered and if it is changed, vms it will use that many cores, regardless if a task from another project was running. For instance, on the single little core 2 duo I have running on here, if there was an Asteroids at home task running, and boinc decided a native theory task should start, with max number of jobs set to 2, there would be 2 theory tasks using 0.5 CPUs (sharing one core) and asteroids would use the second if max CPUs was also set to 2. Am I understanding this correctly or does this also apply to Atlas? I have a few Haswell machines with 32 GB of ram, an older Sandy bridge i7 with 16, and an fx8350. I take it setting max number of CPU and jobs is dependent on what subprojects I'd like to run? Keep in mind these are dedicated crunchers - 3 out of the 4 are running linux but I'm unsure of how to start off and don't want to overburden myself with work or end up having failed tasks because I didn't configure something correctly. Any recommendations on a per project basis? I'm still trying to figure out the ins and outs of each - runtimes, resources, etc. i like how it's a little more involved and requires a little more work on the Linux side. I feel like I'm actually contributing to something special. thanks. |
Send message Joined: 15 Jun 08 Posts: 2401 Credit: 225,505,811 RAC: 125,141 |
Hello, Max number of CPUs only affects ATLAS since this is the only multicore app here at LHC@home. In case of ATLAS native it sets - the #CPUs so the BOINC client knows how apps from all projects interact. - the #threads the native app will start to transform EVNTS to HITS In case of ATLAS vbox (windows or linux) it sets - the #CPUs so the BOINC client knows how apps from all projects interact. - the vbox VM is set to use #CPUs - the vbox VM is configured to use more RAM if more CPUs are configured The original idea to introduce this parameter was to easily configure #CPUs and RAM for ATLAS without an app_config.xml. Now you changed from max #CPUs to max#Tasks!! For instance, on the single little core 2 duo I have running on here, if there was an Asteroids at home task running, and boinc decided a native theory task should start, with max number of jobs set to 2,... ... there would be As explained above the #CPUs setting does only affect ATLAS. Theory tasks remain singlecore, independent from the web setting. I have a few Haswell machines with 32 GB of ram, an older Sandy bridge i7 with 16, and an fx8350. I take it setting max number of CPU and jobs is dependent on what subprojects I'd like to run? Keep in mind these are dedicated crunchers - 3 out of the 4 are running linux but I'm unsure of how to start off and don't want to overburden myself with work or end up having failed tasks because I didn't configure something correctly. As a rule of thumb: ATLAS is more efficient if it uses just a few cores (<= 4). I would start with a 2-core setup (ATLAS) and would leave 2 cores free for the OS and GPU tasks. It mainly depends on your physical RAM compared to your total #cores. |
Send message Joined: 15 Nov 14 Posts: 602 Credit: 24,371,321 RAC: 0 |
Any recommendations on a per project basis? I'm still trying to figure out the ins and outs of each - runtimes, resources, etc. Since you are already running Theory OK, you have CVMFS installed properly, so try native ATLAS. And since you have 32 GB of memory, you can set Max # CPUs 1 and use some of it, as it is a little more efficient than using more cores per work unity (which is used if you want to save on memory). BUT: I have found that to run native ATLAS, you have to grant additional permissions after attaching to LHC and downloading at least one native ATLAS. Then: Your run "sudo chmod -R 777 /var/lib/boinc-client" and reboot. Then it might work. And don't even think of upgrading to BOINC 7.16.3, or native ATLAS falls apart. Everything else is pretty easy beyond that. To run CMS all you need is VirtualBox. And for SixTrack you don't even need that. |
Send message Joined: 17 Feb 17 Posts: 42 Credit: 2,589,736 RAC: 0 |
you are already running Theory OK, you have CVMFS installed properly, so try native ATLAS. So, set number of cores to 1, number of tasks to unlimited for the 32 gb machine. The core 2 duo only has 4 gb, but is also running Linux. Should that be okay with Atlas too? It seems to be crunching away at theory right now. I'll keep that command in mind when I get an Atlas task.[/quote] And don't even think of upgrading to BOINC 7.16.3, or native ATLAS falls apart. Well. I am unfortunately running Boinc 7.16.3 thanks to costamagnagianfranco/boinc. Is there a quick method to downgrade to an earlier version or am I out of luck? So to summarize: Number of CPUs only applies to atlas and I should set it to 1 (with 32 gb ram), number of tasks set to unlimited since I want all cores filled in that case. With machines with half the ram I should set an alternative profile with CPU cores set to 2 and jobs again set to unlimited. Should I specifically run Atlas tasks to start with under both since I hear multicore tasks can reek havoc on single core tasks? I do have Windows hosts, they're just finishing up on another project and then I'll start porting everything over here, though this does beg an interesting question since I can't find it in the forums. I do have a Ryzen 1800x which for some unknown reason does not have virtualization able to be selected in the bios. Does native in Linux allow one not to have that running and still get by, or does it need to be enabled even if you're not using virtual box? On a similar note, do I need to install additional packages under virtual box or is that just to be able to view the current VM status? Under Linux most of my machines are headless so this would be pointless? |
Send message Joined: 20 Nov 19 Posts: 21 Credit: 1,074,330 RAC: 0 |
...run "sudo chmod -R 777 /var/lib/boinc-client"... Friends do not let Friends chmod 777. Don't do it. It is dangerous. |
Send message Joined: 2 May 07 Posts: 2090 Credit: 158,856,517 RAC: 126,388 |
Hi Wolfman1360, you need more than 4 GByte for Atlas. Bios must be SVM or AMD-V enabled for Hardware Acceleration. You find the most answers, when you read Yeti's Checklist in the Atlas-Folder. Thank you. |
©2024 CERN