#!/bin/sh
#
# Usage: run_fast
# Compiles and runs the programs described in Section 4
# Independent programs can run in parallel on different hosts,
# if the variables HOST1, HOST2, and HOST3 are set appropriately.
# Sends output of each program by e-mail

###### fastest hosts, used for long-running programs:
HOSTS1="tanya"

###### reasonably fast hosts:
HOSTS2="gaston chebyshev gottlob carl bernard max rene"

###### hosts used for short-running programs:
HOSTS3="naomi papu linda weyl elle"

DIR=`pwd | sed 's/\/tmp_mnt//'`

choose $HOSTS2 - $DIR/prun $DIR initial &
after initial.done - choose $HOSTS3 - $DIR/prun $DIR checkgap &
after initial.done - choose $HOSTS2 - $DIR/prun $DIR matrices &
after initial.done - choose $HOSTS3 - $DIR/prun $DIR bounds &
after initial.done - choose $HOSTS1 - $DIR/prun $DIR mmfirst &
after matrices.done - choose $HOSTS3 - $DIR/prun $DIR dmmnorm &
after matrices.done bounds.done mmfirst.done \
      - choose $HOSTS1 - $DIR/prun $DIR mmrest &
after mmrest.done - choose $HOSTS2 - $DIR/prun $DIR contract &
after contract.done - choose $HOSTS2 - $DIR/prun $DIR zcheck &
after zcheck.done - choose $HOSTS2 - $DIR/prun $DIR divide &

choose $HOSTS3 - $DIR/prun $DIR mkpoly &
choose $HOSTS2 - $DIR/prun $DIR mkcoeff &
after initial.done mkpoly.done mkcoeff.done \
      - choose $HOSTS2 - $DIR/prun $DIR kkiter &
after kkiter.done - choose $HOSTS2 - $DIR/prun $DIR kkmore &
after kkmore.done - choose $HOSTS1 - $DIR/prun $DIR dkkmake &
after zcheck.done dkkmake.done - choose $HOSTS2 - $DIR/prun $DIR dkkcheck &

after checkgap.done dkkcheck.done divide.done dmmnorm.done \
      - eval "echo QED | mail $USER" &

