Energías AlternasEA·Lab
← ProyectosProyecto

Clúster Energías Alternas

por Kalev Pineda ·

Ciencia de MaterialesCómputo Cuántico
Clúster Energías Alternas

Resumen

El Laboratorio de Energías Alternas necesita simular materiales a nivel atómico: predecir propiedades de celdas solares, electrodos de baterías, catalizadores o recubrimientos antes de sintetizarlos. Esos cálculos de primeros principios (teoría del funcional de la densidad, DFT) consumen horas de procesador y no caben en una laptop. Tampoco es razonable que dependan de horas compradas en centros externos.

La respuesta fue convertir dos servidores Dell PowerEdge R515 que estaban fuera de uso en un clúster de cálculo científico completo:

  • 20 núcleos y 48 GB de RAM, unidos por una red privada dedicada;
  • un gestor de colas (Slurm) que reparte el trabajo entre los dos equipos;
  • Quantum ESPRESSO 7.5 compilado y optimizado para este hardware;
  • acceso por navegador (JupyterHub) desde el campus o desde casa;
  • monitoreo en tiempo real (Prometheus + Grafana).

En términos de capacidad medida, el clúster calcula la estructura electrónica completa del silicio en 7.4 segundos. El flujo completo de un nitruro magnético (estructura, bandas por espín, densidad de estados y momentos magnéticos) toma 78 segundos. Las vibraciones de la red de un metal bajo presión toman unas horas por volumen, con cinco volúmenes calculándose a la vez. Es un laboratorio computacional pequeño, pero real, documentado y reproducible.


1. La problemática

1.1 Por qué un laboratorio de energía necesita cómputo

La investigación en energías alternas es, en el fondo, investigación en materiales. La eficiencia de una celda solar depende del gap de su semiconductor. La capacidad de una batería depende de cuántos iones de litio o sodio acepta su cátodo, y a qué voltaje. La producción de hidrógeno depende de qué tan fuerte se adsorbe un átomo de H en la superficie de un catalizador. Todas son preguntas de estructura electrónica, y se pueden responder, total o parcialmente, resolviendo la mecánica cuántica de los electrones del material.

Ese cálculo tiene dos ventajas sobre el laboratorio experimental:

  1. Explora antes de sintetizar. Se pueden descartar candidatos en una tarde de cómputo en vez de semanas de síntesis.
  2. Explica lo que se mide. El cálculo muestra qué orbitales forman una banda, dónde se concentra la magnetización o qué vibración vuelve inestable una fase.

1.2 Lo que había antes

SituaciónConsecuencia
Cálculos en laptops personalesSe limitaban a sistemas mínimos; el equipo quedaba ocupado horas y un cierre de tapa perdía el trabajo.
Software instalado por cada persona, en versiones distintasResultados difíciles de reproducir o comparar entre estudiantes.
Inputs con rutas de otras máquinas (/home/<otro-usuario>/...)Los archivos no corrían al pasar de una persona a otra.
Servidores Dell R515 disponibles pero sin usoCapacidad de cómputo desaprovechada.
Sin acceso remoto organizadoPara calcular había que estar físicamente frente al equipo.
Sin forma de ver la carga de los equiposNo se sabía si una máquina estaba ocupada, saturada o libre.

1.3 Lo que se buscaba

El criterio de diseño fue simplicidad y honestidad con el hardware: usar software libre y estándar en centros de supercómputo (Slurm, OpenMPI, NFS, Quantum ESPRESSO), medir en vez de suponer y documentar cada decisión para que el clúster sobreviva a quien lo instaló.


2. La infraestructura

2.1 Hardware

omarcito (nodo principal)caro (nodo de cálculo)
EquipoDell PowerEdge R515Dell PowerEdge R515
Procesadores2× AMD Opteron 41302× AMD Opteron 4180
Núcleos812
Memoria24 GB24 GB
Disco196 GB393 GB
Sistema operativoUbuntu Server 24.04 LTS (con Ubuntu Pro)Ubuntu Server 24.04 LTS (con Ubuntu Pro)
FunciónRecibe a los usuarios, reparte el trabajo, sirve los archivosCalcula

Total: 20 núcleos y 48 GB de RAM. Los nodos no son simétricos. Eso se tomó en cuenta al configurar el reparto de trabajo, porque un cálculo de 12 núcleos solo cabe en caro.

