#!/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 Southampton HPC Centre - GBIS - $BENCHMARK

$BENCHMARK




HTML cd $PLOT_ROOT for NAMES in `cat $PLOTLIST1` do echo '
' echo '
'
		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 Southampton HPC Centre - GBIS - $BENCHMARK

$BENCHMARK




HTML DEBUG=0 # # Debug! # if [ $DEBUG = 1 ]; then cat << DEBUG

Debug

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

GBIS ERROR


An error occurred when gnuplot tried to interpret your request the error message was:-

`cat $ERRORFILE`





UP to GBIS Home Page
University of Southampton
High Performance Computing Centre

Submitted by Mark Papiani,
last updated 24 February 1995.

HTML rm $ERRORFILE exit fi fi #pstogif needs to be run from directory containing files to #be converted:- cd $TEMP #redirection to $ERRORFILE below is to remove messages #which pstogif generates during normal operation, #if these are not redirected they get displayed on WWW results page $PSTOGIF $OUTFILE_PS $OUTFILE_GIF >$ERRORFILE rm $OUTFILE_PS chmod ugo+wr $OUTFILE_GIF # # OUTPUT # cat << HTML GRAPH

HTML rm $ERRORFILE fi cat <

UP to GBIS Home Page
University of Southampton
High Performance Computing Centre

Submitted by Mark Papiani,
last updated 24 February 1995.

HTML