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
qstat
and 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 -J
option2025-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 forqsub
2024-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
squeue
and 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