Una restricción importante. Los Opteron 4100 (2010) solo soportan el conjunto de instrucciones base x86-64, sin SSE4 ni AVX. Muchos programas modernos precompilados (por ejemplo, NumPy 2 desde PyPI) abortan con Illegal instruction. Por eso Quantum ESPRESSO se compiló en el propio nodo (-march=native) y las bibliotecas numéricas de Python vienen de los repositorios de Ubuntu.

2.2 Redes

Cada servidor tiene dos puertos de red, y cada uno cumple una función distinta:

  • Red de gestión (eno1): la entrada de los usuarios del campus, la salida a Internet para actualizaciones y los túneles de Cloudflare.
  • Red de interconexión (ic0): un cable directo entre los dos servidores, sin switch, con una red privada propia. Por aquí viaja todo el tráfico interno: los archivos compartidos, la comunicación entre procesos de un mismo cálculo y las órdenes del gestor de colas. Así el cálculo no compite con el tráfico del campus y el campus no ve el tráfico del cálculo.
  • Sin puertos abiertos a Internet. El acceso externo pasa por túneles de Cloudflare que salen desde los servidores. No hay que abrir puertos en el firewall institucional.

2.3 Capas de software

ComponenteVersiónPara qué sirve
Quantum ESPRESSO7.5, compilado desde fuenteDFT con ondas planas: estructura electrónica, relajación, fonones
Slurm23.11Recibe los trabajos, los pone en cola y los reparte según los núcleos y la memoria libres
OpenMPI4.1.6Divide un cálculo entre varios procesos que se comunican
NFSv4.2Cada usuario ve sus archivos igual desde los dos servidores
JupyterHub / JupyterLab6.0 / 4.6Terminal, editor y cuadernos de Python y Julia en el navegador
Julia1.12.7Análisis de resultados en paralelo; paquetes propios precompilados
Python + Qiskit3.12 / 2.4Análisis y simulación de algoritmos cuánticos
Prometheus + Grafana2.45 / 13.2Métricas de CPU, memoria, red, disco, temperatura y cola, por servidor

2.4 Almacenamiento

  • /home y /opt/shared viven en omarcito y caro los monta por la red interna. Un usuario encuentra sus archivos igual en los dos servidores, sin copiar nada.
  • /tmp es local en cada servidor y es donde los cálculos escriben sus archivos de trabajo. Se midió que escribirlos en /home (por la red) hacía que el mismo cálculo tardara el doble en caro: 15.2 s contra 7.4 s.

3. El funcionamiento

3.1 La idea central: una cola de trabajos

Nadie ejecuta los cálculos «a mano» en los servidores. El investigador describe qué quiere calcular y cuántos recursos necesita, y lo entrega a Slurm. Slurm espera a que esos recursos estén libres, ejecuta el cálculo en el servidor adecuado y guarda el resultado. Las ventajas son tres:

  1. Nadie se estorba. Dos cálculos nunca pelean por los mismos núcleos.
  2. El trabajo sobrevive. Se puede cerrar la laptop, el navegador o la sesión: el cálculo sigue.
  3. El clúster se llena solo. Si hay cinco cálculos pendientes, Slurm los acomoda en los huecos libres de los dos servidores.

3.2 El ciclo de vida de un cálculo

3.3 Las cuatro formas de trabajar

PatrónCuándo usarloEjemplo medido
Un cálculo en un servidorCasi siempre: un nodo le gana a dos en casos pequeños y medianosSi: SCF + bandas en 7.4 s (caro, 12 núcleos)
Job array (muchos cálculos iguales con un parámetro distinto)Convergencia, ecuaciones de estado, barridos de presión, fonones por volumen5 cálculos simultáneos (2 en omarcito y 3 en caro)
Tareas independientes en los dos nodosProgramas en Python o Julia que procesan una lista100 elementos repartidos: 60 en caro y 40 en omarcito
Cadena de dependenciasSCF → bandas → DOS → análisis, cada paso al terminar el anteriorFlujo completo de CrN en un solo trabajo, 78.5 s

Las cuatro tienen plantillas probadas en /opt/shared/examples/ y una guía en docs/trabajos-batch.md.

3.4 Cómo se reparte la memoria

Cada núcleo pedido recibe por defecto 1.8 GB de memoria. El ajuste se hizo el 29 de septiembre de 2026, después de detectar que, sin él, un solo trabajo pequeño reservaba la memoria completa de un servidor y bloqueaba a todos los demás aunque sobraran núcleos. Hoy cinco trabajos de 4 núcleos caben a la vez y los 20 núcleos se aprovechan.

