Arquitecturas Multiprocesador
Índice
-
Introducción
-
¿Es la ejecución paralela una necesidad?
-
Demanda de cómputo
-
Logros tecnológicos
-
Logros en la arquitectura
-
Aspectos económicos
-
Clasificación de las arquitecturas paralelas
-
Paralelismo en datos
-
Vectoriales, Matriciales
-
Neuronales, Asociativos
-
Sistólicos
-
Paralelismo funcional
-
Instrucciones: ILP
-
pipelined
-
VLIW / ¿EPIC?
-
superescalares
-
¿Threads?
-
Procesos: MIMDs
-
Memoria Compartida
-
Memoria Distribuida
-
Multiprocesadores (MP)
-
Qué son
-
Beneficios de su uso
-
Paralelización
-
Quién paraleliza
-
Ley de Amdahl
-
Overhead del paralelismo
-
Proximidad y Equilibrado
-
Tamaño del grano
-
Depuración de programas paralelos
-
Curva de aprendizaje
-
Clasificación de los MP
-
Ejes
-
Visión lógica: M. Compartida vs. M. Distribuida
-
Memoria física: Compartida vs. Distribuida
-
Categorías
-
UMA
-
NUMA / CC-NUMA
-
COMA
-
'Memoria Distribuida' o Multicomputadores
-
Ejemplos
-
MP de memoria compartida
-
Introducción
-
Definición
-
Ventajas
-
Mercado
-
Uso
-
Nomenclatura
-
Problemática
-
Implementación
-
'Escalabilidad'
-
Programación
-
Comunicación
-
Sincronización
-
Tipos: ejs.: locks, barriers
-
Historia
-
Componentes
-
Método de adquisición / liberación
-
Método de espera
-
Implementación: flexibilidad vs. rendimiento
-
locks
-
load / store
-
test&set
-
test&test&set
-
test&set conbackoff
-
load-locked / store-conditional
-
barriers
-
Modelo de coherencia de memoria
-
¿A quién le incumbe?
-
Idea
-
Coherencia Secuencial (Sequential Consistency) de
Lamport
-
Modelos de Coherencia Relajada (Relaxed Consistency)
-
Processor Consistency
-
Weak Consistency
-
Release Consistency
-
Coherencia de caches
-
Justificación del uso de caches privadas
-
Problema de Coherencia de Caches (PCC)
-
Posibles soluciones al PCC
-
Políticas para mantener la coherencia
-
Invalidación (Write-Invalidate)
-
Actualización (Write-Invalidate/Broadcast)
-
Consideraciones de rendimiento: tasa de fallos vs. tráfico
añadido
-
Decisiones de diseño: tamaño del bloque, tamaño
de la cache
-
¿I ó A?: 'compartición'
de grano fino vs. secuencial
-
Variaciones:
-
I:
-
write-once (siempre)
-
read-broadcast
-
A:
-
difusión selectiva
-
competitive snooping
-
Implementaciones: Hw vs. Sw
-
Hw
-
Implementaciones snoopy
-
write-through
-
write-once (Goodman, 1983)
-
ej. actualización: DEC Firefly
-
Consideraciones generales de las implementaciones snoopy:
¡la vida (real) es dura!
-
Complicaciones de diseño
-
Situación con caches multinivel
-
Implementaciones con Directorios
-
Idea
-
Uso real
-
Implementaciones
-
Directorios completos (full-map): Tang, Censier, Stenström
-
Directorios limitados
-
Directorios encadenados
-
Implementaciones con "redes coherentes"
-
Sw
-
Soluciones (¡más que implementaciones!) Sw:
idea
-
Ventajas
-
Clasificación (Tartalja y Milutinovic, 1996)
-
"El Ejemplo" (Cheong y Valdenbaum, 1990)
-
Invalidación indiscriminada
-
Invalidación selectiva
-
Invalidación selectiva con versiones
-
MP de memoria distribuida
-
Introducción
-
Definición
-
Ventajas
-
Mercado
-
Uso
-
Nomenclatura
-
Problemática
-
'Escalabilidad'
-
Reducción de la frecuencia de comunicación
-
Sistema de comunicación
-
Topología
-
Técnica de conmutación
-
Encaminamiento
-
Organización de cada nodo
-
Modelo de computación en la arquitectura
-
Generaciones
-
Programación
-
Primitiva de comunicación (network transaction
primitive)
-
Implementación del modelo de Memoria Compartida
-
Implementación del modelo de Paso de Mensajes: síncrono
vs. asíncrono
-
Ejemplos
-
Programación paralela
-
Introducción
-
¿Por qué deben paralelizarse algunas aplicaciones?
-
Problemas que surgen frente a las aplicaciones secuenciales
-
Cómo paralelizar una aplicación
-
Descomposición del problema
-
Asignación de tareas
-
Paradigmas de programación paralela
-
Multiprocesadores de memoria compartida.
-
Multiprocesadores de memoria distribuida.
-
Memoria compartida. Threads.
-
Qué son y su origen
-
Arquitectura típica. Ejemplo Solaris
-
Funciones básicas.
-
Problemas que pueden plantearse
-
Aspectos relativos a la implementación de una biblioteca
de threads
-
Memoria Distribuida. MPI.
-
Origen
-
Arquitectura típica. Ejemplo SP 2
-
Funciones básicas
-
Problemas que pueden plantearse.
-
Visualización.
-
¿Por qué es necesaria?
-
Ejemplos
-
Conclusiones
-
Redes de interconexión
-
Evaluación de MP
-
Sistemas Operativos para MP
-
Introducción
-
Multiprocesamiento simétrico vs. asimétrico
-
Sincronización
-
Planificación
-
Otros aspectos:
-
Interrupciones
-
Gestión de memoria: coherencia de TLBs
Actualizado el 2 de octubre de 2005.
Antonio Garcia Dopico.