Curso 1 · Nivel Básico

Iniciación en HPC

Aprende los fundamentos de la computación de alto rendimiento y domina las herramientas que usan los científicos e ingenieros para resolver problemas complejos.

SlurmOpen OnDemand JupyterLabMATLAB Python HPC
8
Módulos
~4h
Duración
Básico
Nivel
1

¿Qué es HPC?

La Computación de Alto Rendimiento (HPC) permite resolver problemas que requieren mucho más poder de cómputo del que ofrece una computadora convencional, distribuyendo la carga entre cientos o miles de procesadores que trabajan coordinadamente.

Computadora personal vs HPC

Una PC promedio tiene 8–16 núcleos de CPU. Un cluster HPC puede tener miles de núcleos interconectados a alta velocidad, ejecutando trabajos en paralelo y compartiendo almacenamiento centralizado. La diferencia es como comparar una linterna con un faro.

¿Para qué se usa?

Simulaciones de dinámica de fluidos, predicción del tiempo, análisis genómico, entrenamiento de modelos de inteligencia artificial, modelado de estructuras moleculares, simulaciones financieras y mucho más.

Comparativa: PC convencional vs Cluster HPC

PC — 8 cores 128c 128c 128c 128c 128c 128c 128c 128c 128c 128c 128c 128c RoCEv2 · 100 Gbps · <900 ns Cluster HPC — 1,000+ cores
💡
Clave conceptual: paralelismo

La potencia de HPC proviene de dividir un problema grande en piezas más pequeñas y resolverlas simultáneamente en muchos procesadores. A esto se llama computación paralela.

2

Arquitectura del Cluster

Un cluster HPC moderno está compuesto por varios tipos de nodos con roles específicos, interconectados mediante una red de alta velocidad y con acceso a almacenamiento compartido.

Arquitectura típica de un Cluster HPC

👤 Usuario SSH / Web Login Node OnDemand · SSH Nodo de acceso SLURM Scheduler SLURM Controller Asigna recursos Compute 128 cores Compute 128 cores Compute 128 cores Compute 128 cores GPU Node A100 × 8 GPU Node H100 × 8 RoCEv2 100 Gbps <900 ns — Red de Interconexión Storage BeeGFS · 1.5 PB Nodos de Cómputo (CPU) Nodos GPU Almacenamiento
🖥️ Nodo Login

Punto de entrada al cluster. Desde aquí se editan archivos, se preparan scripts y se envían trabajos al scheduler. Nunca se ejecutan cálculos pesados aquí.

⚙️ Nodos Cómputo

Donde realmente se ejecutan los trabajos. El scheduler los asigna según disponibilidad y los recursos solicitados. Pueden ser CPU-only o tener GPUs.

💾 Almacenamiento

Sistema de archivos paralelo distribuido (BeeGFS) compartido por todos los nodos, con 1.5 PB de capacidad y 200 GB/s de throughput. Los archivos escritos en un nodo son visibles inmediatamente en todos los demás.

3

Linux y la Terminal

Los clusters HPC usan Linux. Conocer los comandos básicos de la terminal es indispensable para trabajar eficientemente en el entorno.

Terminal — Sesión SSH al Cluster

# Conectar al cluster via SSH

local$ ssh [email protected]

# Contraseña o clave SSH...

usuario@login01$ # ¡Bienvenido! Ya estás en el cluster

# Comandos esenciales de navegación

usuario@login01$ pwd # Muestra el directorio actual

/home/usuario

usuario@login01$ ls -lh # Lista archivos con tamaños legibles

total 4.0K

drwxr-xr-x 2 usuario grupo 4.0K Jan 15 09:30 trabajos

-rw-r--r-- 1 usuario grupo 512 Jan 15 09:28 script.sh

usuario@login01$ cd trabajos # Cambia de directorio

usuario@login01$ mkdir mi_proyecto # Crea una carpeta

usuario@login01$ cp archivo.txt mi_proyecto/ # Copia archivos

usuario@login01$ cat script.sh # Muestra contenido de un archivo

# Ver cuánto espacio usas

usuario@login01$ du -sh ~

