[SDK] Snapshot users' workspace into distributed TrainJob workload
- Dominant language
- Python
- Stars
- 148
- Forks
- 262
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 1
Description
### What you would like to be added?
As we discussed earlier, we want to design an approach to snapshot users' workspace into TrainJob (e.g. distributed ML workload): https://github.com/kubeflow/training-operator/pull/2324#discussion_r1862719941.
To achieve this, we plan to generate a unique TrainJob ID before submitting it to the Kubernetes control plane.
During the KubeCon 2024 demo, we demonstrated how workspace snapshotting might work: https://youtu.be/Lgy4ir1AhYw?t=458.
In this demo, we pushed Python code files into S3 and then loaded them into TrainJob using initContainers.
However, we can consider various approaches, for instance:
- Using distributed cache.
- Using `kubectl cp`.
### Why is this needed?
This should streamline Data Scientists user experience while working with Kubeflow Training Python SDK.
### Love this feature?
Give it a 👍 We prioritize the features with most 👍
Contributor guide
Research direction
No source files or tests are named. Start by reading the linked training-operator PR discussion and the referenced KubeCon demo, then compare the proposed S3/initContainer flow with distributed cache and kubectl cp. Done means agreeing on an approach and defining how a uniquely identified workspace is snapshotted into a distributed TrainJob.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, kubernetes, python
- Domain
- distributed-systems, machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100