Overview

PyCondor is a tool to help build and submit workflows to HTCondor in a straight-forward manner with minimal hassle. The primary functionality of PyCondor is implemented in the Job and Dagman objects.

Job objects represent an executable (e.g. a shell command, Python script, etc.) that you would like to run on an HTCondor cluster. While Dagman (short for directed acyclic graph manager) objects are a collection of Jobs to be run. In addition to acting as a collection of Jobs, Dagman objects also allow you to

  • Specify dependencies between Jobs (e.g. parent / child relationships)
  • Retry failed Jobs
  • Throttle the number of running Jobs
  • Etc.

These features, in particular specifying inter-job dependencies, allow for the construction of complex workflows.

Why PyCondor?

HTCondor is a an open-source workload management system for high-throughput computing tasks. It’s an incredibly useful and versatile tool. However, the process of submitting jobs to HTCondor, especially in complex worflows where there are inter-job dependencies, can quickly become both tedious and intricate. PyCondor helps streamline the job submission process by providing

  • A simple, user-friendly API
  • Built-in functionality to automate common tasks
  • Familiar terminology

For a walkthrough of an example workflow using PyCondor see the Basic Workflow page.