boinccmd values not matching up with GUI

Message boards : Questions and problems : boinccmd values not matching up with GUI
Message board moderation

To post messages, you must log in.

AuthorMessage
l008com

Send message
Joined: 22 Mar 09
Posts: 51
United States
Message 100926 - Posted: 3 Oct 2020, 7:20:06 UTC

I'm ultimately trying to run the
boinccmd --get_tasks
command and parse that output into an sql table. It's going well except for one problem....

In the `boinccmd` results, the value for "Estimated CPU time remaining" corresponds exactly with the GUI's task column for "Remaining (estimated)". As you'd expect.

However the `boinccmd` value for "current CPU time" does not correspond to the GUI's task column for "Elapsed".
it is roughly about 75% smaller than that. What is the deal here? How can I get the elapsed time a work unit has been running via `boinccmd`?
ID: 100926 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5095
United Kingdom
Message 100927 - Posted: 3 Oct 2020, 8:02:06 UTC - in response to Message 100926.  

However the `boinccmd` value for "current CPU time" does not correspond to the GUI's task column for "Elapsed".
it is roughly about 75% smaller than that. What is the deal here? How can I get the elapsed time a work unit has been running via `boinccmd`?
They're two different measurements. 'Elapsed' time means the time the task has been running, as shown by a wall-clock. 'CPU time' means the time the CPU - specifically - has been active during that time.

There are many reasons why the CPU may be active for less than 100% of the run time. The commonest is if the task does most of its scientific work on a GPU: in that case, the CPU is only needed for management and to supply data. That needn't take long. Other reasons might include thermal throttling (the CPU is paused periodically to cool down), or an over-committed computer (the task is swapped out of the CPU for a few milliseconds so something more urgent can run instead).

BOINC originally worked on CPUs only, and CPU time was the only value measured. Elapsed time became more important when GPUs were introduced, about 10 years ago. The client still records both values, but CPU time was removed from the Manager display, and elapsed time was never added to the boinccmd tool. We should tidy that up some day.
ID: 100927 · Report as offensive
ProfileDave
Help desk expert

Send message
Joined: 28 Jun 10
Posts: 2590
United Kingdom
Message 100928 - Posted: 3 Oct 2020, 8:04:08 UTC - in response to Message 100926.  

I'm ultimately trying to run the
boinccmd --get_tasks
command and parse that output into an sql table. It's going well except for one problem....

In the `boinccmd` results, the value for "Estimated CPU time remaining" corresponds exactly with the GUI's task column for "Remaining (estimated)". As you'd expect.

However the `boinccmd` value for "current CPU time" does not correspond to the GUI's task column for "Elapsed".
it is roughly about 75% smaller than that. What is the deal here? How can I get the elapsed time a work unit has been running via `boinccmd`?


Probably showing different things. This is from one of my completed CPDN tasks.

Run time 29 days 10 hours 50 min 37 sec
CPU time 29 days 9 hours 48 min 18 sec

The GUI gives run time rather than CPU time I would guess.
ID: 100928 · Report as offensive
l008com

Send message
Joined: 22 Mar 09
Posts: 51
United States
Message 100929 - Posted: 3 Oct 2020, 9:20:19 UTC - in response to Message 100928.  

So how do I get the runtime?
ID: 100929 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5095
United Kingdom
Message 100930 - Posted: 3 Oct 2020, 9:29:12 UTC - in response to Message 100929.  

The boinccmd code is pretty straightforward. I'll see if I can do one of my 'copy and tweak' pull requests over the weekend.
ID: 100930 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5095
United Kingdom
Message 100932 - Posted: 3 Oct 2020, 12:09:50 UTC

Actually, looking at the output from --get_tasks, I think it's been done already.

