Saltar a contenido

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.