From: <ma...@us...> - 2006-08-14 22:56:47
|
Revision: 1454 Author: markwkm Date: 2006-08-14 15:56:44 -0700 (Mon, 14 Aug 2006) ViewCVS: http://svn.sourceforge.net/osdldbt/?rev=1454&view=rev Log Message: ----------- Removed the newer shell script for calculating the power score in favor of the older perl script because of the need of needing fractional exponents. Greatly simplified the original perl script at the same time. Modified Paths: -------------- trunk/dbt3/scripts/get_composite.sh.in trunk/dbt3/scripts/pgsql/get_power.pl Removed Paths: ------------- trunk/dbt3/scripts/pgsql/get_power.sh Property Changed: ---------------- trunk/dbt3/scripts/pgsql/get_power.pl Modified: trunk/dbt3/scripts/get_composite.sh.in =================================================================== --- trunk/dbt3/scripts/get_composite.sh.in 2006-08-14 18:01:16 UTC (rev 1453) +++ trunk/dbt3/scripts/get_composite.sh.in 2006-08-14 22:56:44 UTC (rev 1454) @@ -42,7 +42,7 @@ SCRIPT_DIR="@TOPDIR@/scripts/@DATABASE_TO_USE@"; -POWER=`${SHELL} ${SCRIPT_DIR}/get_power.sh -i ${INFILE} -p ${PERFNUM} -s ${SCALE_FACTOR} ${NO_REFRESH_FLAG}` +POWER=`${SCRIPT_DIR}/get_power.pl -i ${INFILE} -p ${PERFNUM} -s ${SCALE_FACTOR} ${NO_REFRESH_FLAG}` THROUGHPUT=`${SHELL} ${SCRIPT_DIR}/get_throughput.sh -i ${INFILE} -p ${PERFNUM} -s ${SCALE_FACTOR} -n ${STREAMS}` COMPOSITE=`echo "scale=2; sqrt(${POWER} * ${THROUGHPUT})" | bc -l` Modified: trunk/dbt3/scripts/pgsql/get_power.pl =================================================================== --- trunk/dbt3/scripts/pgsql/get_power.pl 2006-08-14 18:01:16 UTC (rev 1453) +++ trunk/dbt3/scripts/pgsql/get_power.pl 2006-08-14 22:56:44 UTC (rev 1454) @@ -5,16 +5,14 @@ # This file is released under the terms of the Artistic License. Please see # the file LICENSE, included in this package, for details. # -# Copyright (C) 2003 Open Source Development Lab, Inc. +# Copyright (C) 2003-2006 Open Source Development Labs, Inc. # # Author: Jenny Zhang +# + use strict; use Pod::Usage; -use FileHandle; use Getopt::Long; -use Env qw(SID DBT3_PERL_MODULE PGUSER); -use lib "$DBT3_PERL_MODULE"; -use Data_report; =head1 NAME @@ -29,95 +27,56 @@ -scale_factor <scale factor > -file <config filename to read from> -write <config filename to write to> + -z =cut -my ( $perf_run_number, $hlp, $scale_factor, $configfile, $writeme, - $power, @power_query, @power_refresh, $i ); +my ($perf_run_number, $hlp, $infile, $scale_factor, $configfile, + $power, @power_query, @power_refresh, $i, $no_refresh); GetOptions( - "perf_run_number=i" => \$perf_run_number, - "scale_factor=f" => \$scale_factor, - "help" => \$hlp, - "file=s" => \$configfile, - "write=s" => \$writeme + "perf_run_number=i" => \$perf_run_number, + "scale_factor=f" => \$scale_factor, + "help" => \$hlp, + "infile=s" => \$infile, + 'z' => \$no_refresh ); -my $fcf = new FileHandle; -my ( $cline, %options ); - -if ($hlp) { pod2usage(1); } - -if ( $configfile ) { - unless ( $fcf->open( "< $configfile" ) ) { - die "Missing config file $!"; - } - while ( $cline = $fcf->getline ) { - next if ( $cline =~ /^#/ ); - chomp $cline; - my ( $var, $value ) = split /=/, $cline; - $options{ $var } = $value; - } - $fcf->close; +if ($hlp) { + pod2usage(1); } -if ( $perf_run_number ) { $options{ 'perf_run_number' } = $perf_run_number; } -elsif ( $options{ 'perf_run_number' } ) { - $perf_run_number = $options{ 'perf_run_number' }; -} -else -{ - die "No perf_run_number $!"; -} +my $value = 1; -if ( $scale_factor ) { $options{ 'scale_factor' } = $scale_factor; } -elsif ( $options{ 'scale_factor' } ) { - $scale_factor = $options{ 'scale_factor' }; +# +# Get execution time for the power queries. +# +for ($i = 1; $i <= 22; $i++) { + my $val = `grep \'PERF$perf_run_number.POWER.Q$i \' $infile | awk '{ print \$11 }'`; + chomp $val; + $value *= $val; } -else -{ - die "No scale_factor $!"; -} -if ( $writeme ) { - my $ncf = new FileHandle; - unless ( $ncf->open( "> $writeme" ) ) { die "can't open file $!"; } - my $name; - foreach $name ( keys( %options ) ) { - print $ncf $name, "=", $options{ $name }, "\n"; - } - $ncf->close; +# +# Get execution time for the power refresh functions. +# +unless ($no_refresh) { + for ($i = 1; $i <= 2; $i++) { + my $val = `grep \'PERF$perf_run_number.POWER.RF$i\' $infile | awk '{ print \$11 }'`; + # + # Skip in case the refresh functions finished within 1 second so we don't + # get a divide by 0 error later. + # + if ($val == 0) { + next; + } + chomp $val; + $value *= $val; + } } -# get execution time for the power queries -for ($i=1; $i<=22; $i++) -{ - $power_query[$i] = `psql -t -d $SID -c "select (extract(hour from (e_time-s_time)) * 3600) + (extract(minute from (e_time-s_time)) * 60) + (extract(second from (e_time-s_time))) as seconds from time_statistics where task_name='PERF$perf_run_number.POWER.Q$i';"`; - chomp($power_query[$i]); - chomp($power_query[$i]); -} +$power = (3600 * $scale_factor) / ($value)**(1/24); +print "$power\n"; -# get execution time for the power refresh functions -for ($i=1; $i<=2; $i++) -{ - $power_refresh[$i] = `psql -t -d $SID -c "select (extract(hour from (e_time-s_time)) * 3600) + (extract(minute from (e_time-s_time)) * 60) + (extract(second from (e_time-s_time))) as seconds from time_statistics where task_name='PERF$perf_run_number.POWER.RF$i';"`; - chomp($power_refresh[$i]); - chomp($power_refresh[$i]); - # in case the refresh functions finished within 1 second - if ( $power_refresh[$i] == 0 ) { $power_refresh[$i] = 1; } -} - -my $tmp_query = 1; -for ( $i=1; $i<=22; $i++ ) -{ - $tmp_query = $power_query[$i] * $tmp_query; -} -my $tmp_refresh = 1; -for ( $i=1; $i<=2; $i++ ) -{ - $tmp_refresh = $power_refresh[$i] * $tmp_refresh -} - -$power = (3600 * $scale_factor) / ($tmp_query * $tmp_refresh)**(1/24); -printf "power = %.2f\n", $power; +exit 0; Property changes on: trunk/dbt3/scripts/pgsql/get_power.pl ___________________________________________________________________ Name: svn:executable + * Deleted: trunk/dbt3/scripts/pgsql/get_power.sh =================================================================== --- trunk/dbt3/scripts/pgsql/get_power.sh 2006-08-14 18:01:16 UTC (rev 1453) +++ trunk/dbt3/scripts/pgsql/get_power.sh 2006-08-14 22:56:44 UTC (rev 1454) @@ -1,82 +0,0 @@ -#!/bin/bash - -# -# This file is released under the terms of the Artistic License. -# Please see the file LICENSE, included in this package, for details. -# -# Copyright (C) 2003 Jenny Zhang & Open Source Development Lab, Inc. -# - -# -# May 26, 2005 -# Mark Wong -# Rewritten from perl to bash. -# - -usage() -{ - echo "usage: get_power.sh -i <q_time.out> -p <perfrun> -s <scale factor> [-v]" -} - -NO_REFRESH=0 -while getopts "i:p:s:vz" OPT; do - case ${OPT} in - i) - INFILE=${OPTARG} - ;; - p) - PERFNUM=${OPTARG} - ;; - s) - SCALE_FACTOR=${OPTARG} - ;; - v) - set -x - SHELL="${SHELL} +x" - ;; - z) - NO_REFRESH=1 - ;; - esac -done - -if [ -z ${INFILE} ] || [ -z ${PERFNUM} ] || [ -z ${SCALE_FACTOR} ]; then - usage - exit 1 -fi - -# -# Get execution time for each of the power queries. -# -for i in `seq 1 22`; do - VAL=`grep "PERF${PERFNUM}.POWER.Q${i} " ${INFILE} | awk '{ print $11 }'` - if [ -z ${VAL} ]; then - echo "No power data retrieved for 'PERF${PERFNUM}.POWER.Q${i}'." - exit 1 - fi - VALUES="${VALUES} ${VAL}" -done - -if [ ${NO_REFRESH} -eq 0 ]; then - # - # Get execution time for the each of the refresh functions. - # - for i in `seq 1 2`; do - VAL=`grep "PERF${PERFNUM}.POWER.RF${i}" ${INFILE} | awk '{ print $11 }'` - if [ -z ${VAL} ]; then - echo "No power data retrieved for 'PERF${PERFNUM}.POWER.RF${i}'." - exit 1 - fi - # - # in case the refresh functions finished within 1 second - # - if [ "x${VAL}" = "x0" ]; then - VAL=1 - fi - VALUES="${VALUES} ${VAL}" - done -fi - -${POWER} ${SCALE_FACTOR} ${VALUES} || exit 1 - -exit 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |