GPU: NVIDIA A100 y perfiles MIG¶
El clúster cuenta con aceleradores NVIDIA A100 de 40 GB. Puedes pedir una GPU completa o —para cargas pequeñas o muchas pruebas paralelas— un perfil MIG, que divide una A100 en instancias más pequeñas:
Tipo de GPU (--gres) |
Equivale a |
|---|---|
a100-sxm4-40gb |
GPU A100 completa (40 GB) |
a100_3g.20gb |
20 GB |
a100_2g.10gb |
10 GB |
a100_1g.5gb |
5 GB |
Las colas y cuántas GPU admite cada una están en la
tabla de particiones
(gpu-dev = 1 GPU, gpu = 2, gpu-max = 4).
Pedir una GPU¶
Dentro de tu script #SBATCH:
#SBATCH --partition=gpu-dev
#SBATCH --gres=gpu:a100-sxm4-40gb:1
Ejemplo interactivo (del mensaje de bienvenida del clúster):
salloc -p gpu -c 16 --mem=5G --gres=gpu:a100_2g.10gb:1 --time=01:00:00
"Hola mundo" en GPU con PyTorch¶
Script ml_hola.sh — guarda esto y envíalo con sbatch ml_hola.sh:
#!/bin/bash
#SBATCH --job-name=ml-hola-mundo
#SBATCH --partition=gpu-dev
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --mem=8G
#SBATCH --time=00:10:00
#SBATCH --gres=gpu:a100-sxm4-40gb:1
#SBATCH --output=ml_hola_%j.out
module load pytorch/2.2
python - <<'PY'
import torch
print("PyTorch:", torch.__version__)
print("GPU disponible:", torch.cuda.is_available())
print("Dispositivo:", torch.cuda.get_device_name(0))
x = torch.rand(1000, 1000, device="cuda")
y = x @ x
torch.cuda.synchronize()
print("Multiplicacion de matrices 1000x1000 en GPU completada")
PY
Resultado real del job 31340:
PyTorch: 2.10.0+cu128
GPU disponible: True
Dispositivo: NVIDIA A100-SXM4-40GB
Multiplicacion de matrices 1000x1000 en GPU completada
Y su registro en el historial:
sacct -j 31340 -X --format=JobID,JobName,Partition,State,ExitCode,Elapsed
JobID JobName Partition State ExitCode Elapsed
------------ ---------- ---------- ---------- -------- ----------
31340 ml-hola-m+ gpu-dev COMPLETED 0:0 00:00:10
(El nombre del job aparece abreviado porque SLURM trunca la columna a 10
caracteres con ese --format.)
Aplicaciones con variante GPU¶
Muchas aplicaciones del catálogo tienen módulo específico de GPU —úsalo en vez del de CPU cuando calcules con aceleradores:
module load gromacs/2026.0/gpu
module load lammps/30Sep2026-gcc12-openmpi4/gpu
module load quantum-espresso/7.6-nvhpc-cuda-gpu
module load opencv/4.10.0/gpu
Si descargas modelos (Hugging Face)¶
Los modelos que baje huggingface-cli o transformers se guardan en tu
caché. Para no llenar $HOME, asígnala a tu espacio de trabajo:
export HF_HOME=/work/$USER/.cache/huggingface
¿No ves tu job en GPU?
Si sbatch responde Requested node configuration is not available,
verifica el tipo y el número de GPU: los perfiles MIG no están
disponibles en todos los nodos. Para producción general usa
a100-sxm4-40gb; los perfiles a100_*gb son para cargas pequeñas.