You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CodeFlareSDK_Design_Doc.md
+6-6
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
5
5
The primary purpose for the CodeFlare SDK is to provide a pythonic interaction layer between a user and the CodeFlare Stack (a set of services that enable advanced queuing, resource management and distributed compute on a kubernetes cluster).
6
6
7
-
The reason that this SDK is needed is due to the fact that many of the benefits associated with the CodeFlare stack are aimed at making the work of data scientists simpler and more efficient. However, since all parts of the CodeFlare stack are separate Kubernetes services, there needs to be something that unifies the interactions between the user and these separate services. Furthermore, we do not expect the average user to be experienced working with kubernetes infrastructure, and want to provide them with a python native way of interacting with these services.
7
+
The reason that this SDK is needed is due to the fact that many of the benefits associated with the CodeFlare stack are aimed at making the work of data scientists simpler and more efficient. However, since all parts of the CodeFlare stack are separate Kubernetes services, there needs to be something that unifies the interactions between the user and these separate services. Furthermore, we do not expect the average user to be experienced working with kubernetes infrastructure, and want to provide them with a python native way of interacting with these services.
8
8
9
9
The SDK should support any operation that a user would need to do in order to successfully submit machine learning training jobs to their kubernetes cluster.
10
10
@@ -24,11 +24,11 @@ The CodeFlare SDK is a python package that allows a user to programmatically def
24
24
25
25
In order to achieve this we need the capacity to:
26
26
27
-
* Generate valid appwrapper yaml files based on user provided parameters
28
-
* Get, list, watch, create, update, patch, and delete appwrapper custom resources on a kubernetes cluster
27
+
* Generate valid AppWrapper yaml files based on user provided parameters
28
+
* Get, list, watch, create, update, patch, and delete AppWrapper custom resources on a kubernetes cluster
29
29
* Get, list, watch, create, update, patch, and delete RayCluster custom resources on a kubernetes cluster.
30
30
* Expose a secure route to the Ray Dashboard endpoint.
31
-
* Define, submit, monitor and cancel Jobs submitted via Torchx. TorchX jobs must support both Ray and MCAD-Kubernetes scheduler backends.
31
+
* Define, submit, monitor and cancel Jobs submitted via TorchX. TorchX jobs must support both Ray and MCAD-Kubernetes scheduler backends.
32
32
* Provide means of authenticating to a Kubernetes cluster
33
33
34
34

@@ -51,7 +51,7 @@ Finally we will use the Kubernetes python client to delete the AppWrapper via `C
51
51
52
52
### Training Jobs:
53
53
54
-
For the submission of Jobs we will rely on the [TorchX](https://pytorch.org/torchx/latest/) job launcher to handle orchestrating the distribution of our model training jobs across the available resources on our cluster. We will support two distributed backend schedulers: Ray and Kuberentes-MCAD. Torchx is designed to be used primarily as a CLI, so we will wrap a limited subset of its functionality into our SDK so that it can be used as part of a python script.
54
+
For the submission of Jobs we will rely on the [TorchX](https://pytorch.org/torchx/latest/) job launcher to handle orchestrating the distribution of our model training jobs across the available resources on our cluster. We will support two distributed backend schedulers: Ray and Kuberentes-MCAD. TorchX is designed to be used primarily as a CLI, so we will wrap a limited subset of its functionality into our SDK so that it can be used as part of a python script.
55
55
56
56
Users can define their jobs with `DDPJobDefinition()` providing parameters for the script they want to run as part of the job, the resources required for the job, additional args specific to the script being run and scheduler being used.
57
57
@@ -79,7 +79,7 @@ In either case, users can log out and clear the authentication inputs with `.log
79
79
* Has no notion of MCAD. Does not support any other backends besides Ray
80
80
* Existing CodeFlare CLI
81
81
* Is not pythonic.
82
-
* Nothing (let users define their own appwrappers manually)
82
+
* Nothing (let users define their own AppWrappers manually)
0 commit comments