###############################################
## Example vanilla job submit description file
###############################################

## Enter the name of your executable application on the following line.
## If you want to start your application from within a script, you may
## simply enter the name of the shell (e.g. /bin/bash or /bin/tcsh) and
## give the name of the script as the input (see input line below).  You
## should use the vanilla universe unless your job has special requirements.
##
universe = vanilla
executable = huygens.exe

## Enter the command line arguments that go with each copy of your
## executable that you want to run.  You can include the special variable
## $(Process) and it will be substituted with the serial number of the
## process at run time.  To omit arguments, comment out this line.
##
arguments = -$(Process)

## Enter the names of your input and output files here.  Both "output" and
## "error" are outputs, with different kinds of messages being sent to each.
##
##                         W A R N I N G ! ! !
##    Be sure that any output files you specify here either already
##    exist with world write permission, or if they do not yet exist,
##    their destination directory has world write permission. 
##
#input = logs/stdin
output = logs/$(Process).stdout
error = logs/$(Process).stderr

## Enter the name of your log file on the following line.  This file will
## contain the latest information about the execution of your job.
##
log = huygens.log

## This section allows you to fetch output files that are produced during
## job execution back to your submit directory when the job is done.  Note
## that without this information, the system will clean up all of the files
## produced at the end of the job, leaving only the output, error, and log
## files specified above as results from your job.  If should_transfer_files
## is set to yes but transfer_output_files is not given, all files produced
## by the job are copied back to the submit directory at the end of the job.
## Note that the transfer_input_files must contain at least the name of the
## executable, or else the job will not be able to start.
##
##                         W A R N I N G ! ! !
##    Be sure that the permissions on the submit directory have world
##    write permission, or else any output files that are returned by
##    the job will be lost.
##
should_transfer_files = yes
when_to_transfer_output = on_exit

## You should not normally have to change the following.  They select
## which kinds of processors in the cluster are capable of running your
## job, which should include all of the following.
##
requirements = (Arch == "INTEL" || Arch == "X86_64") && (ParallelSchedulingGroup != "stats group") && (KFlops > 600000)
#requirements = (Arch == "INTEL" || Arch == "X86_64") && (KFlops > 600000)

## Specify what to do when your job finishes.  Normal job completion is
## indicated by an ExitCode value of zero.  Interruption of a running
## job is indicated by a non-zero value of ExitBySignal.  If your job
## completes successfully you should remove it from the queue, otherwise
## you may retry it up to some reasonable limit, after which you should
## place it on hold until you can come and deal with the problem.
##
OnExitRemove = (ExitCode==0)&&(ExitBySignal==FALSE)
OnExitHold = (OnExitRemove==0)&&(JobRunCount > 2)

## Specify here how many copies of your executable you would like to
## run.  Your application should have some way to ensure that each copy
## produces an independent run, perhaps through a non-repeating random
## number initialization scheme or using command line arguments (see
## "arguments" above) that are unique to each.
##
queue 100

