.
// tool for estimating FLOPS per job for a given app
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('display_startup_errors', true);
require_once("../inc/db.inc");
require_once("../inc/util_ops.inc");
db_init();
$hist = array();
$quantum = 1e10;
$mean = 0;
$count = 0;
$varsum = 0;
function handle_result($result) {
global $hist;
global $quantum;
global $mean;
global $count;
global $varsum;
$flops = $result->elapsed_time * $result->flops_estimate;
//printf("%e
\n", $flops);
$n = (int) ($flops/$quantum);
if (!array_key_exists($n, $hist)) {
$hist[$n] = 0;
}
$hist[$n]++;
$count++;
$delta = $flops - $mean;
$mean += $delta/$count;
$varsum += $delta*($flops-$mean);
}
function show_stats() {
global $mean;
global $count;
global $varsum;
global $sum;
$stdev = sqrt($varsum/($count-1));
printf("mean: %e
stdev: %e
samples: %d", $mean, $stdev, $count);
}
function show_stats_hist() { //deprecated
global $hist;
global $quantum;
$sum = 0;
$n = 0;
foreach ($hist as $i=>$v) {
$sum += $quantum*$i*$v;
$n += $v;
}
$mean = $sum/$n;
echo "mean: ";
printf("%e", $mean);
$sum = 0;
foreach ($hist as $i=>$v) {
$d = ($mean - $quantum*$i);
$sum += $d*$d*$v;
}
$stdev = sqrt($sum/$n);
echo "
stdev: ";
printf("%e", $stdev);
}
function show_as_xml() {
global $hist;
global $quantum;
echo "
"; foreach ($hist as $i=>$v) { echo "<bin> <value>"; printf("%e", $quantum*$i); echo "</value> <count>$v</count> </bin> "; } echo ""; } function show_as_table() { global $quantum; global $hist; echo "
"; printf("%e ", $f); echo " |