Tipos de nodos disponibles:
–gres=H_100_NVL–gres=L40s–gres=L4Recuerda que si no especificas recurso con gres, entrará en la primera gpu libre
Si detectamos malgasto de recursos (por ejemplo reservar grandes cantidades de memoria para trabajos que no las necesiten) se aplicarán penalizaciones.
Los recursos son comunes a todo el grupo y hay que hacer un uso responsable de ellos.
Guía de usuario para el uso del cluster de Slurm desplegado. Página visible a externos sin autenticación
Ver también cómo enviar trabajos al clúster con sbatch, cómo ejecutar Jupyter en Slurm mediante sbatch y el FAQ
LDAP ANTS o LDAP EXTERNOS.155.54.210.99.CPUGPU (si aplica)Conexión típica:
ssh <USUARIO_LDAP>@<HOST_IP>
Te dejará en /slurm/home/<USUARIO>.
sinfo
squeue
squeue -u <USUARIO>
scontrol show job <JOB_ID>
scancel <JOB_ID>
Ejemplo CPU:
cat > job_cpu.sbatch <<'EOF' #!/bin/bash #SBATCH --job-name=cpu_test #SBATCH --partition=cpu #SBATCH --nodes=1 #SBATCH --ntasks=1 #SBATCH --cpus-per-task=4 #SBATCH --time=00:10:00 echo "Usuario: $USER" echo "Host: $(hostname)" echo "JobID: $SLURM_JOB_ID" echo "Trabajo CPU de prueba" sleep 20 EOF
Ejemplo GPU:
cat > job_gpu.sbatch <<'EOF' #!/bin/bash #SBATCH --job-name=gpu_test #SBATCH --partition=gpu #SBATCH --nodes=1 #SBATCH --ntasks=1 #SBATCH --cpus-per-task=4 #SBATCH --gres=gpu:1 #SBATCH --time=00:10:00 nvidia-smi || true echo "Trabajo GPU de prueba" sleep 20 EOF
sbatch job_cpu.sbatch
Slurm devolverá algo como:
Submitted batch job <JOB_ID>
squeue -u <USUARIO>
Estados comunes:
PD: pendiente (pendiente de recursos/políticas).R: ejecutando.CG: terminando.CD: completado.F: fallado.
En este despliegue, si no defines –output/–error, Slurm aplica rutas por defecto:
stdout → /slurm/home/%u/output/%j/stdout.txtstderr → /slurm/home/%u/output/%j/stderr.txtEquivalente para un job real:
/slurm/home/<USUARIO>/output/<JOB_ID>/stdout.txt/slurm/home/<USUARIO>/output/<JOB_ID>/stderr.txtConsultar:
cat /slurm/home/<USUARIO>/output/<JOB_ID>/stdout.txt cat /slurm/home/<USUARIO>/output/<JOB_ID>/stderr.txt
Durante la ejecución, el clúster crea automáticamente:
/scratch/slurm/<USUARIO>/<JOB_ID>Y al terminar el job, se elimina automáticamente.
Recomendación:
/slurm/home/<USUARIO>/…)Para abrir una sesión interactiva en un nodo:
srun --partition=<PARTICION_CPU> --ntasks=1 --cpus-per-task=2 --time=00:30:00 --pty bash
Para GPU:
srun --partition=<PARTICION_GPU> --gres=gpu:1 --ntasks=1 --cpus-per-task=2 --time=00:30:00 --pty bash
Ejemplo:
cat > job_array.sbatch <<'EOF' #!/bin/bash #SBATCH --job-name=array_demo #SBATCH --partition=<PARTICION_CPU> #SBATCH --array=1-10 #SBATCH --time=00:05:00 echo "Task ID: $SLURM_ARRAY_TASK_ID" sleep 5 EOF
Enviar:
sbatch job_array.sbatch
Enviar un primer job:
jid1=$(sbatch --parsable job_cpu.sbatch)
Enviar un segundo job que empiece cuando termine bien el primero:
sbatch --dependency=afterok:${jid1} job_cpu.sbatch
Ver historial básico:
sacct -u <USUARIO> --starttime today
Formato ampliado:
sacct -u <USUARIO> --format=JobID,JobName,Partition,State,Elapsed,ExitCode
sinfo -N -l
Detalle de un nodo:
scontrol show node <NODO>
Invalid account or account/partition combination specifiedPD mucho tiemposqueue -j <JOB_ID> -o "%.18i %.9P %.20j %.8u %.2t %.10M %.6D %R"
/slurm/home/<USUARIO>/output/<JOB_ID>/stderr.txtRequested node configuration is not available)–gres=gpu:<N> no cuadra con lo disponible.sinfo -N -l–time realista.#!/bin/bash #SBATCH --job-name=<NOMBRE_JOB> #SBATCH --partition=<PARTICION_CPU_O_GPU> #SBATCH --nodes=1 #SBATCH --ntasks=1 #SBATCH --cpus-per-task=<N_CPUS> #SBATCH --time=<HH:MM:SS> #SBATCH --mem=<RAM_MB_O_GB> set -euo pipefail echo "Job $SLURM_JOB_ID en $(hostname)" # Tu carga de trabajo aquí
.sbatch tiene #!/bin/bash.CPU o GPU).cpu, mem, time, gres si GPU).