2.3G /home/usuario

📋 Comandos Linux más usados en HPC
ComandoDescripciónEjemplo
ls -lhListar archivos con tamañosls -lh /scratch/
cp / mvCopiar / mover archivoscp datos.csv /scratch/
tar -xzfDescomprimir archivos .tar.gztar -xzf paquete.tar.gz
module loadCargar software del sistemamodule load python/3.11
top / htopVer procesos en ejecuciónhtop
df -hEspacio disponible en discodf -h /scratch
chmod +xDar permisos de ejecuciónchmod +x mi_script.sh
Sistema de módulos (Lmod)

Los clusters usan el sistema de módulos para gestionar software. Usa module avail para ver todo el software instalado y module load nombre/version para activarlo en tu sesión.

4

Open OnDemand

Open OnDemand es una interfaz web que permite acceder y usar el cluster desde cualquier navegador, sin necesidad de instalar software adicional. Es el punto de entrada recomendado para usuarios nuevos.

Inicio Archivos Trabajos Clusters Aplicaciones usuario@cluster

Aplicaciones Disponibles

📓
JupyterLab
Notebooks
🖥️
Shell de Cluster
Terminal
🔬
MATLAB
Cómputo numérico
📊
RStudio
Estadística
🖥
Escritorio VNC
GUI remota
Tensorboard
ML Monitoring
📁
Explorador
Archivos
📋
Mis Trabajos
Cola Slurm
Mis trabajos recientes
42831 — simulacion_fluidos.shRUNNING4 nodos · 00:42:11
42830 — entrenamiento_red.shPENDING8 GPUs · En cola
42828 — analisis_genomico.shCOMPLETED16 nodos · 3h 12m
🌐 Acceso sin instalación

Solo necesitas un navegador moderno (Chrome, Firefox, Edge). OnDemand gestiona la autenticación, la terminal SSH y el acceso a aplicaciones como JupyterLab o MATLAB directamente desde el navegador.

📁 Gestión de archivos

El explorador de archivos integrado permite subir, descargar, editar y organizar tus datos directamente desde el navegador, sin necesidad de clientes FTP/SCP externos como FileZilla.

5

JupyterLab

JupyterLab ofrece un entorno interactivo de notebooks directamente en el cluster. Puedes escribir y ejecutar código Python (y otros lenguajes), visualizar resultados y documentar tu análisis en un solo lugar.

FileEditViewRunKernelSettingsHelp
▶ Run ⬛ Stop ↺ Restart ⬇ Run All Kernel: Python 3 (HPC Env) ● idle
📁 Files
📂 datos/
📂 resultados/
📓 analisis.ipynb
🐍 preproceso.py
📄 README.md
In [1]:
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
# Configuración de visualización
plt.rcParams['figure.dpi'] = 120
In [2]:
# Cargar datos desde el almacenamiento del cluster
datos = np.load('/scratch/usuario/simulacion.npy')
print(f'Shape: {datos.shape}, dtype: {datos.dtype}')
Shape: (50000, 128), dtype: float64
In [3]:
fig, ax = plt.subplots(1, 2, figsize=(10, 4))
ax[0].hist(datos[:,0], bins=50, color='steelblue')
ax[0].set_title('Distribución')
ax[1].plot(datos[:200,0], color='orangered')
plt.tight_layout(); plt.show()

[Gráfica generada por matplotlib]

🚀
JupyterLab en el cluster = tu PC pero 100× más potente

Cuando lanzas JupyterLab desde OnDemand, el notebook se ejecuta en los nodos del cluster con acceso a toda la memoria RAM y CPUs asignadas. Puedes procesar datasets de cientos de GB sin limitaciones.

6

Introducción a Slurm

Slurm es el gestor de trabajos del cluster. Su función es recibir las solicitudes de cómputo de los usuarios y asignarlas a los nodos disponibles de forma justa y eficiente.

Primeros comandos Slurm

# Ver el estado del cluster

usuario@login01$ sinfo

PARTITION AVAIL TIMELIMIT NODES STATE NODELIST

compute* up 7-00:00:00 8 idle node[01-08]

