Constraints are set to restrict which node features are required for a given job. Use -C or --constraint = <list> when submitting your job to specify a constraint.
The following operators can be used to combine multiple features when specifying constraints.
|feature&feature||AND||Nodes allocated for the job must have both features||lac&ib|
|feature|feature||OR||Each node allocated for the job must have one feature or the other.||lac|vim|
|[feature|feature]||XOR||All nodes allocated for the job must have either one feature or the other. Useful for multi-node shared memory jobs.||[intel16|intel18]|
Multi-node jobs that use constraints to control which cluster hardware they run on must use the XOR syntax to specify multiple clusters, e.g. '[intel18|intel16]', and not the OR syntax, e.g. 'intel18|intel16'. Multi-node jobs using OR instead of XOR may experience a considerable performance decrease or may be killed by HPCC staff without warning.
In most cases where OR is used, the job would be better served by XOR. For this reason, constraints using OR are automatically re-written to use XOR. If an OR constraint is required, prepend the constraint request with 'NOAUTO:'.
Automatic Job Constraints
When no constraints are specified, a job will get a default constraint of [intel14|intel16|intel18]. This ensures the job runs on only one type of cluster hardware. User specified constraints that don't use the feature|feature or [feature|feature] syntax are automatically combined with [intel14|intel16|intel18]. If a more complex constraint is required, 'NOAUTO:' must be prepended to the constraint.
|User Specified Constraint||Literal Constraint||Effective Constraint||Result|
|None||[intel14|intel16|intel18]||[intel14|intel16|intel18]||Run this job on nodes that are all the same cluster type|
|--constraint=lac||lac&[intel14|intel16|intel18]||lac||Run this job on only Laconia nodes|
|lac&ib&[intel14|intel16|intel18]||lac&ib||Run this job on only nodes with both lac and ib features|
|[intel16|intel18]||[intel16|intel18]||Run this job on nodes that are either all intel16 or all intel18|
|lac|vim||lac|vim||Run this job on nodes the each have either the lac or vim feature|
|[intel16&ib|intel18&ib]||[intel16&ib|intel18&ib]||Run this job on nodes that are either all intel16&ib or all intel18&ib|