1. Documentation for HTCondo...
  2. Job Submission File

Job Submission File

HTCondor uses the symbol # for comments. Everything written after that symbol is ignored. Therefore do not write comments and commands in the same line.
To define a variable, just choose a name (case-insensitive) and assign a value to it (e.g. N = 5, name = „example“)
To get the value of a variable, use the syntax $(varName), both the symbol $ and parentheses ( ) are mandatory.

HTCondor submission file commands

  • universe – runtime enviroment; vanilla by default
  • executable – the name and path of the executable to be run – mandatory
  • arguments – specify options and flags for the executable
  • requirements – for any special needs, e.g. specific worker nodes, specific CPU features
  • getenv – assign „True“ to import shell env settings
  • output – the name and path of the stdout file
  • error – the name and path of the stderr file
  • log – the name and path of the log file
  • request_cpus – number of CPUs
  • request_memory – amount of total RAM
  • concurrency_limits – a limit to the number of concurrent running jobs which are using NFS servers
  • notification – when to send a notification; could be set to Never, Complete, Error or Always; Never by default
  • notify_user – changes the e-mail address used to send notifications
  • queue – submits the job; it should be the last command – mandatory

An example of job_submission_file structure:

# ------------------------
# HTCondor Job Submission File
# ------------------------

universe                = vanilla

executable              = test.sh
arguments               = $(ClusterID) $(ProcId)

# stdout, stderr and log files
output                  = output/test.$(ClusterId).$(ProcId).out
error                   = error/test.$(ClusterId).$(ProcId).err
log                     = log/test.$(ClusterId).log

# required resources
request_cpus            = 1
request_memory          = 5G
request_disk            = 20G

+MaxRuntime             = 7200

accounting_group        = group_auger.user

concurrency_limits      = nfs18:1

# notifications via e-mail
notification            = Complete
notify_user             = username@fzu.cz

queue

See man pages for more detailed information about available job_submission_file attributes

man condor_submit

To avoid rerun of your job in case of any failure add to the job_submission_file:

periodic_remove = (JobStatus == 1 && NumJobStarts > 0)