Matching number of concurrent processes to number of actual cores.

Message boards : Questions and problems : Matching number of concurrent processes to number of actual cores.
Message board moderation

To post messages, you must log in.

AuthorMessage
elias023

Send message
Joined: 22 Jan 17
Posts: 1
Sweden
Message 75443 - Posted: 22 Jan 2017, 18:33:31 UTC

On one of my computer, there is hyper-threading enabled. Is there a way to make Boinc run only one process per actual core?
ID: 75443 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15480
Netherlands
Message 75446 - Posted: 22 Jan 2017, 20:42:17 UTC - in response to Message 75443.  

By default BOINC will use all cores that you allow through preferences and run one task per core, if the application is single threaded and not multi threaded.

If you only want to use the physical cores only you'll have to disable hyperthreading through the BIOS/UEFI. BOINC has no way of knowing which core is physical or virtual.
ID: 75446 · Report as offensive
HAL9000
Help desk expert
Avatar

Send message
Joined: 13 Jun 14
Posts: 81
United States
Message 75590 - Posted: 31 Jan 2017, 23:08:37 UTC

In Windows this is fairly easy to do without disabling HT for the CPU by using the start /AFFINITY command line.

For example if you has an i3 that was 2c/4t You could use this command line to have only the CPU cores used:
start /affinity 5 notepad.exe

For BOINC you would also need to modify the number of CPUs it uses.
By either setting your BOINC Computing Prefs to "Use at most X% of the CPUs " to 50% or by using <ncpus>x</ncpus> in your cc_config.xml.

When I was testing this with my i7-860 my preference was to set <ncpus> to 4 and then start BOINC with an affinity mask of 55.
ID: 75590 · Report as offensive

Message boards : Questions and problems : Matching number of concurrent processes to number of actual cores.

Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.