#!/bin/sh #FILENAME: papiani-new-gbis-change.query 02/JUN/95 ########## 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=$$ 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 # # Set path to just /bin to reduce likelyhood of hacking. # PATH='/bin' echo "Content-type: text/html" echo # # o sed removes any ' that would upset quoted assignment # # o awk ensures that # - all variables passed have legal names # - special characters are not interpreted by sh # eval `echo $PREFIX$QUERY_STRING | sed -e 's/'"'"'/%27/g' | sed -e s/'+'/'_'/ | \ awk 'BEGIN{RS="&";FS="="} $1~/^[a-zA-Z][a-zA-Z0-9_]*$/ \ {printf "if [ $QS_%s ]; then QS_%s=$QS_%s%c, %s%c; else QS_%s=%c%s%c; fi; \n", \ $1,$1,$1,39,$2,39,$1,39,$2,39}' ` PS_COLOUR=monochrome FORMAT=`echo $QS_FORMAT|awk '/GIF/{print "GIF"}'` if [ $FORMAT ] then PID=`echo $QS_FORMAT|sed "s/GIF//"` else FORMAT=`echo $QS_FORMAT|awk '/XBM/{print "XBM"}'` if [ $FORMAT ] then PID=`echo $QS_FORMAT|sed "s/XBM//"` else FORMAT=`echo $QS_FORMAT|awk '/PS/{print "PS"}'` if [ $FORMAT ] then PID=`echo $QS_FORMAT|sed "s/PS//"` PS_COLOUR=$QS_PSCOLOUR else PID=`echo $QS_FORMAT|sed "s/TEXT//"` FORMAT='TEXT' fi fi fi #echo PIDFILE=$PIDFILE #echo XTYPE=$XTYPE #echo QS_FORMAT=$QS_FORMAT PLOTLIST=$TEMP/$PIDFILE.tmp PLOTLIST1=$TEMP/$PID.files GNUFILE=$TEMP/$PIDFILE.gnu touch $GNUFILE chmod ugo=rw $GNUFILE 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 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/'` cat << HTML Southampton HPC Centre - GBIS - $BENCHMARK

$BENCHMARK




