Download specific number of CPU and GPU tasks.

ku4eto
ku4eto
Joined: 29 Oct 16
Posts: 25
Credit: 152116
RAC: 0
Topic 202497

Hello, crunching from few days here.

My rig uses a 960T thats unlocked to 1605T, but it has issues with the FPU of the 5th and 6th core under high-loads (more than 66%). So, i am only able to run maximum 1 Gamma-Ray pulsar Binary search (FGRRPSSE) and playing in the meantime. The other issue is, that completing one of this tasks, takes around 8 hours, and i am crunching for about 3 hours per day.

I need to know, if its possible to set the BOINC manager to download (keep) maximum 2 tasks of that kind, and then around 7-8 of the GPU ones - Binary Radio Pulsar Search (BRP4G-opencl-ati). They take around 30-40 minutes for one (running 1 at time when playing).

Holmis
Joined: 4 Jan 05
Posts: 1118
Credit: 1055935564
RAC: 0

There is no way to tell Boinc

Hi and welcome to Einstein@home!

Sorry, but there's no way to tell Boinc to download a specific amount of tasks of a given type, you can only tell it to keep X worth of days of work in cache.

You can use the computing preferences to limit Boinc's CPU usage by lowering the "Use at most: XX% of the processors" but it only controls how many tasks Boinc starts, to assign them to specific processors/cores you'll have to use a third party program such as "Process Lasso" or equivalent.

One can also use a app_config.xml to control the max_concurrent number of tasks of a given type, but again it only controls how many tasks are started by Boinc and not which processors/cores run them.

ku4eto
ku4eto
Joined: 29 Oct 16
Posts: 25
Credit: 152116
RAC: 0

I am using 0.1 days AT LEAST

I am using 0.1 days AT LEAST work, and 0.25 additional work. But this work is far more than that for the CPU. IF i reduce the CPU usage that it can use a CPU task, it should reduce the amount of CPU tasks being downloaded, but will it affect the amount of CPU that the GPU tasks need?

Holmis
Joined: 4 Jan 05
Posts: 1118
Credit: 1055935564
RAC: 0

No it will not effect the

No it will not effect the amount of CPU support that the GPU apps need, but that support should not be more than a few percent of a CPU core. If you want to reduce the resources used by Boinc so that it doesn't interfere with gaming then I would recommend stopping Boinc while running a resource demanding game, that's what I do.

That's a process that can be automated with the use of a cc_config.xml file and the options <exclusive_app> and <exclusive_gpu_app>, read the documentation here if your interested.

mmonnin
mmonnin
Joined: 29 May 16
Posts: 291
Credit: 3409536540
RAC: 3343753

To limit the CPU cores that

To limit the CPU cores that are actually used I would recommend a program called Process Lasso that can fix the CPU affinity for any executable file.

ku4eto
ku4eto
Joined: 29 Oct 16
Posts: 25
Credit: 152116
RAC: 0

Humm, i do not really need to

Humm, i do not really need to fiddle with the process affinity, having the load spread is actually better for me,i play WarThunder while crunching and on some maps with lots of players i need that CPU chug evenly spread as well.

Probably i am bad at explaining what i want, so i will try again:

Is it possible to download at max 5 CPU tasks, but have 10-15 GPU tasks downloaded? Currently, i am receiving the same number of CPU and GPU tasks, but the all of the GPU tasks are taking me the same time as a single CPU task - 8/8.

Holmis
Joined: 4 Jan 05
Posts: 1118
Credit: 1055935564
RAC: 0

ku4eto wrote:Is it possible

ku4eto wrote:
Is it possible to download at max 5 CPU tasks, but have 10-15 GPU tasks downloaded? Currently, i am receiving the same number of CPU and GPU tasks, but the all of the GPU tasks are taking me the same time as a single CPU task - 8/8.

As I wrote in my first reply, you can not specify an exact number of tasks to download for any given resource, you can only tell Boinc to keep X days worth of work in cache. If you want even less work in your cache you could try even smaller cache settings, eg 0.01. As long as you return the work before the deadline there's nothing to worry about. In time Boinc should learn how long you let it run work each day and adjust the amount of work it downloads according to that.

A CPU task will always run at 100% of the core the OS assigns it to unless a process with higher priority needs to run. Boinc starts all CPU tasks with the lowest priority so they should give way for your gaming. CPU tasks here at Einstein are single threaded so only run on one CPU core at a time, although the OS can switch the task to another core at any given time.
GPU tasks on the other hand works differently and have a higher chance of interfering with gaming as they tie up the GPU when running, I tend to think of the GPU as a single CPU core without task priorities when it comes to scheduling work to it. Work gets added to a processing queue and processed in the order it got added.
I always suspend GPU work while gaming, partly to free up processing power but also to free up video RAM.

