This proposal started from a thread posted on the boinc Q&P User Forum here
http://boinc.berkeley.edu/dev/forum_thread.php?id=10539&postid=64913#64913
Current issues:
- Users only see invalid results if they regularly visit all their
project websites and check their tasks
- Task are often purged from the user visible data so no long term
record is visible
- Invalid tasks waste more host and server resources (power, bandwidth
etc) on average than error tasks (they take longer)
- Project administrators may not have time to advise users about hosts
which deliver bad results
- The boinc manager program(s) currently report nicely on historical RAC
values but not so well on task reliability and host utilization.
- RAC values are slow to respond to changes (by design)
- There is an RPC for getting pending tasks (project/pending.php)
documented here https://boinc.berkeley.edu/trac/wiki/WebRpc
- There is no RPC for getting errors or invalid tasks
Existing php which is similar: results.php
The existing project/results.php (and the only mechanism available for
users to see invalid tasks) accepts parameters
hostid=<host_id> or userid=<user_id> # must match authentication
offset=<number_from_start> # default 0
show_names=<0|1> #
state=4 # 4 is invalid, 0 default
matches all states
appid=0 # 0 default matches all apps
it then displays a maximum of 20 tasks one per row in a HTML table,
and the user has to follow links to the next page of 20 results.
Example
http://einstein.phys.uwm.edu/results.php?userid=<user_id>&offset=0&show_names=1&state=4&appid=0
Shows my first page of E@H invalids
Suggestion:
Create a similar RPC to pending.php called say resultsRPC.php
which would
accept the parameters (except offset above) like results.php,
then deliver an XML file like pending.php RPC with task data
Benefit:
The resultsRPC could be used in a number of ways in the future
Future versions of boinc or the boincmgr could use it to
- put an alert notice if a new error detected recently
- log the event, like the job_.txt files
- put a last week scorecard showing host/user efficiency
- report user/host health statistics (like RAC/Credit statistics tab)
Users could write scripts using for alerts on errors and invalids,
helpful for "farmers" with headless hosts to get a daily email with new
invalids and errors from the farm.
Project Managers could also use this RPC across users to monitor app
performance trends after changes.
Detail
Select result records based on parameters
state, appid, hostid, userid (like results.php)
and these new optional parameters
max_results=<maximum_number_results> # default 1000, the project
# should be able to set an
upper limit
sent_end_time=<epoch_date_value> # default to "now"
sent_time_interval=<number_of_seconds> # default to 2419200 (28 days)
to filter results returned.
Then produce (like pending.php) an XML file with one or two tables based
on optional formatting parameters
format=xml # placeholder defaults to xml
report_results=<0|1> # default 1 = report results table
report_totals=<0|1> # default 1 = report totals table
-XML file-----------------------------------
<results_table>
... data values matching the results.php web page output,
any time/date output in epoch seconds.
</results_table>
<results_total_table>
... which simply counts or sums the column, where that makes sense.
(eg. count_of_results, Runtime, CPUtime, Claimedcredit, Grantedcredit)
</results_total_table>
This proposal started from a thread posted on the boinc Q&P User Forum here
http://boinc.berkeley.edu/dev/forum_thread.php?id=10539&postid=64913#64913
Current issues:
project websites and check their tasks
record is visible
etc) on average than error tasks (they take longer)
which deliver bad results
values but not so well on task reliability and host utilization.
documented here https://boinc.berkeley.edu/trac/wiki/WebRpc
Existing php which is similar: results.php
The existing project/results.php (and the only mechanism available for
users to see invalid tasks) accepts parameters
hostid=<host_id> or userid=<user_id> # must match authentication
offset=<number_from_start> # default 0
show_names=<0|1> #
state=4 # 4 is invalid, 0 default
matches all states
appid=0 # 0 default matches all apps
it then displays a maximum of 20 tasks one per row in a HTML table,
and the user has to follow links to the next page of 20 results.
Example
http://einstein.phys.uwm.edu/results.php?userid=<user_id>&offset=0&show_names=1&state=4&appid=0
Shows my first page of E@H invalids
Suggestion:
Create a similar RPC to pending.php called say resultsRPC.php
which would
accept the parameters (except offset above) like results.php,
then deliver an XML file like pending.php RPC with task data
Benefit:
The resultsRPC could be used in a number of ways in the future
Future versions of boinc or the boincmgr could use it to
Users could write scripts using for alerts on errors and invalids,
helpful for "farmers" with headless hosts to get a daily email with new
invalids and errors from the farm.
Project Managers could also use this RPC across users to monitor app
performance trends after changes.
Detail
Select result records based on parameters
state, appid, hostid, userid (like results.php)
and these new optional parameters
upper limit
sent_end_time=<epoch_date_value> # default to "now"
sent_time_interval=<number_of_seconds> # default to 2419200 (28 days)
to filter results returned.
Then produce (like pending.php) an XML file with one or two tables based
on optional formatting parameters
format=xml # placeholder defaults to xml
report_results=<0|1> # default 1 = report results table
report_totals=<0|1> # default 1 = report totals table
-XML file-----------------------------------
<results_table>
... data values matching the results.php web page output,
any time/date output in epoch seconds.
</results_table>
<results_total_table>
... which simply counts or sums the column, where that makes sense.
(eg. count_of_results, Runtime, CPUtime, Claimedcredit, Grantedcredit)
</results_total_table>