OSC / ood_core

Open OnDemand core library
https://osc.github.io/ood_core/
MIT License
9 stars 25 forks source link

using enroot instead of lmod #829

Open commonism opened 3 months ago

commonism commented 3 months ago

Hi,

enroot is a container environment by nvidia to use with slurm to allow using rootless containers.

https://slurm.schedmd.com/SLUG19/NVIDIA_Containers.pdf https://github.com/NVIDIA/enroot https://github.com/NVIDIA/pyxis

As having the runtime environment of a job in a container allows running the job on different sites with the same environment, enroot basically superseedes lmod.

Any plans to allow using enroot instead of lmod in ood?

johrstrom commented 3 months ago

I'd never heard of enroot, but this sounds like maybe like an extension to vnc_container like vnc_enroot?

treydock commented 3 months ago

How does a container runtime replace a modules environment tool? They serve different purposes. It may be true that if you use enroot you may not need to load modules with Lmod but that's not necessarily always going to be the case.

Also OnDemand does not directly require Lmod. There is a way for a cluster to define a script wrapper that could be used to load modules but it's by no means required. The existing vnc_container logic already allows changing the container command so you could set container_command: enroot and also override the flags used to start.

How exactly do you wish to use enroot with OnDemand? It's most likely that what you want to do is already supported just requires some configurations to use enroot. As mentioned, using enroot to launch VNC via a container image is already supported just requires extra configurations.

commonism commented 3 months ago

I'm just looking into using ood and failed to spot the foundation for containers was set already. Thanks for pointing me towards this. I'll share my experience.

treydock commented 3 months ago

The docs for using VNC container: https://osc.github.io/ood-documentation/latest/reference/files/submit-yml/vnc-container-bc-options.html