Repository navigation
Add Lium backend - #4377
Add Lium backend#4377peterschmidt85 wants to merge 1 commit into
Conversation
|
Thanks @peterschmidt85. We tried this branch (eafa49b) with a local server, a What worked
Observations
We didn't find anything blocking on our side. Happy to try a specific scenario if you'd like. |
|
We also tried this branch (eafa49b) with a local server, a What worked
One observation (possibly our fault) |
|
Thanks for testing! Template cleanup runs on a later pass, at least 30 seconds after requesting pod deletion. Could you repeat the test and leave the server running until the instance is fully terminated, then check whether the template disappears? |
|
@peterschmidt85, we repeated the test on eafa49b and left the server running until the instance was fully terminated. The template is deleted. There were no leftovers this time. Setup: a Timeline from our Lium account event log (UTC):
Afterwards, the API listed no pods and no |
|
Code review of 1. One template per provisioning attempt can hit Lium's template rate limit (most important)
On the Lium side, Suggested fix: reuse one private template per (image, registry credential), for example keyed by a hash in the template name. The template carries only the image, since the start command goes over SSH, so it is safe to share across instances. Treating 429 as retryable would also help. 2. Template and registry credential can be orphaned if pod deletion outlasts the termination window Cleanup runs only in On Lium, teardown goes through the node's validator with retries, so a slow or offline node can keep a pod in 3. The account-events fallback needs the
Checked and correct
|
|
@surcyf123 thanks for catching this. Template creation limits — merge blocker The limits (1 per 5s, 5 per minute, 20 per hour) look too restrictive for normal dstack use. Caching helps with repeated images, but runs using new images still need new templates. Could you raise the default limits to support automated workloads? Pod-start API limits — clarification Separately, once the shared-counter bug is fixed, how many requests to start pods will one account be allowed to send per minute or hour? This is about API throttling, not the number of GPUs we can run at once. We haven't identified a problem with this limit; we'd just like to understand it. |
This PR adds experimental Lium backend support for GPU runs and S3-backed volumes. It uses the online provider in dstackai/gpuhunt#259.
registry_authis set. Each job gets a private template; the backend removes the template and credential after the pod is deleted.sizeorregion. Writable mounts require root; non-root jobs without volumes work normally. Local storage is unencrypted and deleted with the pod.Validation: 211 targeted tests passed (36 skipped), Ruff, Pyright, strict docs build, and package build. Live E2E covered private-image authentication, non-root execution, volume persistence across rentals, cancellation, and cleanup. Temporary capacity failures recovered through normal
no-capacityretries. Long-running reliability and RDMA remain unverified.Before merging:
Datura-ai/gpuhunt@lium-providerdependency with the released version, removeallow-direct-references, and recheck against that release.