# Actividades de Aprendizaje Autónomo — Módulo 3 (EC3)

**Asignatura:** TEL-420 · Sistemas Paralelos  
**Módulo 3:** Programación Paralela en Memoria Distribuida (MPI y Cústeres)  
**Docente:** Ing. Elias Cassal Baldiviezo  
**Horas de dedicación autónoma:** 8 horas  
**Semanas de ejecución:** 7 a 10  

---

## 1. Justificación y propósito pedagógico

Conforme al apartado 20.3 del Programa Docente del Proyecto Formativo, el aprendizaje autónomo en el módulo 3 afianza las competencias de diseño y orquestación de sistemas distribuidos, desafiando al estudiante a coordinar procesos aislados con memoria privada y a evaluar científicamente el impacto de la red de interconexión física sobre la escalabilidad.

---

## 2. Bloque de Actividades Autónomas Obligatorias

### Actividad A1: Desarrollo progresivo de aplicaciones MPI (Punto a Punto y Colectivas)
- **Momento de entrega:** Fin de la Semana 9.
- **Instrumento de evaluación:** [Rúbrica de Evaluación de Código MPI](file:///home/eliasdev/sistemas_paralelos/10-modulos/M3-mpi-custeres/rubrica-codigo-mpi.md) (40% de EC3).
- **Consigna de trabajo:**
  1. Completar la implementación de las cuatro aplicaciones MPI solicitadas:
     - Anillo de procesos bloqueante libre de interbloqueos cíclicos.
     - Anillo no bloqueante con solapamiento comprobado de cómputo aritmético mediante `MPI_Isend` / `MPI_Irecv`.
     - Aproximación de Monte Carlo para $\pi$ con `MPI_Bcast` y `MPI_Reduce` utilizando generadores congruenciales lineales (LCG) con semillas disjuntas por rango.
     - Multiplicación matricial distribuida por bloques de filas con `MPI_Scatter` y `MPI_Gather`.
  2. Incluir pruebas automatizadas de verificación que aseguren que para $p \in \{2, 4, 8\}$ el resultado numérico coincide con la versión secuencial con un error menor a $10^{-9}$.

---

### Actividad A2: Diseño, configuración y documentación de clúster virtualizado con Slurm
- **Momento de entrega:** Fin de la Semana 9.
- **Instrumento de evaluación:** [Rúbrica de Informe Técnico de Clúster](file:///home/eliasdev/sistemas_paralelos/10-modulos/M3-mpi-custeres/rubrica-informe-cluster.md) (35% de EC3).
- **Consigna de trabajo:**
  1. Construir la receta de Docker Compose o máquinas virtuales KVM/Multipass que despliegue el clúster multi-nodo en las estaciones Dell OptiPlex (Core i7, 32 GB RAM).
  2. Configurar la red virtual, acceso SSH sin contraseñas entre nodos, exportación del sistema de archivos NFS `/shared/hpc` y los demonios `slurmctld` y `slurmd`.
  3. Redactar el informe técnico en PDF documentando la topología de red, el direccionamiento IP, el archivo `slurm.conf` y las pruebas de validación con `sinfo` y `squeue`.

---

### Actividad A3: Experimentación de escalabilidad distribuida y validación del modelo LogP
- **Momento de entrega:** Fin de la Semana 10.
- **Instrumento de evaluación:** [Rúbrica de Pruebas de Escalabilidad Documentadas](file:///home/eliasdev/sistemas_paralelos/10-modulos/M3-mpi-custeres/rubrica-escalabilidad.md) (25% de EC3).
- **Consigna de trabajo:**
  1. Automatizar la ejecución de pruebas con un script de benchmarking sobre Slurm para $p \in \{1, 2, 4, 8, 12\}$ y 3 tamaños de problema.
  2. Calcular medias aritméticas y desviaciones estándar descartando la primera corrida de calentamiento.
  3. Estimar los parámetros del modelo de comunicación $T_{comm} = \alpha + \beta \cdot m$ en la red Ethernet del laboratorio.
  4. Graficar y contrastar las curvas empíricas de Speedup frente a la Ley de Amdahl (escalabilidad fuerte) y Ley de Gustafson (escalabilidad débil).
