Boinc overestimating time for WU

Message boards : BOINC client : Boinc overestimating time for WU
Message board moderation

To post messages, you must log in.

AuthorMessage
Peter Hucker
Avatar

Send message
Joined: 6 Oct 06
Posts: 94
United Kingdom
Message 86304 - Posted: 24 May 2018, 13:30:25 UTC
Last modified: 24 May 2018, 13:32:57 UTC

Recently (the last few days) I've noticed Boinc insisting my AMD GPU will take about 40-50 minutes to complete an Einstein WU. It actually takes 8-9 minutes. Despite completing one every 8-9 minutes, it refuses to lower the estimated time for future similar WUs in the cache.

Two things have changed recently that may be the cause:
1) New version of Boinc installed.
2) I persuaded the built in Intel graphics to also run Einstein (these are estimated correctly at 15 minutes). I wasn't doing this before as my motherboard refused to run discrete and builtin graphics simultaneously, but a new driver fixed it.

I also have a Nvidia card running SETI, but that's been there for a year without causing this problem.
ID: 86304 · Report as offensive
Richard Haselgrove
Volunteer moderator
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 3270
United Kingdom
Message 86305 - Posted: 24 May 2018, 14:08:57 UTC
Last modified: 24 May 2018, 14:26:37 UTC

I suspect that the main problem may be caused by running two different Einstein applications on the same machine.

That needs a history lesson. The very first versions of BOINC only ran CPU applications, and most projects only had one type of application. The BOINC client on your machine kept track of the real-world speed of those single-application projects by means of a single (one per project) value called 'DCF', or Duration Correction Factor. Then GPUs came along, and multiple-application projects, and it all fell apart - the single DCF value couldn't adjust estimates for two different applications simultaneously.

Instead, as part of the CreditNew release in 2010, DCF was replaced by APR (Average Processing Rate) tracked on the server, which can adjust for an arbitrary number of applications and devices at the same time.

The Einstein project - specifically - didn't accept the CreditNew design, and so didn't adopt the integrated Runtime Estimation tools either, and never developed their own replacement.

If you look at the Project properties for the Einstein project in BOINC Manager, you'll probably see a line like

Duration correction factor 0.5865
(that's my intel_gpu running Einstein on this machine). SETI and every other project will either hide DCF because it's redundant, or show exactly 1.0000 as the value. You'll probably be able to see DCF dropping every time the AMD finishes a task, and bobbing back up again every time the iGPU finishes one.

The only workrounds I can think of for this are:

1) run different projects on the two different kinds of GPU (and the CPU, for that matter)
2) wrap the current Einstein applications up in an app_info.xml file (see Anonymous platform), and declare your own speed rating (<flops> value) for each app. But that's tricky.

Apart from that, the only true solution involves work by the Einstein developers. A lot of work.

Edit - also read Gary Roberts' comment recently at Einstein.
ID: 86305 · Report as offensive
Peter Hucker
Avatar

Send message
Joined: 6 Oct 06
Posts: 94
United Kingdom
Message 86306 - Posted: 24 May 2018, 16:13:22 UTC - in response to Message 86305.  

Ok I'll just leave it. It doesn't really matter too much, it's downloading 2 days work and thinking it'll take 10 days. Once it gets down to what it thinks is 2 days it'll behave and use the other projects according to my weights. At the moment it's panicking as it thinks it has 10 days of work to do in 10 days, when actually it's 2 days of work in 10 days. I'd rather not change what projects run where (I've picked my favourites that can run on each type of chip), or bother messing around with config files.
ID: 86306 · Report as offensive
mmonnin

Send message
Joined: 1 Jul 16
Posts: 112
United States
Message 86415 - Posted: 1 Jun 2018, 20:03:58 UTC

This is one reason why I like to run CPU apps in one client and GPU apps in another client. Even more so from the same project. During competitions is makes bunkering one type of app/project easier.
ID: 86415 · Report as offensive
Peter Hucker
Avatar

Send message
Joined: 6 Oct 06
Posts: 94
United Kingdom
Message 86417 - Posted: 1 Jun 2018, 20:33:48 UTC - in response to Message 86415.  

What do you mean "in another client"? Are you somehow running two instances of the Boinc manager?
ID: 86417 · Report as offensive
Richard Haselgrove
Volunteer moderator
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 3270
United Kingdom
Message 86418 - Posted: 1 Jun 2018, 21:57:27 UTC - in response to Message 86417.  

What do you mean "in another client"? Are you somehow running two instances of the Boinc manager?
No, he said 'client' and he meant client - they're different programs.

How you manage them is a separate - and potentially difficult - question.
ID: 86418 · Report as offensive
Peter Hucker
Avatar

Send message
Joined: 6 Oct 06
Posts: 94
United Kingdom
Message 86419 - Posted: 1 Jun 2018, 22:29:42 UTC - in response to Message 86418.  

I guess I meant Boinc client. I run two things, the boinc thingy (service?) that schedules things (I don't know what you call that as I don't use Boinc directly) and Boinctasks by Efmer, as the interface is way better than Boinc and lets me control many computers on one screen. I wasn't aware you could run two of the lower down service thing on one machine, and never even thought of it, surely it would just complicate matters if one didn't know what the other was doing on the same processors/GPUs? If one controls the GPUs, how does the other one know to release a core to assist with a GPU task?
ID: 86419 · Report as offensive
mmonnin

Send message
Joined: 1 Jul 16
Posts: 112
United States
Message 86482 - Posted: 7 Jun 2018, 14:54:07 UTC
Last modified: 7 Jun 2018, 14:55:57 UTC

Well since you mentioned BOINCTasks, thats three things. BOINC Client and Manager plus 3rd part software BOINCTasks. The client runs in the background and has no GUI, the manager is the user interface that shows tasks, adds projects etc. You can run more than one client and BOINCTasks can monitor more than 1 client per PC by using the gui_rpc_port #.

I manage the utilization of CPU threads (with Process Lasso)for GPU tasks since windows is pretty much retarded when trying to do so. I also use app_config files when have been pointed out to you many times so a CPU core isn't wasted on a GPU task that doesn't need it.

This allows for more control of my systems. E@H tasks have their own separate ETAs since BOINC merges CPU and GPU run times together.
Bunkering during competitions is easier since it's typically GPU or CPU only or I only want to run GPU tasks. Can also get more tasks this way.
Can run more NCI Goofy apps w/o using VMs.

I made a guide awhile back, its not hard. BOINCTasks developer actually referenced it for his website.
ID: 86482 · Report as offensive

Message boards : BOINC client : Boinc overestimating time for WU

Copyright © 2019 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.