. // utility for studying the credit system error_reporting(E_ALL); ini_set('display_errors', true); ini_set('display_startup_errors', true); require_once("../inc/boinc_db.inc"); define('COBB_SCALE', 100/86400e9); function gavid($avid, $appid) { if ($avid < 0) { return $appid*1000000 - $avid; } return $avid; } function show_result($r, $w) { $gavid = gavid($r->app_version_id, $w->appid); $hav = BoincHostAppVersion::lookup($r->hostid, $gavid); $av = BoincAppVersion::lookup_id($r->app_version_id); $raw_credit = $r->elapsed_time*$r->flops_estimate*COBB_SCALE; echo "
Result ID: id>$r->id Host: hostid&avid=$r->app_version_id>$r->hostid elapsed_time: $r->elapsed_time flops_estimate: ".$r->flops_estimate/1e9." app_version_id: $r->app_version_id "; if ($av) { $host_scale = $av->pfc_avg/$hav->pfc_avg; $av_scale = $av->pfc_scale; echo "app version scale: $av->pfc_scale\n"; } else { $host_scale = 1; $av_scale = 1; } echo "host scale: $host_scale Credit: Original: $r->claimed_credit Raw: $raw_credit Scaled: ".$raw_credit*$host_scale*$av_scale." Granted: $r->granted_credit "; if ($hav) { echo "Host app version: PFC avg: $hav->pfc_avg "; } } function show_av($avid) { $av = BoincAppVersion::lookup_id($avid); if (!$av) { echo "app version $avid not found"; return; } echo "
App version ID: $avid plan class: $av->plan_class PFC: ".$av->pfc_avg." scale: ".$av->pfc_scale." "; } function handle_result($resultid) { $r = BoincResult::lookup_id($resultid); $w = BoincWorkunit::lookup_id($r->workunitid); $rs = BoincResult::enum("workunitid=$r->workunitid and validate_state=1"); $app_version_ids = array(); foreach ($rs as $r) { show_result($r, $w); $app_version_ids[] = $r->app_version_id; } $app_version_ids = array_unique($app_version_ids); foreach ($app_version_ids as $avid) { show_av($avid); } } function host_history($hostid, $avid) { $rs = BoincResult::enum("hostid=$hostid and app_version_id=$avid and validate_state=1 order by id desc limit 100"); echo "Results for host $hostid\n"; $n = 0; $total=0; foreach($rs as $r) { $raw_credit = $r->elapsed_time*$r->flops_estimate*COBB_SCALE; $n++; $total += $raw_credit; echo "ID id>$r->id raw $raw_credit "; } $avg = $total/$n; echo "avg: $avg\n"; echo "\n"; } if (array_key_exists('resultid', $_GET)) { $resultid = $_GET['resultid']; handle_result($resultid); exit; } $hostid = $_GET['hostid']; $avid = $_GET['avid']; if ($hostid && $avid) { host_history($hostid, $avid); exit; } echo "??"; ?>