How do I understand these two attributes?
sched_cycle_length = 00:20:00
scheduler_iteration = 600
How do I understand these two attributes?
sched_cycle_length = 00:20:00
scheduler_iteration = 600
Reference: https://2026.help.altair.com/2026.0/PBS%20Professional/PBS2026.0.pdf
scheduler_iteration and sched_cycle_length are both scheduler attributes that manage the timing of scheduling cycles, but they control different aspects of the process.
scheduler_iteration (Frequency): : attribute defines the time interval between the start of scheduling cycles: It acts as a timer to ensure the scheduler periodically checks the queue for jobs that can be run, even if the server hasn’t been triggered by new submissions or job completions
sched_cycle_length (Maximum Duration): The sched_cycle_length attribute sets a limit on how long a single scheduling cycle is allowed to run . It is a safety mechanism that instructs the scheduler to terminate its current cycle if the work (examining and running jobs) exceeds this specified duration
sched_cycle_length : one-day bus pass
scheduler_iteration: the number of bus journeys you have taken during that day , each journey is like trying to scheduled jobs.[ Scheduler iterations happen within the scheduling cycle ]
example1:
[ Scheduler Cycle Starts ]
scheduler_iteration 1
scheduler_iteration2
scheduler_iteration 3
[ Scheduler Cycle Ends ]
<─── sched_cycle_length ───>
[ Next Scheduler Cycle Starts ]
scheduler_iteration 1
scheduler_iteration 2
[ Scheduler Cycle Ends ]
example 2:
If you check your scheduler logs:
01/13/2026 20:35:47;0080;pbs_sched;Req;;Starting Scheduling Cycle
01/13/2026 20:35:47;0080;pbs_sched;Job;5104.pbsserver;Considering job to run
01/13/2026 20:35:47;0040;pbs_sched;Job;5104.pbsserver;Job run
01/13/2026 20:35:47;0080;pbs_sched;Job;5105.insightpro;Considering job to run
01/13/2026 20:35:47;0040;pbs_sched;Job;5105.pbsserver;Job run
01/13/2026 20:35:47;0080;pbs_sched;Job;5106.pbsserver;Considering job to run
01/13/2026 20:35:47;0040;pbs_sched;Job;5106.pbsserver;Job run
01/13/2026 20:35:47;0080;pbs_sched;Job;5107.pbsserver;Considering job to run
01/13/2026 20:35:47;0040;pbs_sched;Job;5107.pbsserver;Job run
01/13/2026 20:35:47;0080;pbs_sched;Req;;Leaving Scheduling Cycle
.
.
01/13/2026 20:35:47;0080;pbs_sched;Req;;Starting Scheduling Cycle
01/13/2026 20:35:47;0080;pbs_sched;Req;;Leaving Scheduling Cycle
20:35:47 [Cycle starts]
20:35:47 [Cycle ends immediately]
(waiting up to 20 minutes = sched_cycle_length)
~20:55:47 [Next cycle allowed]
I’m still confused:
The default value for sched_cycle_length is 20 minutes, and the default value for scheduler_iteration is 600 seconds.
Submitting a job immediately triggers scheduling, starting a scheduling cycle. The maximum runtime of this cycle is limited by the sched_cycle_length attribute. After this time, the scheduling cycle ends. If any jobs are not yet scheduled, they wait for the time set by the scheduler_iteration attribute before being processed in the next scheduling cycle, it waits 600 seconds.
However, I continuously submit a large number of jobs. Some jobs start executing, while others are queued due to insufficient resources. But subsequently, as long as resources are sufficient, some jobs in Q state are immediately scheduled for execution, and other jobs are constantly being submitted and queued. I don’t perceive any waiting time associated with these two attributes. Why is this? I never feel the need to wait 20 minutes + 600 seconds for a job to be scheduled for execution. Whether a job executes depends solely on resource availability.
The PBS scheduler is event driven and not purely time driven.
You can think sched_cycle_length as the wall clock of one scheduling cycle (example of one day bus pass).. It is can thought of a safety mechanism , you can hit the large schedu_cycle_length say when there are are lot of server_dyn_res scripts, million of jobs , too many policies .
Referece: https://2026.help.altair.com/2026.0/PBS%20Professional/PBS2026.0.pdf
You should see this with OpenPBS because sched_cycle_length and scheduler_iteration are just higher limits, not forced delays. The planner tries to run any job that has resources right away, so jobs that are waiting in line can start right away. The 20min and 600s only matter if the dispatcher is idle or has reached its cycle limit. When resources are available, jobs are not slowed down. Think of them more as safety timers than as times to wait.