Saltar a contenido

Contenedores con Enroot

Primero los módulos

El software del clúster se usa preferentemente con módulos: están compilados y validados para este hardware. El camino de contenedores es para el caso en que no exista un módulo para lo que necesitas (reglas del mensaje de bienvenida del clúster).

El clúster soporta Enroot: contenedores OCI que corren dentro de tus trabajos SLURM, con las GPU ya visibles (no hay que instalar Docker ni pedir permisos).

Importar una imagen

enroot import docker://nvcr.io#nvidia/cuda

(convierte nvcr.io/nvidia/cuda en un imagen local nvidia+cuda.sqsh)

Crear y entrar

enroot create --name mi_env nvidia+cuda.sqsh
enroot start --root --rw mi_env

Dentro del contenedor tienes tu stack completo, con acceso a $HOME, /work y al resto de tus espacios.

Uso correcto dentro de un job

#!/bin/bash
#SBATCH --job-name=mi_env
#SBATCH --partition=cpu-dev
#SBATCH --mem=8G
#SBATCH --time=01:00:00

enroot start --rw mi_env bash -c "cd /work/$USER/mi_proyecto && ./ejecutable"

Recomendaciones

  • Ejecuta los contenedores dentro de trabajos SLURM o sesiones interactivas, nunca en el nodo de acceso.
  • Las imágenes se guardan en tu carpeta personal: limpia las que no uses (enroot remove, enroot remove -f archivo.sqsh).
  • Para imágenes grandes de NGC, descarga en /work moviendo la caché: export ENROOT_DATA_PATH=/work/$USER/.enroot
¿Puedo usar Docker normal?

No. En un clúster gestionado, los contenedores se ejecutan con Enroot — sin demonio, sin puertos expuestos y con las GPU gestionadas por SLURM. Si necesitas una imagen concreta sin éxito, pídenosla: la validamos.