#!/bin/sh #FILENAME: papiani-new-gbis-default.script 02/JUN/95 # Generic WWW root. ########## SET UP VARIABLES ############################### WWW_ROOT=/netlib/parkbench/gbis HTTP_WWW_ROOT=http://www.netlib.org/parkbench/gbis GENESIS_DIRS=/pcsg/ftp/pub/benchmark_results/ PLOT_ROOT=/pcsg/ftp/pub/benchmark_results FTP=ftp://cs.utk.edu/pub/benchmark_results TAIL=/usr/ucb/tail CGI=/usr/local/netlib/bin/cgi-bin/gbis HTTP_CGI=http://www.netlib.org/cgi-bin/gbis PSTOGIF=$WWW_ROOT/bin/pstogif PSTOXBM=$WWW_ROOT/bin/pstoxbm GNUPLOT=/local/gnu/bin/gnuplot LD_LIBRARY_PATH=/usr/local/X11R5/lib ; export LD_LIBRARY_PATH ######## The following paths are set relative to those above HOME=$WWW_ROOT ; export HOME TEMP=$WWW_ROOT/tmp HTTP_TEMP=$HTTP_WWW_ROOT/tmp ICONS=$HTTP_WWW_ROOT/gif_icons GBIS_TOP=$HTTP_WWW_ROOT/html ##########END VARIABLES #################################### PIDFILE=$1 ERRORFILE=$TEMP/$PIDFILE.err chmod ugo+rw $ERRORFILE exec 2>$ERRORFILE OUTFILE_PS=$TEMP/$PIDFILE.ps # temp PS output file. OUTFILE_GIF=$TEMP/$PIDFILE.gif # GIF file. OUTFILE_XBM=$TEMP/$PIDFILE.xbm # xbm file. # # Separate name for GIF and PS file when addressing through httpd: # WWW_FILE_GIF=$HTTP_TEMP/$PIDFILE.gif WWW_FILE_PS=$HTTP_TEMP/$PIDFILE.ps WWW_FILE_XBM=$HTTP_TEMP/$PIDFILE.xbm PLOTLIST1=$TEMP/$PIDFILE.files PLOTLIST=$TEMP/$PIDFILE.tmp GNUFILE=$TEMP/$PIDFILE.gnu touch $GNUFILE chmod ugo=rw $GNUFILE # # Set path to just /bin to reduce likelyhood of hacking. # PATH='/bin' BENCHMARK=`$TAIL -1 $PLOTLIST1|cut -f1 -d\/` if [ $BENCHMARK = 'RINF1' ] then FILENAME=`$TAIL -1 $PLOTLIST1|cut -f3 -d\/` KERNEL=`echo $FILENAME|cut -f3 -d_` KERNEL='('$KERNEL')' fi TICK=`echo $BENCHMARK|awk '/TICK/{print "TICK"}'` if [ $TICK ] then cat << HTML
' cat $NAMES|sed "s/#!/Machine: <\/STRONG>/"|sed "s/#//g" echo '' done rm $GNUFILE rm $PLOTLIST1 rm $PLOTLIST else BENCHMARK=`echo $BENCHMARK|sed -e 's/EP/EMBARRASSINGLY PARALLEL/'|sed 's/DMM/DENSE MATRIX MULTIPLY/'|sed 's/LU/DENSE LU FACTORISATION/'|sed 's/CG/CONJUGATE GRADIENT/'|sed 's/LIS/LARGE INTEGER SORT/'|sed 's/1DFFT/1-D FFT/'|sed 's/3DFFT/3-D FFT/'|sed 's/QR/QR DECOMPOSITION/'|sed 's/DENSE LU FACTORISATION_CFD/LU SIMULATED CFD APPLICATION/'|sed 's/SP_CFD/SP SIMULATED CFD APPLICATION/'|sed 's/BT_CFD/BT SIMULATED CFD APPLICATION/'` AXES=`$TAIL -1 $PLOTLIST1|awk '/_TIME/{print "TIME"}'` if [ $AXES ] then XLABEL='"Message Length / Byte"' YLABEL='"Transfer Time / s"' QS_XTYPE="nologscale" QS_YTYPE="nologscale" else AXES=`$TAIL -1 $PLOTLIST1|awk '/_RATE/{print "RATE"}'` if [ $AXES ] then XLABEL='"Message Length / Byte"' YLABEL='"Transfer Rate / (MB/s)"' QS_XTYPE="logscale" QS_YTYPE="logscale" else AXES=`$TAIL -1 $PLOTLIST1|awk '/_BARTIME/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Time Per Barrier / us"' QS_XTYPE="logscale" QS_YTYPE="logscale" else AXES=`$TAIL -1 $PLOTLIST1|awk '/_BARRATE/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Barrier Rate / (Mbarr/s)"' QS_XTYPE="logscale" QS_YTYPE="logscale" else AXES=`$TAIL -1 $PLOTLIST1|awk '/_AVE/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Average Transfer Rate / (MByte/s)"' QS_XTYPE="logscale" QS_YTYPE="logscale" else AXES=`$TAIL -1 $PLOTLIST1|awk '/SEQ_READ/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Transfer Rate (Sequential Read) / (MByte/s)"' QS_XTYPE="logscale" QS_YTYPE="logscale" else AXES=`$TAIL -1 $PLOTLIST1|awk '/RAN_READ/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Transfer Rate (Random Read) / (MByte/s)"' QS_XTYPE="logscale" QS_YTYPE="logscale" else AXES=`$TAIL -1 $PLOTLIST1|awk '/_WRITE/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Transfer Rate (Write) / (MByte/s)"' QS_XTYPE="logscale" QS_YTYPE="logscale" else AXES=`$TAIL -1 $PLOTLIST1|awk '/_BENCH/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Benchmark Performance / (Mflop/s)"' QS_XTYPE="logscale" QS_YTYPE="logscale" else AXES=`$TAIL -1 $PLOTLIST1|awk '/_TEMPO/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Temporal Performance / (tstep/s)"' QS_XTYPE="logscale" QS_YTYPE="logscale" else AXES=`$TAIL -1 $PLOTLIST1|awk '/_SIMUL/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Simulation Performance / (sim-ps/s)"' QS_XTYPE="logscale" QS_YTYPE="logscale" else AXES=`$TAIL -1 $PLOTLIST1|awk '/_SPEED/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Speedup"' QS_XTYPE="logscale" QS_YTYPE="logscale" else AXES=`$TAIL -1 $PLOTLIST1|awk '/_EFFIC/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Efficiency / %"' QS_XTYPE="logscale" QS_YTYPE="nologscale" else AXES=`$TAIL -1 $PLOTLIST1|awk '/_TRANS/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Performance / (kw_64/s)"' QS_XTYPE="logscale" QS_YTYPE="logscale" else AXES=`$TAIL -1 $PLOTLIST1|awk '/_POLY/{print "RATE"}'` if [ $AXES ] then XLABEL='"Computational Intensity / (flop/mref)"' YLABEL='"RINF / (Mflop/s)"' QS_XTYPE="nologscale" QS_YTYPE="nologscale" else XLABEL='"Number of processors"' YLABEL='"Performance / (Mflop/s)"' QS_XTYPE="logscale" QS_YTYPE="logscale" fi #poly fi #trans fi #effic fi #speed fi #simul fi #tempo fi #bench fi #write fi #seq read fi #ran read fi #ave fi #barrate fi #bartime fi #rate fi #time cat << HTML
DEBUG = $DEBUG argc is $ . argv is "$*". SERVER_SOFTWARE = $SERVER_SOFTWARE SERVER_NAME = $SERVER_NAME GATEWAY_INTERFACE = $GATEWAY_INTERFACE SERVER_PROTOCOL = $SERVER_PROTOCOL SERVER_PORT = $SERVER_PORT REQUEST_METHOD = $REQUEST_METHOD HTTP_ACCEPT = "$HTTP_ACCEPT" PATH_INFO = $PATH_INFO PATH_TRANSLATED = $PATH_TRANSLATED SCRIPT_NAME = $SCRIPT_NAME REMOTE_HOST = $REMOTE_HOST REMOTE_ADDR = $REMOTE_ADDR REMOTE_USER = $REMOTE_USER CONTENT_TYPE = $CONTENT_TYPE CONTENT_LENGTH = $CONTENT_LENGTH QUERY_STRING = $QUERY_STRING QS_DATAFILE =$QS_DATAFILE QS_XMIN = $QS_XMIN QS_XMAX = $QS_XMAX QS_YMIN = $QS_YMIN QS_YMAX = $QS_YMAX QS_XTYPE = $QS_XTYPE QS_YTYPE = $QS_YTYPE QS_GIF = $QS_GIF echo Variables: set
DEBUG
fi
if [ $DEBUG = 1 ]; then
echo '
'
echo PS file: $OUTFILE_PS
echo '
'
echo GIF file: $OUTFILE_GIF
echo '
'
fi
# HEADING=`echo $BENCHMARK|sed -e 's/EP/EMBARRASSINGLY PARALLEL/'`
echo "set terminal postscript portrait monochrome '"Helvetica"' 10" >$GNUFILE
echo "set size 0.65,0.9" >>$GNUFILE
echo set title '"'$BENCHMARK $KERNEL'"' 0,0 >>$GNUFILE
echo set xlabel $XLABEL 0,0 >>$GNUFILE
echo set ylabel $YLABEL 0,0 >>$GNUFILE
echo "set $QS_XTYPE x" >> $GNUFILE
echo "set $QS_YTYPE y" >>$GNUFILE
echo "set xrange [$QS_XMIN:$QS_XMAX]" >> $GNUFILE
echo "set yrange [$QS_YMIN:$QS_YMAX]" >> $GNUFILE
# echo "set key $KEY1,$KEY2" >> $GNUFILE
echo 'plot \' >> $GNUFILE
COUNT=10
for NAMES in `cat $PLOTLIST1`
do
COUNT=`expr $COUNT + 1`
# TITLE=`echo $NAMES|cut -f3 -d\/`
#take the file name and remove underscores using sed, also remove other
#parts of the file name which are not required.
#What is left is used as the trace title
TITLE=`echo $NAMES|cut -f3 -d\/|sed 's/_/ /g'|sed 's/RATE//'|sed 's/TIME//'|sed 's/KERNEL[0-9][0-9]*//'|sed 's/CONST//'|sed 's/BAR//'|sed 's/WRITE//'|sed 's/SEQ READ//'|sed 's/RAN READ//'|sed 's/AVE//'|sed 's/TEMPO//'|sed 's/SIMUL//'|sed 's/BENCH//'|sed 's/SPEED//'|sed 's/EFFIC//'|sed 's/PERF//'|sed 's/LONG//'|sed 's/SHORT//'|sed 's/TRANS//'|sed 's/POLY//'`
#add to list of files to plot:-
echo '"'$NAMES'"' title "'"$TITLE"'" with linespoints,'\' >> $GNUFILE
done
sed -e ${COUNT}'s/,\\//' $GNUFILE >$PLOTLIST
cd $PLOT_ROOT
$GNUPLOT $PLOTLIST > $OUTFILE_PS 2>$ERRORFILE
rm $GNUFILE
rm $PLOTLIST1
rm $PLOTLIST
if [ -s $ERRORFILE ];then
WARNING_ONLY=`cat $ERRORFILE|awk '/Warning/{print "yes"}'`
if [ ! "$WARNING_ONLY" ];then
cat << HTML
Submitted by Mark Papiani,
last updated 24 February 1995.
Submitted by Mark Papiani,
last updated 24 February 1995.