3.5 Monitoreo

El tablero «Clúster unext» muestra, para cada servidor por separado o lado a lado:

  • uso de CPU, total y por núcleo;
  • memoria y carga;
  • red interna y de gestión;
  • tráfico de archivos compartidos;
  • temperatura;
  • núcleos asignados por Slurm y trabajos en cola.

Con él se puede saber en segundos si un cálculo está usando lo que pidió, si un servidor está ocioso o si alguien está escribiendo archivos pesados por la red.


4. El uso en energías alternas

4.1 Del problema energético a la propiedad calculable

ÁreaPregunta típicaQué entrega el clúster
Fotovoltaica¿Qué tan bien absorbe la luz solar este semiconductor? ¿El gap es directo o indirecto?Estructura de bandas, densidad de estados, carácter orbital de las bandas
Baterías¿A qué voltaje se inserta el litio en este cátodo? ¿Se deforma la estructura?Energías totales de fases litiadas y deslitiadas, relajación de celda y posiciones
Hidrógeno y catálisis¿El H se adsorbe muy fuerte, muy débil o en el punto justo?Energías de adsorción, PDOS de la superficie, centro de la banda d
Termoelectricidad y gestión térmica¿Cómo vibra la red? ¿Cómo cambia el volumen con la temperatura?Dispersión de fonones, parámetros de Grüneisen, dilatación térmica cuasi-armónica
Recubrimientos y magnetismo¿Qué tan rígido es? ¿Es magnético y dónde está el momento?Ecuación de estado, módulo de compresibilidad, momentos por átomo y orbital, polarización de espín
Materiales bajo presión¿A qué presión cambia de fase?Entalpías de las fases, presión de transición, inestabilidades vibracionales

4.2 Lo que ya se hizo en el clúster

Los primeros cálculos sirven a la vez de validación del clúster y de demostración de sus capacidades:

EstudioResultadoComparación con el experimento
Silicio: estructura de bandas (base de la fotovoltaica)Gap indirecto con el mínimo de conducción en Γ→X; ancho de valencia de 12.1 eVForma correcta; el gap PBE (0.54 eV) subestima el real (1.17 eV), como se espera del funcional
Silicio: ecuación de estadoa₀ = 5.470 Å, B₀ = 89 GPaExperimento: 5.431 Å y ≈ 98 GPa
Silicio: transición a β-Sn bajo presión, con fonones9.0 GPa a 0 K, 8.8 GPa a 300 K; modo blando que desestabiliza β-Sn hacia ~18 GPaExperimento: 10–12.5 GPa
Silicio: fonones y dilatación térmicaFonones a 2–5 % de los datos de neutrones; dilatación negativa por debajo de ~118 K (mínimo de −0.53×10⁻⁶ K⁻¹)Experimento: mínimo de ≈ −0.5×10⁻⁶ K⁻¹, cambio de signo hacia 120 K
Nitruro de cromo (CrN) zinc-blendaMetal ferromagnético, 2.0 μB por celda (Cr-3d: 2.1 μB), polarización de espín de 18.6 % en E_FFlujo completo en 78.5 s

4.3 Investigación en cómputo cuántico

El clúster también sostiene una línea de tesis que compara la simulación clásica (DFT en el clúster) con algoritmos cuánticos (VQD y SSVQE) para la estructura de bandas del silicio. Los algoritmos cuánticos se simulan en los mismos servidores, repartidos en los dos nodos, y quedan listos para ejecutarse en procesadores cuánticos de IBM.

Conclusión medida: hoy el cómputo clásico es órdenes de magnitud más rápido y más completo para este tipo de problema. Aun así, el laboratorio ya tiene un flujo validado (modelo físico → qubits → algoritmo → hardware) para cuando las máquinas cuánticas lo justifiquen.


5. Cómo se usa (vista del investigador)

  1. Entrar por el navegador (JupyterHub) o por terminal (SSH).
  2. Preparar el input en una carpeta propia, con pseudopotenciales de /opt/shared/pseudo.
  3. Converger los parámetros con un job array antes de los cálculos de producción.
  4. Enviar con sbatch a partir de una plantilla.
  5. Verificar en la salida que convergió, que la celda está en equilibrio y que la magnetización es estable.
  6. Analizar y graficar en Jupyter, y descargar a la computadora personal si hace falta.

