Depto. Arquitectura


Arquitecturas Multiprocesador



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

    Actualizado el 2 de octubre de 2005.
    Antonio Garcia Dopico.