For a completed task.
name: wu_sf7_DS-16x8_Grp265895of655360_0
WU name: wu_sf7_DS-16x8_Grp265895of655360
project URL: http://numberfields.asu.edu/NumberFields/
received: Sat Oct 03 05:47:08 2020
report deadline: Fri Oct 09 05:46:57 2020
ready to report: yes
state: uploaded
scheduler state: uninitialized
active_task_state: UNINITIALIZED
app version num: 300
resources: 1 CPU
final CPU time: 2694.590000
final elapsed time: 2766.865900
exit_status: 0
signal: 0
For a running task,
name: wu_sf7_DS-16x8_Grp266373of655360_0
WU name: wu_sf7_DS-16x8_Grp266373of655360
project URL: http://numberfields.asu.edu/NumberFields/
received: Sat Oct 03 05:47:08 2020
report deadline: Fri Oct 09 05:46:57 2020
ready to report: no
state: downloaded
scheduler state: scheduled
active_task_state: EXECUTING
app version num: 300
resources: 1 CPU
estimated CPU time remaining: 3131.496614
elapsed task time: 294.285412
slot: 2
PID: 2192
CPU time at last checkpoint: 247.464400
current CPU time: 282.315000
fraction done: 0.178543
swap size: 291 MB
working set size: 9 MB
For an unstarted task.
name: wu_sf7_DS-16x8_Grp268382of655360_0
WU name: wu_sf7_DS-16x8_Grp268382of655360
project URL: http://numberfields.asu.edu/NumberFields/
received: Sat Oct 03 07:04:45 2020
report deadline: Fri Oct 09 07:04:33 2020
ready to report: no
state: downloaded
scheduler state: uninitialized
active_task_state: UNINITIALIZED
app version num: 300
resources: 1 CPU
estimated CPU time remaining: 3812.124815
elapsed task time: 0.000000
So, what do you still need, apart from the ones I've highlighted?

Be aware that your computer also records a permanent list of all completed tasks by project, in the file "job_log_[project].txt". Lines are written on completion, and the one for the completed task above reads

1601725393 ue 3812.124815 ct 2694.590000 fe 10000000000000 nm wu_sf7_DS-16x8_Grp265895of655360_0 et 2766.865900 es 0
We can break that down for readability:

1601725393
ue 3812.124815
ct 2694.590000 final CPU time
fe 10000000000000
nm wu_sf7_DS-16x8_Grp265895of655360_0
et 2766.865900 final elapsed time
es 0
ID: 100932 · Report as offensive
l008com

Send message
Joined: 22 Mar 09
Posts: 51
United States
Message 100934 - Posted: 3 Oct 2020, 19:08:20 UTC - in response to Message 100932.  

Actually, looking at the output from --get_tasks, I think it's been done already.

...For a running task,
name: wu_sf7_DS-16x8_Grp266373of655360_0
WU name: wu_sf7_DS-16x8_Grp266373of655360
project URL: http://numberfields.asu.edu/NumberFields/
received: Sat Oct 03 05:47:08 2020
report deadline: Fri Oct 09 05:46:57 2020
ready to report: no
state: downloaded
scheduler state: scheduled
active_task_state: EXECUTING
app version num: 300
resources: 1 CPU
estimated CPU time remaining: 3131.496614
elapsed task time: 294.285412
slot: 2
PID: 2192
CPU time at last checkpoint: 247.464400
current CPU time: 282.315000
fraction done: 0.178543
swap size: 291 MB
working set size: 9 MB


I don't have an "elapsed task time" row in the result of --get_tasks. There is estimated CPU time and there is slot, with nothing in-between for me.
I'm on 7.6.11. Any idea why I'm missing this information?


10) -----------
   name: 172425_Hs_T116268-ITGAV_wu-12_1601185078389_2
   WU name: 172425_Hs_T116268-ITGAV_wu-12_1601185078389
   project URL: http://gene.disi.unitn.it/test/
   received: Sat Oct  3 07:48:43 2020
   report deadline: Fri Oct  9 07:48:42 2020
   ready to report: no
   state: downloaded
   scheduler state: scheduled
   active_task_state: EXECUTING
   app version num: 110
   resources: 1 CPU
   estimated CPU time remaining: 13120.401551
   slot: 0
   PID: 11892
   CPU time at last checkpoint: 10628.880000
   current CPU time: 10633.100000
   fraction done: 0.478333
   swap size: 4303 MB
   working set size: 145 MB
