. // show details of an app require_once('../inc/util_ops.inc'); $appid = get_int("appid"); function remove_old($avs) { foreach($avs as $av) { foreach ($avs as $av2) { if ($av->id == $av2->id) continue; if ($av->platformid == $av2->platformid && $av->plan_class == $av2->plan_class && $av->version_num > $av2->version_num) { $av2->deprecated = 1; } } } $x = array(); foreach($avs as $av) { if (!$av->deprecated) $x[] = $av; } return $x; } $app = BoincApp::lookup_id($appid); if (!$app) admin_error_page("no such app"); admin_page_head("Details for $app->name ($app->user_friendly_name)"); start_table(); row2("Min average efficiency", $app->min_avg_pfc); echo "

In the list below, 'Credit scale factor' should be roughly 1 for CPU versions, 0.1 for GPU versions. If values are far outside this range, you may have bad FLOPs estimates. In this case, you may want to reset credit statistics for this application. "; end_table(); echo "

App versions

\n"; $avs = BoincAppVersion::enum("appid=$appid"); $avs = remove_old($avs); foreach ($avs as $av) { $platform = BoincPlatform::lookup_id($av->platformid); start_table(); row2("ID", $av->id); row2("Platform", $platform->name); row2("Plan class", $av->plan_class); row2("Version num", $av->version_num); row2("Jobs validated", $av->pfc_n); row2("Average efficiency", $av->pfc_avg?1/$av->pfc_avg:"---"); row2("Credit scale factor", $av->pfc_scale); row2("Average credit", $av->expavg_credit); end_table(); } admin_page_tail(); ?>