La documentación de usuario está escrita para alguien que nunca ha usado un clúster: docs/empezar-aqui.md (también en PDF).


6. Acceso y seguridad

El modelo de seguridad parte de una regla: ningún servicio queda expuesto directamente a Internet.

VíaDesdeCómo se autentica
JupyterHub en la LANCampusCuenta del sistema del usuario
JupyterHub públicoFuera del campusCuenta del sistema (está pendiente agregar Cloudflare Access)
SSH por túnelFuera del campusLlave SSH + túnel de Cloudflare
SSH directoCampusCuenta del sistema o llave
GrafanaFuera del campusCloudflare Access (correo autorizado) + usuario de Grafana

Principios aplicados:

  • Las credenciales no viven en los repositorios. La contraseña de administración de Grafana se generó en el servidor y solo es legible por root. Los archivos de credenciales locales están excluidos del control de versiones.
  • Mínimo privilegio en la red. El monitoreo solo escucha en localhost o en la red interna, y el firewall bloquea esos puertos hacia el campus.
  • Actualizaciones de seguridad. Ambos servidores tienen Ubuntu Pro (ESM), que cubre también los paquetes de monitoreo.
  • Cuentas homogéneas. Cada usuario tiene el mismo identificador en los dos servidores, y un script (add-cluster-user.sh) da de alta cuentas de forma consistente.

Nota operativa: dentro del campus, el firewall institucional puede interceptar la conexión TLS del túnel (error de certificado). En ese caso se usa la conexión directa por la red local.


7. Resultados de la puesta en marcha

IndicadorValor
Capacidad20 núcleos, 48 GB de RAM, 2 servidores
Disponibilidad de softwareQE 7.5 (pw, pp, PHonon), Julia, Python, Qiskit, JupyterHub
Validación de QEEnergía del Si idéntica (−22.83847650 Ry) con 1, 8, 12, 16 y 20 procesos
Cálculo de bandas de Si7.4 s
Flujo electrónico y magnético completo de CrN78.5 s
Fonones de un metal (β-Sn) por volumen~2.7 h con 4 núcleos, 5 volúmenes en paralelo
Trabajos simultáneosHasta 5 (de 4 núcleos), repartidos automáticamente
VisibilidadTableros en tiempo real por servidor y de la cola
Documentación12 documentos, plantillas probadas, historial de cambios y control de versiones (git)

8. Limitaciones y hoja de ruta

8.1 Limitaciones actuales

  • Procesadores de 2010. Son suficientes para sistemas de decenas de átomos, pero no para celdas grandes (cientos de átomos) ni para funcionales híbridos costosos. No admiten software moderno precompilado con instrucciones AVX.
  • Red de 1 Gb/s entre nodos. Basta para repartir muchos cálculos independientes, pero limita que un solo cálculo grande escale a los dos servidores.
  • Sin GPU. Los códigos modernos (QE, VASP) aceleran de 4 a 10 veces en GPU.
  • Programas de QE no compilados todavía: NEB (barreras de difusión, clave para baterías), HP (U de Hubbard autoconsistente) y EPW (acoplamiento electrón-fonón).
  • Biblioteca de pseudopotenciales mínima: Si, Cr y N. Los demás elementos se agregan según se necesiten.

8.2 Hoja de ruta


9. Documentación relacionada

DocumentoPara quién
docs/empezar-aqui.mdUsuarios nuevos: el primer cálculo en cinco minutos
docs/guia-usuario.mdUsuarios: flujo de trabajo y elección de recursos
docs/trabajos-batch.mdUsuarios avanzados: job arrays, los dos nodos, Julia, dependencias
docs/quantum-espresso.mdCompilación, pseudopotenciales, rendimiento de QE
docs/README.mdArquitectura técnica detallada
docs/operacion.mdAdministradores: servicios, fallas, cambios de configuración
docs/monitoreo.mdAdministradores: Prometheus y Grafana
docs/usuarios.mdAdministradores: altas y bajas de cuentas
docs/changelog.mdHistorial de todo lo que se hizo

El Laboratorio de Energías Alternas convirtió hardware en desuso en una plataforma de simulación de materiales operativa, medida y documentada. El valor no está solo en los 20 núcleos: está en que cualquier investigador del laboratorio puede, desde su navegador, plantear una pregunta sobre un material para energía y obtener una respuesta reproducible.

Participantes

Clúster Energías Alternas · Energías Alternas