ID: 100934 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5095
United Kingdom
Message 100935 - Posted: 3 Oct 2020, 19:19:45 UTC - in response to Message 100934.  

I don't have an "elapsed task time" row in the result of --get_tasks. There is estimated CPU time and there is slot, with nothing in-between for me.
I'm on 7.6.11. Any idea why I'm missing this information?
In a word, no. Mine was taken from BOINC v7.16.11 (released last month), running under Windows 7/x64. Having looked at the code, I suspect that boinccmd uses exactly the same function to parse the client reply as the GUI manager does - and I don't think that's changed much in 10 years. I'll take a proper look tomorrow.
ID: 100935 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5095
United Kingdom
Message 100936 - Posted: 3 Oct 2020, 19:48:12 UTC

I wondered if there might be something odd about your project (failure to checkpoint, or something). So I ran a test task (same BOINC version as last time):

name: 172770_Hs_T137591-GBE1_wu-121_1601737922481_1
WU name: 172770_Hs_T137591-GBE1_wu-121_1601737922481
project URL: http://gene.disi.unitn.it/test/
received: Sat Oct 03 20:25:34 2020
report deadline: Fri Oct 09 20:25:20 2020
ready to report: no
state: downloaded
scheduler state: scheduled
active_task_state: EXECUTING
app version num: 111
resources: 1 CPU
estimated CPU time remaining: 12598.020102
elapsed task time: 316.779118
slot: 0
PID: 23868
CPU time at last checkpoint: 224.282600
current CPU time: 299.677900
fraction done: 0.025000
swap size: 42 MB
working set size: 41 MB
So that wasn't it. Where did you get your BOINC version from? (and why did we each get a different app_version number?)
ID: 100936 · Report as offensive
Bryn Mawr
Help desk expert

Send message
Joined: 31 Dec 18
Posts: 287
United Kingdom
Message 100942 - Posted: 4 Oct 2020, 5:31:20 UTC - in response to Message 100936.  

(and why did we each get a different app_version number?)



All of my tn-grid WUs have been v1.10 regardless of which level of optimisation they’re at. That’s running Ubuntu or Mint.
ID: 100942 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5095
United Kingdom
Message 100954 - Posted: 4 Oct 2020, 9:29:15 UTC - in response to Message 100942.  

All of my tn-grid WUs have been v1.10 regardless of which level of optimisation they’re at. That’s running Ubuntu or Mint.
Yes, I saw that from the project's Applications page after I posted - v1.10 could be either Linux or Mac, but v1.11 can only be Windows.

Here's one from Mint, also at v7.16.11:

name: 172467_Hs_T001760-INPP5F_wu-172_1601265762688_2
WU name: 172467_Hs_T001760-INPP5F_wu-172_1601265762688
project URL: http://gene.disi.unitn.it/test/
received: Sun Oct 4 10:09:41 2020
report deadline: Sat Oct 10 10:09:40 2020
ready to report: no
state: downloaded
scheduler state: scheduled
active_task_state: EXECUTING
app version num: 110
resources: 1 CPU
estimated CPU time remaining: 6881.553626
elapsed task time: 499.171732
slot: 1
PID: 32632
CPU time at last checkpoint: 472.247800
current CPU time: 497.004200
fraction done: 0.068333
swap size: 62 MB
working set size: 54 MB
So I think the problem can only be the version of BOINC that he's using. I'll check when that line was added, next time I'm back at a Windows machine.
ID: 100954 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5095
United Kingdom
Message 100955 - Posted: 4 Oct 2020, 10:12:02 UTC

Ah - mystery solved. It was requested earlier this year (#3463), and added in June (#3800) - just in time for the much-delayed v7.16.11 release. You'll have to upgrade - if we're talking Linux, Gianfranco Costamagna has a PPA with v7.16.11 in it already.
ID: 100955 · Report as offensive

Message boards : Questions and problems : boinccmd values not matching up with GUI

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.