HTCondor

HTCondor is a specialized workload management system for compute-intensive jobs and it is supported by REANA alongside primary job execution backend Kubernetes and Slurm.

Authentication

In order to use CERN HTCondor cluster you need to be authenticated using Kerberos. Generate keytab file and upload it and your CERN username as secrets to REANA.

Specifying compute backend

In order to execute certain steps of a workflow on the CERN HTCondor cluster you must specify htcondorcern as the step's execution backend in the workflow specification.

   # Serial example
   ...
   steps:
      - name: reana_demo_helloworld_htcondorcern
        environment: 'python:2.7-slim'
        compute_backend: htcondorcern
        commands:
            - python helloworld.py

Examples for CWL and Yadage can be found in REANA example - "hello world"

Aid job scheduling

HTCondor uses priorities to allocate machines to run jobs. With REANA there are two values you can specify to help schedule a job appropriately.

To set the maximum runtime of a job you must specify htcondor_max_runtime. This can either be set directly in seconds or by assigning it a "flavour". Note that jobs exceeding the maximum runtime will be terminated. The possible job flavours are:

espresso     = 20 minutes
microcentury = 1 hour
longlunch    = 2 hours
workday      = 8 hours
tomorrow     = 1 day
testmatch    = 3 days
nextweek     = 1 week
   # Serial example
   ...
   steps:
      - name: reana_demo_helloworld_htcondorcern
        environment: 'python:2.7-slim'
        compute_backend: htcondorcern
        htcondor_max_runtime: '3600'
        commands:
            - python helloworld.py
   # Serial example
   ...
   steps:
      - name: reana_demo_helloworld_htcondorcern
        environment: 'python:2.7-slim'
        compute_backend: htcondorcern
        htcondor_max_runtime: 'espresso'
        commands:
            - python helloworld.py

If you are part of a HTCondor accounting group and you would like to set accounting to a per-group basis, you must specify htcondor_accounting_group.

   # Serial example
   ...
   steps:
      - name: reana_demo_helloworld_htcondorcern
        environment: 'python:2.7-slim'
        compute_backend: htcondorcern
        htcondor_accounting_group: 'group_physics'
        commands:
            - python helloworld.py