Protocolo MSI
Modificado (M)
- PrLec/PrEsc: Modificado
- PtLec: Genera paquete respuesta (RpBloque) → Compartido
- PtLecEx: Genera paquete respuesta (RpBloque) e invalida copia local → Inválido
- Reemplazo: Genera paquete posescritura (PtPEsc) → Inválido
Compartido (S)
- PrLec: Compartido
- PrEsc: Genera paquete PtLecEx → Modificado
- PtLec: Compartido
- PtLecEx: Invalida copia local → Inválido
Inválido (I)
- PrLec: Genera paquete PtLec → Compartido
- PrEsc: Genera paquete PtLecEx → Modificado
- PtLec/PtLecEx: Inválido
Protocolo MESI
Modificado (M)
- PrLec/PrEsc: Modificado
- PtLec: Genera RpBloque → Compartido
- PtLecEx: Genera RpBloque. Invalida copia local → Inválido
- Reemplazo: Genera PtPEsc → Inválido
Compartido (S)
- PrLec/PtLec: Compartido
- PrEsc: Genera PtLecEx → Modificado
- PtLecEx: Invalida copia local → Inválido
Inválido (I)
- PrLec (C=1): Genera PtLec → Compartido
- PtLec/PtLecEx: Inválido
Ley de Amdahl en Procesamiento Paralelo
Todo programa paralelo o concurrente tiene una parte secuencial que limita la aceleración en una plataforma paralela. Si el componente secuencial es 1/s del tiempo de ejecución, la aceleración máxima es s.
Implicaciones:
- La aceleración máxima es 1/s. Al aumentar s, la aceleración decrece.
- Reducir s es crucial para buenas aceleraciones.
Relevante en paralelización incremental de programas secuenciales.
OpenMP vs. MPI
Ventajas de OpenMP
- Fácil programación y depuración.
- Directivas incrementales para paralelización gradual.
- Ejecución como código serie posible.
- Menor modificación de declaraciones serie.
- Código más fácil de entender y mantener.
Desventajas de OpenMP
- Solo en memoria compartida.
- Requiere compilador compatible.
- Principalmente para paralelización de bucles.
Ventajas de MPI
- Memoria compartida o distribuida.
- Amplio rango de problemas.
- Variables locales por proceso.
- Menor costo en memoria distribuida.
Desventajas de MPI
- Más cambios para paralelizar.
- Depuración compleja.
- Rendimiento limitado por la red.
Asignación Dinámica vs. Estática
Ventajas de Asignación Dinámica
- Ideal para secciones paralelas con iteraciones de duración variable.
- Eficiente en arquitecturas heterogéneas.
Inconvenientes de Asignación Dinámica
- Mayor tiempo de cómputo por generación de hebras en tiempo de ejecución.
- Mayor consumo de memoria.
- Número variable de hebras.
Multithread Temporal: Grano Fino vs. Grano Grueso
Grano fino: Conmutación por turnos rotatorios (Round-Robin) o eventos con latencia.
Grano grueso: Conmutación tras intervalos fijos o eventos de latencia.
Escenario MESI con Petición de Lectura Exclusiva
Si un nodo con un bloque en estado M recibe una petición de lectura exclusiva, debe generar el paquete de respuesta e invalidar su copia local, ya que MESI actualiza la memoria con posescritura.