Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Currently a job can be run within one pool of placement sets.  These will come from the server, queue, or job.  The job's place=group overrides the queue's node_group_key which overrides the server's node_group_key.  Per-chunk grouping will work similarly.  If a chunk complex requests a group, it will override any other placement sets for the job.  If a job has multiple chunk complexes where some request a group and others do not, the chunk complexes that do not request a group will be placed over all nodes available to the job (e.g. if the job is in a queue with nodes associated with it, only those nodes).  It is invalid to to request place=group and per-chunk grouping.

Example:

NodesColorShape
1-2bluesquare
3-4bluetriangle
5-6redsquare
7-8redtriangle


Current:

If the server has node_group_key=color and a job requests place=group=shape, the job will be placed 

...

If the job requests per-chunk grouping, and any chunk can not fit, the entire job will span.  This is regardless if other chunks can fit in their placement sets.

Interaction with only_explicit_psets

The only_explicit_psets scheduler attribute tune the placement set creation.  If any node does not have a grouping resource set on it, it is usually added to a resource="" (e.g. color="") placement set.  If only_explicit_psets is true, then the resource="" placement set is not created, and those nodes are not available for placement.

There is no change in this behavior with per-chunk grouping.  If only_explicit_psets is true, then the resource="" placement set is not created for that chunk complex's placement pool.

Clarifications

The nodes used to create placement sets:

  • If the job is in a queue with nodes associated with it (node's queue attribute), only the nodes associated with the queue are available
  • If the job is not in a queue with nodes associated with it, but there are other queues with nodes associated with them, then all nodes that are not associated with queues are available
  • If there are no nodes associated with any queue, then all nodes are available.

Restrictions

  • Per-chunk grouping is incompatible with place=pack.  With place=pack, all chunks must be placed on one host.
  • Per-chunk grouping is incompatible with place=group.  You can either have per-job placement or per-chunk placement, but not both.