-
Notifications
You must be signed in to change notification settings - Fork 147
schedulers parameterized #1022
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
schedulers parameterized #1022
Conversation
|
This pull request was exported from Phabricator. Differential Revision: D71023681 |
76ef188 to
fce9143
Compare
|
This pull request was exported from Phabricator. Differential Revision: D71023681 |
kiukchung
left a comment
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.
I don't fully understand this change. It seems like you want torchx.schedulers.api.Scheduler interface to be able to deal with both AppDef and PipelineDef in the same API. For instance:
def schedule(desc: Union[AppDef, PipelineDef], ...)
If this is the case, I would discourage you from overloading the scheduler APIs in such a way.
I'd have to fully understand what the intent here is before recommending a good path forward. Happy to meet and discuss.
lgarg26
left a comment
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.
Accepting to unblock ongoing intergration.
Summary: Parameterize Scheduler This not only more precisely expresses it's type (previously was unspecified generic variant of AppDryRunInfo[T] where T was unspecified; not it can be fully specified); This also allows us to inject PipelineDryRunInfo for schedulers that are pipeline schedulers Reviewed By: lgarg26 Differential Revision: D71023681
fce9143 to
83bfe40
Compare
|
This pull request was exported from Phabricator. Differential Revision: D71023681 |
9814e75
into
meta-pytorch:main
Summary: The `torchx.schedulers.Scheduler` interface was made overly generic to overload the concept of an "orchestration" scheduler in #1022. DAG orchestration has never been something torchx should've supported natively. Instead torchx AppDefs can be adapted to an orchestrator framework's notion of a "NodeDefinition". This way users can use job definitions defined using torchx's AppDef as a node in a DAG to string together applications in a specific execution order. This PR/Diff reverts the over-genericized `torchx.schedulers.Scheduler` back to supporting `AppDef` and `AppDryRunInfo` as the primitives. Differential Revision: D87901987
Summary: The `torchx.schedulers.Scheduler` interface was made overly generic to overload the concept of an "orchestration" scheduler in #1022. DAG orchestration has never been something torchx should've supported natively. Instead torchx AppDefs can be adapted to an orchestrator framework's notion of a "NodeDefinition". This way users can use job definitions defined using torchx's AppDef as a node in a DAG to string together applications in a specific execution order. This PR/Diff reverts the over-genericized `torchx.schedulers.Scheduler` back to supporting `AppDef` and `AppDryRunInfo` as the primitives. Differential Revision: D87901987
Summary: The `torchx.schedulers.Scheduler` interface was made overly generic to overload the concept of an "orchestration" scheduler in #1022. DAG orchestration has never been something torchx should've supported natively. Instead torchx AppDefs can be adapted to an orchestrator framework's notion of a "NodeDefinition". This way users can use job definitions defined using torchx's AppDef as a node in a DAG to string together applications in a specific execution order. This PR/Diff reverts the over-genericized `torchx.schedulers.Scheduler` back to supporting `AppDef` and `AppDryRunInfo` as the primitives. Reviewed By: AbishekS Differential Revision: D87901987
Summary:
Parameterize Scheduler
This not only more precisely expresses it's type (previously was unspecified generic variant of AppDryRunInfo[T] where T was unspecified; not it can be fully specified); This also allows us to inject PipelineDryRunInfo for schedulers that are pipeline schedulers
Differential Revision: D71023681