#!/bin/bash PROGNAME=${0##*/} # raven if [[ $HOSTNAME = rav* ]]; then SOLVER=solver7 WORD_LENGTH=5 WORD_FILE=../etc/solution-words-$WORD_LENGTH.txt THREADS=36 SHELLSCHEDULER=$HOME/dev/def/smalltools-private/bin/shell-scheduler OUTPUT_FILE=$PROGNAME-$SOLVER-$WORD_LENGTH.out PIPES_DIR=/run/user/58047/$PROGNAME.$$.pipes LOGS_DIR=/run/user/58047/$PROGNAME.$$.logs JOBS_FILE=$PROGNAME.$$.jobs # damson/sugo elif [[ $HOSTNAME =~ (damson|sugo) ]]; then SOLVER=solver7 WORD_LENGTH=1 WORD_FILE=../etc/solution-words-$WORD_LENGTH.txt THREADS=8 SHELLSCHEDULER=$HOME/dev/def/smalltools-private/bin/shell-scheduler OUTPUT_FILE=$PROGNAME-$SOLVER-$WORD_LENGTH.out PIPES_DIR=/tmp/$PROGNAME.$$.pipes LOGS_DIR=/tmp/$PROGNAME.$$.logs JOBS_FILE=$PROGNAME.$$.jobs else echo "$PROGNAME: ERROR: unhandled hostname" >&2 exit 1 fi echo -n "setup ... " >&2 mkdir $PIPES_DIR while read WORD; do echo "harness --pipe=$PIPES_DIR/$WORD.pipe --solver=$SOLVER --length=$WORD_LENGTH --setter-opts=\"--word=$WORD\"" done < $WORD_FILE > $JOBS_FILE echo "done" >&2 echo -n "starting up server ... " >&2 $SOLVER --server-start --length=$WORD_LENGTH > $SOLVER.log 2>&1 & SERVER_PID=$! sleep 10 echo "done (pid is $SERVER_PID)" >&2 echo -n "logging $(wc -l < $JOBS_FILE) jobs to $LOGS_DIR ... " >&2 $SHELLSCHEDULER --threads=$THREADS --logs-dir=$LOGS_DIR $JOBS_FILE echo "done" >&2 echo -n "shutting down server ... " >&2 $SOLVER --server-stop --length=$WORD_LENGTH wait $SERVER_PID echo "done" >&2 echo -n "merging results ... " >&2 grep -h "^Guesses:" $LOGS_DIR/* > $OUTPUT_FILE echo "done" >&2 echo -n "cleaning up ... " >&2 rmdir $PIPES_DIR rm -fr $LOGS_DIR rm -f $JOBS_FILE echo "done" >&2 # Extract the number of guesses for each word in the dictionary and # report some stats. ./analyse-results $OUTPUT_FILE