clusterjob.backends.slurm module

class clusterjob.backends.slurm.SlurmBackend[source]

Bases: clusterjob.backends.ClusterjobBackend

SLURM Backend

Attributes:
  • name (str) – Name of the backend
  • extension (str) – Extension for job scripts
  • prefix (str) – The prefix for every line in the resource header
  • status_mapping (dict) – mapping of Slurm string status codes to clusterjob integer status codes
  • resource_replacements (dict) – mapping of the common clusterjob resource keys to command line options of the qsub command.
  • job_vars (dict) – mapping of core environment variables to Slurm-specific environment variables.
name = 'slurm'
extension = 'slr'
prefix = '#SBATCH'
cmd_submit(jobscript)[source]

Given a JobScript instance, return a sbatch command that submits the job to the scheduler, as a list of program arguments.

get_job_id(response)[source]

Given the stdout from the command returned by cmd_submit(), return a job ID

cmd_status(run, finished=False)[source]

Given a AsyncResult instance, return a command that queries the scheduler for the job status, as a list of command arguments. If finished=True, the scheduler is queried via sacct. Otherwise, squeue is used.

get_status(response, finished=False)[source]

Given the stdout from the command returned by cmd_status(), return one of the status code defined in clusterjob.status

cmd_cancel(run)[source]

Given a AsyncResult instance, return an scancel command that cancels the run, as a list of command arguments.

resource_headers(jobscript)[source]

Given a JobScript instance, return a list of lines that encode the resource requirements, to be added at the top of the rendered job script

replace_body_vars(body)[source]

Given a multiline string that is the body of the job script, replace the placeholders for environment variables with backend-specific realizations, and return the modified body