gpu up 2-00:00:00 2 idle gpunode[01-02]

bigmem up 3-00:00:00 2 mix bignode[01-02]

# Ver trabajos en cola

usuario@login01$ squeue

JOBID PARTITION NAME USER ST TIME NODES NODELIST

42831 compute simulacio usuario R 0:42:11 4 node[01-04]

42830 gpu entrena_r usuario PD 0:00 8 (Priority)

# Mi primer trabajo interactivo

usuario@login01$ srun --ntasks=4 --mem=8G --time=01:00:00 --pty bash

usuario@node01$ # Ahora estoy en un nodo de cómputo

⚠️
Regla de oro: nunca calcules en el nodo login

El nodo login es compartido por todos los usuarios para tareas ligeras (editar archivos, enviar trabajos). Los cálculos pesados siempre deben enviarse a través de Slurm con sbatch o srun.

7

Software Científico

Los clusters HPC incluyen una gran variedad de software científico preinstalado y optimizado. El sistema de módulos permite cargar exactamente la versión que necesitas.

Sistema de módulos — Lmod

# Ver software disponible

usuario@login01$ module avail

──────── /opt/software/modules ────────────────

python/3.9.7 python/3.11.0 (D)

matlab/R2023b matlab/R2024a (D)

r/4.2.0 r/4.3.1 (D)

cuda/11.8 cuda/12.2 (D)

intel-mpi/2021 openmpi/4.1.5

# Cargar Python y paquetes científicos

usuario@login01$ module load python/3.11.0

usuario@login01$ module load cuda/12.2

usuario@login01$ python -c "import torch; print(torch.cuda.is_available())"

True

# Ver módulos actualmente cargados

usuario@login01$ module list

Currently Loaded Modules:

1) python/3.11.0 2) cuda/12.2 3) cudnn/8.9

🔵 MATLAB

Disponible vía OnDemand como aplicación gráfica o desde terminal. Soporta Parallel Computing Toolbox para usar múltiples núcleos y GPUs automáticamente.

🐍 Python / Conda

Múltiples versiones disponibles con NumPy, SciPy, PyTorch, TensorFlow y scikit-learn preinstalados y optimizados para el hardware del cluster.

📊 R / RStudio

R con cientos de paquetes de CRAN disponibles. RStudio accesible desde OnDemand como aplicación gráfica con soporte para cómputo en paralelo.

8

Flujo de Trabajo Típico

Resumiendo todo lo aprendido, este es el flujo de trabajo habitual de un usuario HPC desde que inicia sesión hasta que obtiene sus resultados.

1. Acceso SSH / OnDemand 2. Preparar Código · Datos 3. Script Job Slurm 4. sbatch Enviar a Slurm 5. Ejecución Cluster procesa 6. Resultados Analizar · Descargar
Ejemplo completo de flujo de trabajo

# 1. Acceder al cluster

local$ ssh [email protected]

# 2. Preparar mi trabajo

usuario@login01$ mkdir -p ~/proyectos/simulacion && cd ~/proyectos/simulacion

usuario@login01$ nano job.sh # Editar el script

# Contenido de job.sh:

#!/bin/bash

#SBATCH --job-name=mi_simulacion

#SBATCH --ntasks=16

#SBATCH --mem=32G

#SBATCH --time=02:00:00

module load python/3.11.0

python simulacion.py

# 3. Enviar el trabajo

usuario@login01$ sbatch job.sh

Submitted batch job 42835

# 4. Monitorear

usuario@login01$ squeue --me

42835 compute mi_simul usuario R 00:05:22 2 node[01-02]

🎓
¡Felicitaciones! Completaste la Iniciación en HPC

Ahora conoces los conceptos fundamentales de un cluster HPC, cómo acceder a él, las herramientas disponibles y cómo enviar tus primeros trabajos. El siguiente paso es el Curso de Slurm, donde dominarás el scheduler en profundidad.

← Volver a Cursos Siguiente: Curso de Slurm
Uso del clúster sujeto a nuestras Políticas de Uso y Privacidad· Reglamento del Clúster· Régimen de Sanciones