Altair asked me to start a new post on the topic of PP-507. A post to start clean and take a look at node filtering.
I talked with Dale Talcott and we came up with a list of high-level descriptions of qsub select scenarios. The scheduling context we’re dealing with:
a. Jobs do not share nodes.
b. We have 5+ different node models in our cluster, they differ by number of cores and amount of memory.
At present our users must specify which model(s) their job needs, they may use 2 or more models in a single job.
High-level description of single chunk scenarios
-
Select N nodes, PBS may choose any nodes that satisfy the request (no restriction on which models are chosen).
e.g. select=22:ncpus=16
-
Select N nodes, PBS must choose nodes that are all the same model.
-
Place N ranks, PBS may choose any nodes that satisfy the request (no restriction on which models are chosen).
e.g. select=352:ncpus=1
-
Place N ranks, PBS must choose nodes that are all the same model.
High-level description of two chunk scenarios
-
chunk1: Select M nodes, PBS may choose any nodes that satisfy the request (no restriction on which models are chosen).
chunk2: Select N nodes, PBS may choose any nodes that satisfy the request (no restriction on which models are chosen). -
chunk1: Select M nodes, PBS may choose any nodes that satisfy the request (no restriction on which models are chosen).
chunk2: Select N nodes, PBS must choose nodes that are all the same model. -
chunk1: Select M nodes, PBS must choose nodes that are all the same model.
chunk2: Select N nodes, PBS must choose nodes that are all the same model (but may differ from chunk1). -
chunk1: Select M nodes, PBS must choose nodes that are all the same model.
chunk2: Select N nodes, PBS must choose nodes that are all the same model as chunk1. -
-
-
- Same as 5-8, but chunk 1 is placing M ranks and chunk2 is placing N ranks.
-
-
Given those scenarios, how might a user put together their select statement to get what they're asking for?
Additional considerations
i. We are working toward a new filesystem feature for our users that will take “extra” memory on their nodes and make it available as a distributed ramfs. This is likely a straightforward arrangement when jobs request N nodes, users just need to ask for enough memory to handle their rank/process needs and the ramfs. It gets more complicated when users are instead asking for N ranks to be placed as in 9-12 above. We currently plan to place the burden on users to craft their select in the right way, but we wonder if Altair has suggestions on how this could be made easier for users with current PBS and if there’s some future work here to make it yet easier/more intuitive.
-Greg