wooden-fish-36386
07/09/2024, 6:35 PMaverage-finland-92144
07/11/2024, 4:52 PMaverage-finland-92144
07/11/2024, 4:57 PMwooden-fish-36386
07/11/2024, 7:46 PMResources(gpu=1)
request / limit in the task. And then run that in the sandbox, and with map_task()
on a list of two inputs (i.e. two jobs). So Flyte will run the two tasks concurrently, even in the sandbox? And I guess since the tasks are effectively running in the same container (?) they are implicitly allocated different GPUs but the actual job code can probably see both GPU IDs? (Unlike in say k8s where the tasks would run in separate containers and not see each others GPUs).
Do I have this conceptually right? I'll try to dig a little deeper into map_task
impl to understand limitations. If I'm right, that's really cool that Flyte can do some amount of parallelism w/out k8s !average-finland-92144
07/11/2024, 8:03 PMSo Flyte will run the two tasks concurrently, even in the sandbox?I'm mostly sure yes, compute resources provided, the sandbox can execute all Flyte features, including map_tasks
And I guess since the tasks are effectively running in the same container (?)This is true when using map_task
they are implicitly allocated different GPUsI'm not sure I follow. GPUs are surfaced to K8s using the K8s ExtendedResources plugin which advertises any GPU accelerator and makes it available for Pods to use. You can use taints/tolerations to surface different devices to different Pods but that's typically for multi node K8s clusters. Flyte lets you request specific NVIDIA devices or even partitions, but even that plays with taints/tolerations and nodeSelectors to tweak K8s scheduling.
but the actual job code can probably see both GPU IDswith default K8s scheduling mechanisms, this should be true The sandbox is still K8s, it's just that the runtime it's not a VM or server but a Docker container I hope any of this makes sense for you
wooden-fish-36386
07/11/2024, 9:38 PMaverage-finland-92144
07/11/2024, 9:39 PM