HTML if [ $FORMAT = 'GIF' -o $FORMAT = 'XBM' -o $FORMAT = 'PS' ];then # # Run gnuplot: # Use >! redirection to wipe old file if it exists. # Use << to read input from script. # #touch $OUTFILE_PS # chmod 666 $OUTFILE_PS if [ $QS_XTYPE = 'LOG' ];then QS_XTYPE="logscale" else QS_XTYPE="nologscale" fi if [ $QS_YTYPE = 'LOG' ];then QS_YTYPE="logscale" else QS_YTYPE="nologscale" fi # AXES=`$TAIL -1 $PLOTLIST1|awk '/_TIME/{print "TIME"}'` if [ $AXES ] then XLABEL='"Message Length / Byte"' YLABEL='"Transfer Time / s"' else AXES=`$TAIL -1 $PLOTLIST1|awk '/_RATE/{print "RATE"}'` if [ $AXES ] then XLABEL='"Message Length / Byte"' YLABEL='"Transfer Rate / (MB/s)"' else AXES=`$TAIL -1 $PLOTLIST1|awk '/_BARTIME/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Time Per Barrier / us"' else AXES=`$TAIL -1 $PLOTLIST1|awk '/_BARRATE/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Barrier Rate / (Mbarr/s)"' else AXES=`$TAIL -1 $PLOTLIST1|awk '/_AVE/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Average Transfer Rate / (MByte/s)"' else AXES=`$TAIL -1 $PLOTLIST1|awk '/SEQ_READ/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Transfer Rate (Sequential Read) / (MByte/s)"' else AXES=`$TAIL -1 $PLOTLIST1|awk '/RAN_READ/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Transfer Rate (Random Read) / (MByte/s)"' else AXES=`$TAIL -1 $PLOTLIST1|awk '/_WRITE/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Transfer Rate (Write) / (MByte/s)"' else AXES=`$TAIL -1 $PLOTLIST1|awk '/_BENCH/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Benchmark Performance / (Mflop/s)"' else AXES=`$TAIL -1 $PLOTLIST1|awk '/_TEMPO/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Temporal Performance / (Timestep/s)"' else AXES=`$TAIL -1 $PLOTLIST1|awk '/_SIMUL/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Simulation Performance / (sim-ps/s)"' else AXES=`$TAIL -1 $PLOTLIST1|awk '/_SPEED/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Speedup"' else AXES=`$TAIL -1 $PLOTLIST1|awk '/_EFFIC/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Efficiency / %"' else AXES=`$TAIL -1 $PLOTLIST1|awk '/_TRANS/{print "RATE"}'` if [ $AXES ] then XLABEL='"Number of Processors"' YLABEL='"Performance / (kw_64/s)"' else AXES=`$TAIL -1 $PLOTLIST1|awk '/_POLY/{print "RATE"}'` if [ $AXES ] then XLABEL='"Computational Intensity / (flop/mref)"' YLABEL='"RINF / (Mflop/s)"' else XLABEL='"Number of processors"' YLABEL='"Performance / (Mflop/s)"' 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 QS_XMIN=`echo $QS_XMIN|sed "s/%2B/+/"` QS_XMAX=`echo $QS_XMAX|sed "s/%2B/+/"` QS_YMIN=`echo $QS_YMIN|sed "s/%2B/+/"` QS_YMAX=`echo $QS_YMAX|sed "s/%2B/+/"` echo "set terminal postscript portrait $PS_COLOUR '"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 if [ $QS_XKEY ] then if [ $QS_YKEY ] then QS_XKEY=`echo $QS_XKEY|sed "s/%2B/+/"` QS_YKEY=`echo $QS_YKEY|sed "s/%2B/+/"` echo "set key $QS_XKEY,$QS_YKEY" >> $GNUFILE COUNT=11 fi else COUNT=10 fi echo 'plot \' >> $GNUFILE cd $PLOT_ROOT for NAMES in `cat $PLOTLIST1` do COUNT=`expr $COUNT + 1` # TITLE=`echo $NAMES|cut -f3 -d\/` # TITLE=`cat $NAMES|awk '/##machine/{print $0}'|sed "s/##machine://"` # TITLE=`echo $NAMES|cut -f3 -d\/|cut -f1,2 -d_|sed 's/_/ /'` 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//'` echo '"'$NAMES'"' title "'"$TITLE"'" with linespoints,'\' >> $GNUFILE done sed -e ${COUNT}'s/,\\//' $GNUFILE >$PLOTLIST rm $GNUFILE $GNUPLOT $PLOTLIST > $OUTFILE_PS 2>$ERRORFILE rm $PLOTLIST fi 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 $PLOTFILE_PS rm $ERRORFILE exit fi fi if [ $FORMAT = 'GIF' ];then #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 fi if [ $FORMAT = 'XBM' ];then cd $TEMP $PSTOXBM $OUTFILE_PS $OUTFILE_XBM >$ERRORFILE rm -f $OUTFILE_PS chmod ugo+wr $OUTFILE_XBM # # OUTPUT # cat << HTML GRAPH

HTML fi if [ $FORMAT = 'PS' ];then cat <View Postscript of Graph To load a postscript version of the graph into your local postscript viewer, select HERE


HTML fi if [ $FORMAT = 'TEXT' ];then cd $PLOT_ROOT for NAMES in `cat $PLOTLIST1` do echo '
' echo '
'
	cat $NAMES|sed "s/#!/Machine: <\/STRONG>/"|sed "s/#//g"
	echo '
' done rm $GNUFILE fi cat <
UP to GBIS Home Page
University of Southampton
High Performance Computing Centre

Submitted by Mark Papiani,
last updated 24 February 1995.

HTML rm $ERRORFILE