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

This table may contain the following keys:



(optional) String name of match policy to use. The supported match polices are described in the RESOURCE MATCH POLICIES section. The default is "first".


(optional) String name of match format to use. "rv1" and "rv1_nosched" are currently supported. When a job is allocated, its resource set is encoded in RFC 20 Resource Set Specification Version 1. It has an optional scheduling key and this is only encoded by "rv1". By omitting the scheduling key, "rv1_nosched" will result in higher scheduling performance. However, this format will not contain sufficient information to reconstruct the state of sched-fluxion-resource on module reload (as required for system instance failure recovery). The default is "rv1_nosched".


(optional) Comma-separated list of resource types to load with the hwloc reader. When Flux is instantiated in single-user mode with a foreign workload manager (e.g., IBM LSF, SLURM, etc), sched-fluxion-resource can discover the target resources by using hwloc. This list allows sched-fluxion-resource to load only the resources of the specified types from our hwloc reader as needed for scheduling.


(optional) Integer value that reserves memory to store the specified number of graph vertices in order to optimize resource-graph loading performance. Recommended for handling large-scale systems. The value must be a non-zero integer up to 2000000.


(optional) Comma-separated list of graph-search filters to accelerate match operations. Each filter is expressed such that a High-Level (HL) resource vertex can track the aggregate state of the Low-Level (LL) resources residing under its subtree graph. If a jobspec requests 1 compute node with 4 cores, and the visiting compute-node vertex has only a total of 2 available cores in aggregate at its subtree, this filter allows the traverser to prune a further descent to accelerate the search. The format must conform to <HL-resource1:LL-resource1[,HL-resource2:LL-resource2...]...]>. Use the ALL keyword for HL-resource if you want LL-resource to be tracked at all of its ancestor HL-resource vertices. The default is "ALL:core".



Select resources with low ID first (e.g., core0 is selected first before core1 is selected).


Select resources with high ID first (e.g., core15 is selected first before core14).


Select resources with lowest compute-node ID first; otherwise the low policy (e.g., for node-local resource types).


Select resources with highest compute-node ID first; otherwise the high policy (e.g., for node-local resource types).


A node-exclusive scheduling whose behavior is identical to lonode except each compute node is exclusively allocated.


A node-exclusive scheduling whose behavior is identical to hinode except each compute node is exclusively allocated.


Select the first matching resources and stop the search



# system instance will use node-exclusive
# scheduling (with nodes of low node IDs
# selected first).
match-policy = "lonodex"

# system-instance will use full-up rv1 writer
# so that R will contain scheduling key needed
# for failure recovery.
match-format = "rv1"


Flux: http://flux-framework.org

RFC 20: Resource Set Specification Version 1: https://flux-framework.rtfd.io/projects/flux-rfc/en/latest/spec_20.html