Constraints are features that the Koa administrators use to tag different features available to the different computing nodes that make up Koa. These become important in the case of Koa as it is a highly heterogeneous cluster, which without constraints would require us to either break the resources up into many smaller partitions and potentially limited the utility of Koa for users that don't have a preference to what type of hardware they are running on or have access to. Constraints allows us to keep the partitions to a minimum, while still allowing users the flexibility to only pick and choose the type of hardware their jobs run on.
The types of features we mark with constraint include:
Processor manufactures and series
This is important if you are compiling code for a specific processor
GPU manufacture and series
The selection of a GPU constraint can be used in conjunction with the gres to select any type of GPU. This allows you to allow the scheduler to select from one or more type of GPUs, without you explicitly asking for a type through the gres option.
Operators
Constraints can be provided as just a single value, or a boolean expression in which multiple values are utilized and joined with the AND and OR operators.
Operator Function | Operator Symbol | Example |
---|---|---|
Named Value | #SBATCH --constraint=“ib_hdrintel” | |
AND | & (ampersand) | #SBATCH --constraint=“skylake&ib_hdr” |
OR | | (pipe) | #SBATCH --constraint=“turing|volta” |
More advanced operators can be found in the slurm manual under the sbatch command.
Available Constraints
CPU
x86
intel
sapphire_rapids
ice_lake
casecade_lake
skylake
broadwell
haswell
ivy-bridge
amd
epyc
genoa
rome
Graphical Processing Units
gpu
nvidia
tesla
ada
ampere
volta
amperehopper
quadro
ampere
turing
geforce
turing
Networking
ib_hdr