TEL-420 Sistemas Paralelos P3c laboratorio cluster slurm · M3
M3 Guía de Práctica / Taller
Descargar .md

P3c · Laboratorio de despliegue de clúster virtualizado y orquestación con Slurm

Contenido del programa: §20.3 · contenidos 3.6 y 3.7 Horas de laboratorio: 4 · Modalidad: equipos de 2 a 3 estudiantes


1. Objetivo

Configurar, desplegar y validar un entorno de clúster de cómputo paralelo virtualizado o contenerizado sobre las estaciones de trabajo Dell OptiPlex 7010 (32 GB RAM) del laboratorio, integrando el gestor de colas y recursos Slurm (slurmctld y slurmd), almacenamiento compartido mediante NFS y el entorno de ejecución OpenMPI, ejecutando y monitorizando trabajos por lotes a través de scripts sbatch.


2. Requisitos previos y arquitectura a desplegar

  • Docker y Docker Compose instalados en el equipo anfitrión.
  • Conocimientos básicos de administración Linux (usuarios, permisos, claves SSH).
  • La topología a levantar consiste en:
  • 1 contenedor Maestro (slurm-master): Ejecuta slurmctld, servidor NFS, y SSH server.
  • 2 o 3 contenedores Nodos de cómputo (slurm-worker-1, slurm-worker-2): Ejecutan slurmd, cliente NFS montado en /shared/hpc, y entorno OpenMPI.

3. Guía paso a paso

Paso 1: Configuración de Docker Compose y red interna

Crear el archivo docker-compose.yml que declare la subred 172.20.0.0/16, asigne nombres fijos y configure volúmenes persistentes:

version: '3.8'
services:
  master:
    image: hpc-cluster-base:latest
    hostname: slurm-master
    container_name: slurm-master
    networks:
      hpc_net:
        ipv4_address: 172.20.0.10
    volumes:
      - shared_data:/shared/hpc
    command: ["/usr/sbin/slurmctld", "-D"]

  worker1:
    image: hpc-cluster-base:latest
    hostname: worker1
    container_name: worker1
    networks:
      hpc_net:
        ipv4_address: 172.20.0.11
    volumes:
      - shared_data:/shared/hpc
    command: ["/usr/sbin/slurmd", "-D"]

networks:
  hpc_net:
    driver: bridge
    ipam:
      config:
        - subnet: 172.20.0.0/16

volumes:
  shared_data:

Paso 2: Configuración de Slurm (slurm.conf)

Verificar los parámetros esenciales de partición:

  • ClusterName=cluster_uajms
  • ControlMachine=slurm-master
  • NodeName=worker[1-2] CPUs=4 State=UNKNOWN
  • PartitionName=normal Nodes=worker[1-2] Default=YES MaxTime=INFINITE State=UP

Paso 3: Validación del clúster

  1. Iniciar el clúster con docker compose up -d.
  2. Ingresar al nodo maestro: docker exec -it slurm-master bash.
  3. Consultar el estado de los nodos con sinfo. Ambos trabajadores deben figurar en estado idle.
  4. Compilar un programa MPI en /shared/hpc: mpicc /shared/hpc/montecarlo_mpi.c -o /shared/hpc/montecarlo_mpi.
  5. Crear y enviar un script de prueba sbatch: ``bash sbatch --nodes=2 --ntasks-per-node=2 /shared/hpc/job_prueba.sh ``
  6. Supervisar la cola con squeue y verificar que la salida se genera en el log compartido.

4. Entregable

Informe técnico en PDF según la file:///home/eliasdev/sistemas_paralelos/10-modulos/M3-mpi-custeres/rubrica-informe-cluster.md con capturas de sinfo, squeue y salida de srun distribuida.