Open alcf-pyup-safety-purchase opened 6 months ago
The main devs can comment, but what I think is confusing (that maybe you are getting at) is the default changes depending on being within or outside of a slot. It seems that outside of a task slot (unless otherwise specified) it is false
If unset, the default value for exclusive SHALL be false for vertices that are not within a task slot.
But within a task slot (example 1.4) it defaults to true (why we get exclusive nodes there)
The default value for exclusive SHALL be true for task slots (type: slot) and their associated resources.
And that's why for 1.6 and 1.7 we have to explicitly set to false - it's in a task slot so it would otherwise default to true.
1.4 does not need exclusive: true because it's the default. And not all examples are exclusive because it depends where the node is defined relative to the slot. For example, the node in 2.4 is above the slot, so it's exclusive would default to false.
@alcf-pyup-safety-purchase can you give a suggestion for a pair of examples you would think more clear? I think I understand what they are showing but want to respond to your feedback.
On this page: https://flux-framework.readthedocs.io/projects/flux-rfc/en/latest/spec_14.html#section-1-node-level-requests
The use case 1.4 description says:
Request an exclusive allocation of 4 nodes that have at least two sockets and 4 cores per socket:
. I initially thought it was in error because it is missing"exclusive": True
. However, the slot description says this:A task slot SHALL have at least one edge specified using with:, and the resources associated with a slot SHALL be exclusively allocated to the program described in the jobspec, unless otherwise specified in the exclusive field of the associated resource.
. That suggests theexclusive
tag isn't required and the example will give you exclusive access, but I would argue it is a bad example in that case since all of the examples were exclusive. You should have the example demonstrate theexclusive
tag in a non-redundant way.