Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use case example 1.4 is confusing or in error #269

Open
alcf-pyup-safety-purchase opened this issue Apr 24, 2024 · 1 comment
Open

Use case example 1.4 is confusing or in error #269

alcf-pyup-safety-purchase opened this issue Apr 24, 2024 · 1 comment

Comments

@alcf-pyup-safety-purchase

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 the exclusive 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 the exclusive tag in a non-redundant way.

@vsoch
Copy link
Member

vsoch commented Apr 24, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants