flux-config-sched-fluxion-qmanager(5)

DESCRIPTION

The sched-fluxion-qmanager configuration table may be used to tune the queuing policies and parameters for the Fluxion graph-based scheduler.

This table may contain the following keys:

KEYS

queue-policy

(optional) String name of queuing policy to use. The supported policies are described in the QUEUING POLICIES section. The default is "fcfs".

The following keys in the optional [queue-params] table can be used to tune the general queuing parameters.

queue-params.max-queue-depth

(optional) Positive integer value that sets the maximum number of pending jobs that can be considered per scheduling cycle. The default is 1000000.

queue-params.queue-depth

(optional) Positive integer value that limits the number of pending jobs to consider per scheduling cycle. The default is 32. If it is larger than queue-params.max-queue-depth, it is set to queue-params.max-queue-depth instead.

The following keys in the optional [policy-params] table can be used to tune the parameters of certain queuing policies.

policy-params.max-reservation-depth

(optional) Only applied to the conservative or hybrid policy that must compute the minimum start time of running the higher-priority pending jobs that cannot be run due to currently insufficient resources. Positive integer value that sets the maximum number of such higher-priority pending jobs to consider per scheduling cycle. The default is 100000.

policy-params.reservation-depth

(optional) Only applied to the hybrid policy that must compute the minimum start time of running higher-priority pending jobs that cannot be run due to currently insufficient resources. Positive integer value that limits the number of such higher-priority pending jobs to consider per scheduling cycle. The default is 64. If it is larger than policy-params.max-reservation-depth, it is set to policy-params.max-reservation-depth instead.

QUEUING POLICIES

fcfs

First come, first served policy if the priority of pending jobs are same: i.e., jobs are scheduled and run by their submission order. If pending jobs have different priorities, they are serviced by their priority order.

easy

EASY-backfilling policy: If the highest-priority pending job cannot be run with fcfs because its requested resources are currently unavailable, one or more next high priority jobs will be scheduled and run as far as this will not delay the start time of running the highest-priority job.

conservative

CONSERVATIVE-backfilling policy: Similarly to easy, pending jobs can run out of order when the highest-priority job cannot run because its requested resources are currently unavailable. However, this policy is more conservative as a lower priority job can only be backfilled and run if and only if this will not delay the start time of running any pending job whose priority is higher than the backfilling job.

hybrid

HYBRID-backfilling policy: This is an optimization of conservative where a lower priority job can only be backfilled and run if and only if this will not delay the start time of running N pending jobs whose priority is higher than the backfilling job. N can be configured by the policy-params.reservation-depth parameter: see policy-params.reservation-depth

EXAMPLE

[sched-fluxion-qmanager]

# queuing policy type
queue-policy = "hybrid"

# general queue parameters
[sched-fluxion-qmanager.queue-params]

max-queue-depth = 1000000
queue-depth = 8192

# queue policy parameters
[sched-fluxion-qmanager.policy-params]

max-reservation-depth = 100000
reservation-depth = 64

RESOURCES

Flux: http://flux-framework.org

SEE ALSO

flux-config(5)