kubeflow / kubeflow/trainer

[KEP-3562] Parallelize TrainJob creation using WorkQueue at scale

Open
#4,031 2 comments 0 reactions 1 assignee Claimed by @shreyaabaranwal View on GitHub
area/scalability kind/feature
Dominant language
Go
Stars
2.2k
Forks
1.1k
Avg merge
3d 22h
Merged PRs (30d)
39

Description

### What you would like to be added?

In the `OptimizationJob` controller, parallelize child TrainJob creation when spawning batches of trials (when parallelTrials is large, e.g. > 1000)

Adopt a worker-pool pattern similar to batch controllers like JobSet: https://github.com/kubernetes-sigs/jobset/blob/main/pkg/controllers/jobset_controller.go#L765

### Why is this needed?

Currently, `createTrainJobs` iterates over the generated parameter suggestions and invokes `Create` synchronously for each TrainJob.

Using `WorkQueue` increases concurrency.

### Love this feature?

Give it a 👍 We prioritize the features with most 👍

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.