-
Notifications
You must be signed in to change notification settings - Fork 13
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
RFC31: Jobspec V2 #229
base: master
Are you sure you want to change the base?
RFC31: Jobspec V2 #229
Conversation
Based on discussion in #624, if we do restrict the resource set, it should also include hardware threads. |
At the risk of a scope creep, do we want to add memory capacity into V2? Our workflow users already want to specify memory as contrasts. How about sockets? How about SSDs? (probably still far fetched?) |
Yeah, I'm partial to not restricting the resource set for two reasons:
Downside being that If we do restrict the resource set, I don't think adding If we explicitly add |
Per the coffee discussion:
|
We have decided to restrict the resource set to:
Would it make sense to just say that the ordering is limited to valid orderings produced by hwloc? |
During a coffee hour, @eleon requested that |
During a ☕ hour call, we discussed pushing this forward again. At a September Exaworks meeting, I made a slide that attempts to summarize the V2 changes as follows: Jobspec V2 opens up supported resource set and orderings:
|
Yes, it feels like this will be something that can immediately impact our collaboration with 1) HPE, 2) OpenShift and 3) workflow community including ExaWorks. |
d405d72
to
528e150
Compare
Also copy most use cases from spec_25's data. The last example (2.5) comes from spec_14.
mainly designed to handle the flexibility provided by the new `flux run` and `flux submit` interfaces - relaxes restrictions on the ordering of resources, especially in regards to the slot (i.e., a node can be inside or outside a slot). - adds exclusive flag - adds per_resource count key for late-binding of tasks to resources - adds job dependencies Update examples to meet Jobspec V2 specification, including adding a new use case example to highlight the capabilities of V2.
improves the separation between use-cases by making the use-case headers distinct from the headers for "existing examples" and "jobspec YAML"
Problem: RFC25 references a section that only exists in the canonical jobspec specification (RFC14). Solution: make an explicit label for the section and reference it from RFC25 with `:ref:`.
528e150
to
def0a38
Compare
@@ -64,7 +66,7 @@ | |||
{ "$ref": "#/definitions/resource_vertex_base" }, | |||
{ | |||
"properties": { | |||
"type": { "not": { "enum": ["slot"] } } | |||
"type": { "enum": ["node", "gpu", "core"] } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to expand this list of valid types.
Took another pass on this PR today. Flipping this out of draft status since I think the wording is ready to be reviewed. As the OP states, the last big remaining TODOs (that I'm aware of) are to add an additional example or two that is compelling for what V2 can do over V1 and tightening up the jsonschema file a little bit. |
Add a new Jobspec version. Mainly designed to handle the flexibility provided by the new
flux run
andflux submit
interfaces in flux-framework/flux-core#2323.Major changes from V1:
Still TODO:
Things that need more discussion (also marked within the text as a TODO warning):
core
(e.g.,slot>node
)?Things within the RFC text that I just need to go back and handle (also marked within the text as a TODO warning):
per_resource
values to some list of resources(maybe only those in the jobspec being validated/written)?
More tightening up of the json.schema (not sure ultimately how important this is now that we are using the python Jobspec class for validation in flux-core).
Add additional compelling use case examples that demonstrate the difference between this version and V1. In particular, how the loosening of the ordering is beneficial.