Most options in the World Community Grid device profiles are self-explanatory. However, about some specific things there are repeated questions and with some, a bit of experimentation is needed to figure out what the consequences of these options are.
Here is a guide with explanations of what exactly every setting does and what works best for me.
As the settings for other BOINC projects are similar, this article might also be useful for other BOINC projects.
web-based or local preferences?
This article is specifically about the web-based preferences, that you can set on the World Community Grid website. These web-based preferences are used, when you install BOINC on a new machine. However, you can override these with local preferences on every machine by going to options -> computing preferences in the BOINC Manager. This will create a file named global_prefs_override.xml in your BOINC data directory (typically C:\ProgramData\BOINC in Windows and /var/lib/boinc-client in Linux) with the local preferences. To use the web-based preferences again, click the Use web prefs in the computing preferences or simply delete the global_prefs_override.xml.
I use the web-based preferences most of the time, which is easiest if you have multiple machines running World Community Grid. Some years ago however, when I only used BOINC on the PC I used daily, I often used the local preferences. Both works fine, but note, that there are some World Community Grid specific preferences only available in the web-based preferences. These will still remain web-based, even if you override with local settings.
default, home, school, work
A new World Community Grid account has only a default device profile at first. If you need more profiles, you can create additional profiles named home, school and work (af you really assign them to machines sitting at home, school or work is up to you and has no effect).
Machines you add will automatically be assigned to the default profile. To assign another profile to a machine, go to Settings -> Device Manager on the WCG website and click on a device name. You can then select another device profile for that machine.
Device Profile options explained
Now go to Settings -> Device Manager -> Device Profiles on the World Community Grid website and click on one of the profiles to edit it. I will go through the options step-by-step to explain them.
Using one of the pre-defined settings is a good starting point. As there is not explained what these will do exactly, I list the options of them here.
If you want to start with a Custom profile, the pre-defined settings are still useful: just choose the pre-defined setting that suits your need best and click save. Then choose the custom profile. Now the options of the pre-defined settings chosen before are still in the input fields, you can start from there and change what you want.Standard Settings
- do work while computer is in use
- do no work on graphics card if computer is in use
- not in use means 3 minutes without mouse/keyboard input
- do not do work while computer is running on batteries
- suspend work if (non-BOINC) CPU usage is above 50%
- use 100% of CPU threads but no more than 60% of processor time
- use max 50% of disk space but not more than 10 GB and leave at least 0.1 GB free
- write to disk at most every 360 seconds
- use max 50% of RAM while in use and max 75% while idle; use not more than 50% of virtual memory (swap file)
- leave applications in memory while suspended
- no restrictions on network usage
- store at least 0.4 days of work
- suspend while computer is in use
- not in use means 5 minutes without mouse/keyboard input (instead of 3 minutes)
- suspend work if (non-BOINC) CPU usage is above 25% (instead of 50%)
- use max 40% of RAM (instead of 50%) while in use and max 60% (instead of 75%) while idle; use not more than 30% (instead of 50%) of virtual memory (swap file)
- do not leave applications in memory while suspended
- use up to 100% of processor time (instead of 60%)
- do not suspend work at high (non-BOINC) CPU usage (instead of suspending above 50%)
- use max 75% of RAM (instead of 50%) while in use and max 90% (instead of 75%) while idle; use not more than 75% (instead of 50%) of virtual memory (swap file)
- stop work after computer is idle for 20 minutes
This will basically cause your computer only to work if you use it, and stop work after being idle for some time.
Custom Profile options
First little thing to mention before coming to the options: the Set as Default checkbox. If you check this, the profile you edit (default, home, school, work) will be the default profile. This does not mean something will be renamed to default or anything, but that new computers you install BOINC on will automatically use that profile, until you may change the used profile for this device manually.
You can restrict work of BOINC as well as internet access (to report completed work and download new work units) with the following two options:
- Do work only between the hours of X and Y
- Connect to the internet only between the hours of X and Y
To be honest, I have never used these two options. Maybe this would be useful, if you have a very strict usage pattern of your computer and want to restrict BOINC to only the times when you not use it. However, not allowing work while computer is in use, might be the better option to use then. Or maybe you have a server and want to disallow work at peak hours – however, suspend if processor usage is above a certain value might be the better option to use there. Whatever use-case you have for restricting BOINC to specific times, there it is.
The use no more than X% of processor time works the following: work runs for a short time, then stops for a short time, in a way that the ratio of run/(stop+run) matches the percentage you entered. Either the time work runs (at percentages below 50%) or the time work stops (at percentages above 50%) is 1 second. The other time is computed to match the right ratio. For example 10% means 1s run/9s stop, 50% means 1s/1s, 80% means 4s/1s.
I would in most cases leave that ratio at 100%. With single-core CPUs that was the only way to limit processor usage. With multi-core CPUs being the norm, limiting the number of CPU cores for computation is the better option. Note in any case, that allowing BOINC to use 100% of CPU time will not slow down your computer. BOINC runs at a very low priority, giving other programs that need computing time always priority. BOINC will only use the computing time not needed.
The standard here is, that you simply compute all sub-projects that are available on World Community Grid. How many workunits of every sub-project you receive, is up to World Community Grid. If you however only want to run specific projects, this is the option to play with. Reasons for that could be, that you want to exclude certain projects due to too high memory demands or disk usage. Or that you want to achieve a certain project badge as soon as possible. Or that you want to support specifically one project you care about the most. Note however, that World Community Grid determines itself, which sub-project gets which part if the grid’s ressources. So if I understand this correctly, by exclusively running a certain project, you will not speed up the computation of this overall, but simply cause other volunteers to receive more work units of the other projects.
The “If my computer can process work on my graphics card, then please send me work to run on my graphics card for the projects that I have selected above.” option means what it says. At the moment, no sub project of World Community Grid runs on graphics cards, so it does not matter if you check this box or not. In the past, there was one – if in the future there will be another one, you might check this box, if you also want to do work on your graphics card.
“If there is no work available for the project(s) I have selected above, please send me work from another project.” is self-explanatory as well. However, choosing the best option is not so straight-forward. If you check all sub-projects, it does obviously not matter, if you check this box. The fewer the number of projects you select however, the greater the risk the projects you selected run out of work. That would mean your computer has nothing to do once your work unit buffer is empty. To prevent this situation, checking the box is a good solution. You will then definitely receive work as long as any WCG project has some. On the other hand, if you want to specifically compute one or few projects or for several reasons (e.g. high memory demands, short deadlines) want to avoid a specific project checking the box can cause the following: Sometimes, a project has no work for a short period of time, for some projects this even happens relatively often. No problem, if your work unit buffer is still full enough. But as soon as the Boinc-Client requests new work, the buffer will be filled with unwanted work units, even if your selected projects have no work available only for a very short time.
So I would suggest the following: if you want to compute a small selection of projects only and check the work unit buffer of your computer(s) frequently enough, to notice problems before your buffer can run empty, then leave the box unchecked. If not, checking it is certainly the better option.
Checking the “Please opt me in to new projects as they become available.” option is a good idea, if you know you want to run new projects anyway. If you first want to check new projects, before you decide wether to participate in them, then leave this option unchecked. If you just want to run World Community Grid but do not want to check things from time to time, then definitely check this option.
Note that all the Available Projects options are World Community Grid specific options. You cannot override them in BOINC Manager. Even if you define local settings through that, the Available Projects options will still be used from the web-based preferences.
Do work while computer is in use means just that, while being “in use” means, that there was a mouse or keyboard input in the recent past. How long this needs to be in the past is defined by Do work only after computer is idle for x minutes. In the BOINC Manager this option is named in use means mouse/keyboard input in last x minutes, which is a much better description. What you enter here has no effect if you allow work while your computer is in use. Typically I would set Do work while computer is in use to yes. In most cases I found running BOINC while I use the computer to have no negative effects.
While the above option allows/disallows computation for CPU and GPU, you can further restrict GPU computing with the do work on my graphics card while computer is in use option. Here the standard case should be No. In many cases, computations on the GPU will make the display laggy. With a multi GPU setup of course, things are different. Note that at the moment there is no GPU project on WCG, so this is purely academic.
Do work while computer is running on batteries should be answered with no. Otherwise this would empty your battery very fast. If you have a good reason to accept that, you certainly know what you are doing.
Stop work after computer is idle for x minutes should typically be set to 0 (which means not to stop work at all after being idle). Setting it to a different value could make sense if your computer automatically enters a sleep mode or something like that if it is not used and you do not want BOINC to prevent this.
With allow research to run on my CPU you can completely stop BOINC from using your CPU, in case you only want to do GPU work.
Suspend work if CPU usage is above x% of cpu: CPU usage here means only non-BOINC CPU usage. To set this to a value other than zero (which means no restriction) is a good idea, if you limit usage of the CPU anyway because of thermal issues. In that case, also a limit here would make sense, to not max out the CPU if other processes need a meaningful part of the computing power. Entering a value here to have enough computing power if you need it is typically not needed, as BOINC will only use the computing cycles not needed by other processes. So if other processes use 100% of the CPU, BOINC throttles down to zero anyway.
On multiprocessors, at most use x processors is apparently not used by modern BOINC versions anymore. No matter what I entered here, it never had an effect.
Instead, the on multiprocessors, use x% of processors should be used. Note, that not only physical processors are meant by this, but also computing cores almost every modern processor has multiple of are meant. So if you have a hyperthreaded CPU with 4 physical cores and therefore 8 logical cores and you want to use only 5 logical cores (which in effect means, 5 workunits will run simultaniously), you should set this value to 100% / 8 * 5 = 62.5% (or slightly more – only starting at 75% 6 logical cores will be used). In most cases however, leaving this value at 100% should make sense, unless overheating issues prevent you from doing this. Especially on notebooks this can be an issue.
These options are relevant for the World Community Grid screensaver and for the “show graphics” button in the Boinc Manager. The more frames per second you allow to show here and the higher the % of CPU for rendering the graphics are allowed, the more ressources will be used by the graphics, instead for useful calculations. I therefore deactivate the Boinc screensaver and these two options become irrelevant therefore.
World Community Grid stores data like workunits and results on your disk. To prevent it from using too much of it, you can limit its usage here. Most sub-projects use only small amounts of disk space, so the options here may not be too relevant. At the moment, on all my machines less than 1 GB is used by World Community Grid. However, there where projects in the past with higher demands of disk space.
The option Write to disk at most every x seconds is more relevant. It determines, how often the current state of the computation of every work unit is saved to the disk. If you do not run your computer 24/7, you should not set this value too high, so not too much work is lost when you restart your computer. Something between 120 and 300 seconds should be a good value. If you run your PC 24/7 a higher value can be useful. First, although this factor might not be too significant, because every write to the disk slows down computation a bit and uses energy. Second, more importantly, if you use a SSD too many writes to the disk (yes, there is not a physical disk in it, but let’s call it a disk anyway) will reduce the life of it. I set this option to 1200 seconds on all my 24/7 crunchers. I even ran them at 3600 seconds without that causing any problems.
Sometimes workunits will be suspended to proceed with another workunit first. Either by the user himself, or because BOINC decides to do this for various reasons (for example to meet the deadline of urgent workunits). If this happens, you can decide if you want to Leave applications in memory while suspended. If you do, the workunit can proceed at exactly the point where it stopped later, but of course memory demands will be higher. If you choose no, the workunit will later return at the point where it was last saved to the disk and some work will be lost (how much depends on the corresponding option in the disk usage settings above). I would therefore set this option to yes, unless you are really short on memory.
The other options here are useful to limit the amount of memory used by BOINC. On a dedicated cruncher, I would set this to a high value, e.g. 90%. On a computer you do also other tasks on, a more coservative value might be appropriate.
Restricting Network Usage is typically not needed. Just leave these options as they are. Should any projects download or upload large amounts of data (which is currently not the case), restricting up- and download rate can be useful to prevent a slowdown of your internet connection.
Workunit Cache Settings
The names of the options here are a bit misleading.
Connect to network about every x days does not what it says. In this option the minimum desired work buffer is determined. So if the work buffer falls below this limit, Boinc will connect to the server and try to download new work. This option is named Store at least x days of work in the Boinc Manager, which describes much better what it does.
Cache x extra days of work does the following: if new work is downloaded, the buffer is not only filled to the level determined in the first option (described above), but some extra work is downloaded. This way, the buffer is not only filled to the desired minimum, but to a higher level. That way Boinc does not need to connect to the server too often, but only after the number of days you specified here. Or one could say, the second option does what the first option says it does but does not…
I have often seen the tendency to set these two options too high, because of the fear to run out of work if the server is down or has no work available. This happens not very often – a work buffer of one day or even less and a bit of extra work to not connect to the server too often is normally sufficient. If you set the buffer too high, you risk to not finish work in time, especially if you do not run your computer 24/7.
Until recently, it was only possible to limit the number of work units of very ressource hungry projects here (in fact, limiting The Clean Energy Project Phase 2, which is already completed, was the only option). After some people wished to have this feature for other projects, this option was added.
Keep in mind, that limiting the number of workunits of one project through this option, does not only limit the number of units of a project that are computed simultaniousy (this can be achieved by editing your app_config.xml), but limits the number of units you have in your complete work unit buffer on one computer. So if you set a small number here, this will cause the percentage of work done of this specific project to be very small, because most of the buffer will be filled with other projects.
In most cases you should leave these options at unlimited. I can think of two cases, where a limit could make sense.
This first is, if you limit the number of workunits run simultaniously through app_config.xml. This makes sense for projects like Microbiome Immunity Project, which slow down significantly due to high L3 cache demands, if too many units of it are run at the same time. Unfortunately, limiting the number of units run at the same time of one project can cause the work buffer to run full of these units, which then causes your other threads to run idle, because you have no other work. To prevent this, additionally limiting the number of units you can have of this project makes sense (higher than what you specified in your app_config.xml, but low enough that it cannot fill up your work buffer).
The second case is, if you want to have control over what percentage of your ressources you dedicate to which project. For example, if you limit project A to 30 units and project B to 30 units, you will split your computing time approximately 50/50 among A and B, as long as the average computing time of A and B workunits is comparable. If not, you need to adjust the project limits accordingly.
Note that the Project Limits options are World Community Grid specific options. You cannot override them in BOINC Manager. Even if you define local settings through that, the Project Limits options will still be used from the web-based preferences.
Cross Project Settings
The cross project settings are only relevant if you run other BOINC projects besides World Community Grid.
The Project Weight determines which part of your computing time should be dedicated to World Community Grid. So if you enter ‘100’ here and ‘200’ in the settings of another project, World Community Grid will use 1/3 of the ressources.
The Switch between applications every x minutes should be set to a value not too small.
Additions or questions?
If you still have questions about what settings you should use, please post a comment! Also, if you have experience with that matter and found some of my explanations to be misleading, incomplete or even incorrect, please let me know!