Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3...

35
Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5 Modelos de consistencia de memoria 3.6 Modelos de interconexión

Transcript of Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3...

Page 1: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

Multiprocesadores3.1 Dominios de aplicación

3.2 Arquitecturas con memoria centralizada

3.3 Arquitecturas con memoria distribuida

3.4 Sincronización

3.5 Modelos de consistencia de memoria

3.6 Modelos de interconexión

Page 2: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

3.1 Dominios de Aplicación

• Problemas que demandan una capacidad de cálculo superior

– Satélites, Medicina, análisis sismológicos, ...

• Freno al aumento de la velocidad de los componentes

– Ley física que da la velocidad de la luz en el vacío

Page 3: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

• Presentación del paralelismo (1966 Flynn)• SISD • SIMD• MISD• MIMD

Page 4: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

• Líneas de desarrollo dentro de las arquitecturas paralelas

– Multiprocesadores– Multicomputadores– Presentan 2 modelos básicos:

– Con Memoria Compartida» Número pequeño de microprocesadores (docenas)» Cachés suficientemente grandes+bus+memoria

compartida central» Muy popular

– Con Memoria Distribuida» Ofrece la solución al ancho de banda» Necesario un sistema de interconexión que proporcione

el ancho de banda necesario

Page 5: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

3.2 Arquitecturas con Memoria Centralizada

• Modelo UMA

• Modelo NUMA

• Modelo COMA

Page 6: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

• Modelo UMA

– Memoria física uniformemente compartida por todos los procesadores

– Todos los procesadores presentan el mismo tiempo de acceso a todas las palabras de memoria

– Cada procesador puede emplear una caché privada

– Los periféricos se comparten de la misma manera

Page 7: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.
Page 8: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

• Modelo NUMA– Tiempo de acceso depende de la ubicación

de la palabra de memoria– Memorias Locales (Forman el espacio de

direccionamiento global)– Coherencia caché con directorios distribuídos

Page 9: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.
Page 10: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

• Modelo COMA– Caso especial del NUMA– La memoria principal se convierte a caché– No existe una jerarquía de memoria en cada

procesador

Page 11: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

Arquitecturas con memoria distribuida

• Exclusión de la coherencia caché

• Protocolos basados en directorios (qué procesadores tienen copias de un bloque y estado del bloque) con invalidación de escritura

• Directorios distribuidos (como la memoria)

Page 12: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.
Page 13: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

Sincronización

• Se intercambia información de control• Se usan mecanismos Hardware• Puede durar algunos ciclos de bus.Para

evitar esto se pueden usar mecanismos de interrupción

• Como ejemplo, los procesos residentes en diferentes procesadores se pueden sincronizar usando barreras

Page 14: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.
Page 15: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

Modelos de Consistencia de Memoria(Comportamiento que

se ve de la memoria)• Fuentes de incoherencia entre las

cachés de los multiprocesadores

• Protocolos Snoopy• En cachés WT• En cachés WB

• Protocolos basados en directorios• Estructuras de directorios• Directorios full-map• Directorios limitados• Directorios encadenados

Page 16: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

• Fuentes de incoherencia entre las cachés

– Ocurre sólo cuando se utilizan varias cachés privadas

– La principal fuente de incoherencias ocurre en la escritura sobre posiciones de memoria compartidas, aunque hay otras causas como son la actividad de I/O y la migración de procesos

Page 17: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

• Protocolos Snoopy– Sirven para asegurar la coherencia en los sistemas

multiprocesadores con bus común.– Mantienen la coherencia a través de una mecanismo

de observación del bus. Cada caché observa todas las operaciones de memoria de las otras cachés, pues todas se llevan a cabo a través de un bus común.

– Cuando un controlador detecta que una transacción a través del bus amenaza el estado de coherencia de un objeto alojado en la caché puede realizar 2 cosas:

» Escritura invalidante. Se invalida la copia de la caché. Al tratar de acceder a ella se produce un fallo caché que implica la necesidad de acceder a memoria compartida para su actualización.

» Escritura actualizante. En lugar de invalidar las copias, directamente se actualizan con el nuevo valor (genera latencias demasiado elevadas de escritura en memoria. No se emplea).

Page 18: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

• Protocolos Snoopy en cachés WT• 2 estados (válido e inválido) almacenados en la propia

caché– Válido. Un determinado bloque de datos está copiado en una o

varias cachés y en memoria principal, y en todas ellas contiene lo mismo. La evolución del estado se describe considerando todo desde el punto de vista de una determinada caché local.

Page 19: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

• Protocolos Snoopy en caches WB– 3 estados para cada copia caché

Page 20: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

• Protocolos basados en directorios• Se utilizan en sistemas multiprocesador

construidos utilizando redes punto a punto o multietapa. En tales redes no existe un mecanismo adecuado de observación (no snoopy).

• Procedimientos de comunicación caros.Los comandos de comunicación sólo se deben enviar a aquellas caches que guarden una copia del bloque. Necesidad de información almacenada en determinados nodos sobre qué es lo que contienen otros (directorios).

• Diferentes protocolos difieren en la información que se almacena en los directorios y cómo se mantiene la misma.

» Directorios centralizados.El directorio central actúa como cuello de botella.

» Directorios distribuidos. Cada módulo de memoria contiene su directorio.

Page 21: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

• Directorios distribuidos.• Están constituidos por entradas, una para cada bloque de

memoria cubierta por ese directorio, y esa entrada contiene varios punteros que especifican en qué cachés locales están las copias de ese bloque. Además, cada directorio contiene un bit de sucio que especifica cuando un solo procesador puede escribir sobre su copia local de ese bloque.

• Según cómo se organizan internamente los directorios, podemos distinguir:

– Directorios full-map– Directorios limitados– Directorios encadenados

Page 22: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

• Directorios full-map– N bits de presencia de procesadores– 1 bit de sucio (información de memoria actualizada o

no)– Tamaño proporcional al cuadrado del número de

procesadores

Page 23: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

• Directorios limitados• Esquema similar al full-map• Número fijo de bits por entrada, según el tamaño del

sistema.• Puede surgir el problema de que se tengan más

copias que bits para un bloque, y en ese caso habrá que invalidar alguna de las copias, simplemente porque no se puede reflejar su presencia en el directorio.

Page 24: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

• Directorios encadenados• La mayor parte del directorio se distribuye

dentro de la propia caché.• Las entradas del directorio están organizadas

como una lista enlazada.• La primera entrada de esta lista se encuentra

en memoria principal y contiene un puntero que indica en qué caché está la primera copia, ésta un puntero que indica dónde está la segunda, ...

• Cuando se invalida un bloque éste debe ser sacado de la lista. Se complica el funcionamiento.

Page 25: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.

Modelos de Interconexión

1. Características de las redes de interconexión (Network Characteristics)

a) Características fundamentales

b) Estado de las redes

c) Redes bloqueantes frente a no bloqueantes

2. Propiedades de las redes

3. Encaminamientos de datos

4. Redes estáticas de conexión

5. Redes dinámicas de conexión

Page 26: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.
Page 27: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.
Page 28: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.
Page 29: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.
Page 30: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.
Page 31: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.
Page 32: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.
Page 33: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.
Page 34: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.
Page 35: Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3 Arquitecturas con memoria distribuida 3.4 Sincronización 3.5.