Snakemake executor plugin: htcondor PyPI - Version PyPI - License

The HTCondor Software Suite (HTCSS) is a software system that creates a High-Throughput Computing (HTC) environment. This environment might be a single cluster, a set of related clusters on a campus, cloud resources, or national or international federations of computers.


Install this plugin by installing it with pip or mamba, e.g.:

pip install snakemake-executor-plugin-htcondor


In order to use the plugin, run Snakemake (>=8.0) with the corresponding value for the executor flag:

snakemake --executor htcondor ...

with ... being any additional arguments you want to use.

The executor plugin has the following settings:


CLI argument






--htcondor-jobdir VALUE

Directory where the job will create a directory to store log, output and error files.


Further details

  • It is recommended to use the dedicated snakemake profile for HTCondor, which you can find here.

  • This plugin currently only supports job submission with a shared file system.

  • The jobs use the python binary of the environment that the user had when starting snakemake as the executable.

  • Error messages, the output of stdout and log files are written to htcondor-jobdir (see in the usage section above).

  • The job directive threads is used to set request_cpu command for HTCondor.

  • As default, the jobs will be executed with the same set of environment variables that the user had at submit time. If you don’t want this behavior, set the following in resources getenv: False.

  • For the job status, this plugin reports the values of the job ClassAd Attribute JobStatus.

  • To determine whether a job was successful, this plugin relies on htcondor.Schedd.history (see API reference) and checks the values of the job ClassAd Attribute ExitCode.

The following submit description file commands are supported (add them as user-defined resources): | Basic | Matchmaking | Matchmaking (GPU) | Policy | | —————– | —————- | ————————- | ————————– | | getenv | rank | request_gpus | max_retries | | environment | request_disk | require_gpus | allowed_execute_duration | | input | request_memory | gpus_minimum_capability | allowed_job_duration | | max_materialize | requirements | gpus_minimum_memory | retry_until | | max_idle | | gpus_minimum_runtime | | | | | cuda_version | |