cape.cfdx.queue: Manage PBS and Slurm interfaces¶
This module contains direct interface for functions like qsub and
qstat. These methods provide an easy interface to command-line PBS
utilities and also provide some access to the PBS information. For
example, the method pqsub() writes a file jobID.dat with the
PBS job number of the submitted job.
- class cape.cfdx.queue.QStat(active: bool = True, scheduler: str = 'pbs', timeout: float | int = 180.0)¶
Collection of PBS/Slurm job statuses
- Call:
>>> q = QStat(active=True, scheduler="pbs", timeout=180.0)
- Inputs:
- Keys:
- q[jobid]:
dict Status for job with name PBS/Slurm job ID jobid
- q[jobid]:
- Attributes:
- check_job(j: str | int, u: str | None = None) dict | None¶
Check status of given job (owned by specific user)
- cape.cfdx.queue.get_job_id() str | None¶
Get job ID of currently running job (if any)
- Call:
>>> job_id = get_job_id()
- Outputs:
- job_id:
str|None Current PBS/Slurm job ID, if found
- job_id:
- Versions:
2024-06-12
@ddalle: v1.0
- cape.cfdx.queue.open_jobfile_r() IOBase | None¶
Open the best available PBS/Slurm job ID file for reading
- Call:
>>> fp = open_jobfile_r()
- Outputs:
- fp:
IOBase|None File handle, open for reading, if available
- fp:
- Versions:
2024-06-13
@ddalle: v1.0
- cape.cfdx.queue.openfile_w(fname: str, mode: str = 'w') IOBase¶
Open a file for writing, creating folder if needed
- cape.cfdx.queue.pqsub(fname: str, fout: str = 'jobID.dat') str¶
Submit a PBS script and save the job number in an fout file
- Call:
>>> pbs = pqsub(fname, fout="jobID.dat")
- Inputs:
- Outputs:
- pbs:
int|None PBS job ID number if submission was successful
- pbs:
- Versions:
2014-10-06
@ddalle: v1.02021-08-09
@ddalle: v1.1; allow non-int PBS IDs
- cape.cfdx.queue.psbatch(fname: str, fout: str = 'jobID.dat') str¶
Submit a PBS script and save the job number in an fout file
- cape.cfdx.queue.qstat(u: str | None = None, j: str | int | None = None, server: str | None = None, timeout: float | str = 10.0) dict¶
Call
qstatand process information- Call:
>>> jobs = qstat(u=None, j=None, server=None)
- Inputs:
- Outputs:
- jobs:
dict Information on each job,
jobs[jobID]for each submitted job
- jobs:
- Versions:
2014-10-06
@ddalle: v1.02015-06-19
@ddalle: v1.1; addqstat -Joption2025-05-03
@ddalle: v1.2; add server
- cape.cfdx.queue.qsub(fname: str) str¶
Submit a PBS script and return the job number
- Call:
>>> jobid = qsub(fname)
- Inputs:
- fname:
str Name of PBS script to submit
- fname:
- Outputs:
- jobid:
str|None PBS job ID if submission was successful
- jobid:
- Versions:
2014-10-05
@ddalle: v1.0- 2021-08-09
@ddalle: v2.0 Support Python 3
Use full job ID (not just
int) as a backup
- 2021-08-09
2023-11-07
@ddalle: v2.1; test forqsub2024-06-18
@ddalle: v3.0; string output
- cape.cfdx.queue.squeue(u: str | None = None, j: str | int | None = None, server: str | None = None) dict¶
Call
squeueand process information- Call:
>>> jobs = squeue(u=None, j=None)
- Inputs:
- Outputs:
- jobs:
dict Info on each job,
jobs[jobID]for each submitted job
- jobs:
- Versions:
2023-06-16
@ddalle: v1.02024-06-18
@ddalle: v1.1; add J2025-05-03
@ddalle: v1.2; switch J -> j, add server