You could use a third party program to ensure that no tasks are assigned to the problematic cores as that would probably result in invalid tasks.

ku4eto
ku4eto
Joined: 29 Oct 16
Posts: 25
Credit: 152116
RAC: 0

Okay, that answers my

Okay, that answers my questions, thanks a lot!

Gary Roberts
Gary Roberts
Moderator
Joined: 9 Feb 05
Posts: 5872
Credit: 117671255990
RAC: 35150906

ku4eto wrote:Is it possible

ku4eto wrote:
Is it possible to download at max 5 CPU tasks, but have 10-15 GPU tasks downloaded?

Yes.  The issue you are having is probably at least threefold in nature.

Firstly, BOINC knows your computer has 6 cores and, unless you tell it otherwise, it will download 6 times the amount that just one core can cope with.  You need to advise BOINC to use just 16% of the available cores if you want just a single CPU task to be crunching at any particular time.  This has absolutely no adverse effect on GPU crunching.

Secondly, BOINC starts off assuming that it will have 24/7 access to your computer and so will always tend to overfetch initially if this is not the case, until it learns otherwise.  BOINC will take a bit of time to fully and properly adjust.  Because you will only be using 1/6 of the cores for 3/24 of a day, you could anticipate having 48 times the number of tasks that you really want to have, before BOINC learns of your usage pattern.  Even when BOINC figures out the 3hrs/day bit, you'd still be getting around 6 times too many tasks, if you don't set the 16% value.

Thirdly, tasks are delivered to your host with an estimate of the crunch time.  BOINC will try to refine this estimate over time.  If you have only one type of task being crunched, the 'refining' mechanism (called duration correction factor - DCF) will work quite well.  With CPU tasks and GPU tasks, you have a minimum of at least two task types and unless the estimates for each are exactly the same amount wrong (and wrong in the same direction), the DCF will tend to oscillate in different directions depending on which types (and how many) of these tasks are being completed.  This can lead to some fluctuation in the amount of work you have on board at any one time.

Until BOINC adjusts (as best it can), just keep the 'store at least' setting at say 0.1 days (2.4 hours) so that even a 48x overfetch initially would still only be 5 days work, well withing the 14 day deadline.  Unless you really want your work cache to cycle between a 'low water mark' (the store at least setting) and a 'high water mark' (the first setting plus the additional days setting), you are best to set a very low value (0.01) or even zero for the second setting.  That way BOINC will take 'small sips' only when needed to maintain a constant minimum amount.  Ultimately, BOINC will learn that a 'store at least' setting of 1.0 days will really mean 'store at least 3hrs of work' if you let crunching happen for just 3hrs per day.  So just leave the setting at 0.1 days until you work through the excess and increase it as required to get the number of tasks you are comfortable with.

ku4eto wrote:
Currently, i am receiving the same number of CPU and GPU tasks, but the all of the GPU tasks are taking me the same time as a single CPU task - 8/8.

If you tell BOINC to use 16% of your CPU cores, this should cut the CPU tasks received by a factor of 6.  The GPU tasks (BRP4G) are using the standard app for AMD GPUs - Binary Radio Pulsar Search (Arecibo, GPU) v1.39 (BRP4G-opencl-ati) windows_x86_64.  There is a beta test app - Binary Radio Pulsar Search (Arecibo, GPU) v1.52 (BRP4G-Beta-opencl-ati) windows_x86_64 which should be somewhat faster than the standard app, if you're interested.  To use the test app you just need to 'allow' test apps to be used - a setting in your project preferences.  I don't use Windows so I don't know exactly how much better this particular test app is.  It's not really a test app - it's pretty well fully tested by now.  There shouldn't be any downside to using it.  The only thing to be aware of is that by using this setting, you will get test apps (if they exist) for any of the various science runs you have selected to receive work from and not just BRP4G.

One final point.  If you're interested in maximising your GPU task output for the time you are actually crunching, you could consider running more than 1 GPU task concurrently.  It's relatively simple and the increase in output is significant.  If you would like to try this, I'd be happy to provide details.

 

 

Cheers,
Gary.

ku4eto
ku4eto
Joined: 29 Oct 16
Posts: 25
Credit: 152116
RAC: 0

Loah, too much information! I

Loah, too much information! I thought that Use CPU was for how much the Task can hit the CPU in terms of total load (1 task taking up between 1-100% of total CPU (inlc. cores)). I will leave it at 33% i guess, it should be enough. Thanks again for the help!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.