U NIDAD T EM ÁTICA 5: M ULTIPROCESADORES . 15. Arquitectura de los multiprocesadores. 16. Multiprocesadores de memoria compartida. 17. Multicomputadores. 15-1 T EMA 15: A RQUITECTURA DE LOS MULTIPROCESADORES . 1. Concepto de multiprocesador. 2. Multiprocesadores de memoria compartida centralizada. 3. Multicomputadores y COWs. 4. Multiprocesadores de memoria compartida distribuida. Bibliografı́a: S. Dasgupta, Computer Architecture: A Modern Synthesis, Volume 2: Advanced Topics, John Wiley & Sons, 1989 J.L. Hennessy & D. A. Patterson. Computer Architecture: A Quantitative Approach 2a y 3a ed., Morgan Kauffman Publishers, 1996 y 2002. Departamento de Informática de Sistemas y Computadores (DISCA) Facultad de Informática de Valencia 15-2 1 CONCEPTO DE MULTIPROCESADOR 1. Concepto de multiprocesador Multiprocesador 1. Dos o más procesadores de capacidades comparables. 2. Cooperando en la ejecución de una tarea. 3. Bajo el control de un único sistema operativo. Cada procesador posee su propia unidad de control → ejecuta su propio código sobre sus propios datos → puede ejecutar cualquier aplicación (no sólo programas vectoriales) ¿Qué se ejecuta en paralelo? Segmentos de un mismo programa → ↓ tiempo de ejecuci ón del programa de usuario. Programas independientes → ↑ productividad del sistema. 15-3 1 CONCEPTO DE MULTIPROCESADOR Granularidad del paralelismo Los procesos necesitan comunicarse y sincronizarse → sobrecarga que disminuye las prestaciones. Granularidad: Número medio de instrucciones ejecutadas entre dos operaciones de comunicación. Fino: Tarea repartida entre muchos procesadores. Menor tamaño de cada proceso. Mayor número de operaciones de comunicación. Grueso: Tarea repartida entre pocos procesadores. Mayor tamaño de cada proceso. Menor número de operaciones de comunicación. Clasificación de los multiprocesadores Criterio: Modelo de comunicación entre los procesos. Variables compartidas. Paso de mensajes. Criterio: Arquitectura de la memoria Memoria compartida. Memoria distribuida. Juntando ambos criterios: Multiprocesadores de memoria compartida centralizada: Variables compartidas + memoria compartida. Multiprocesadores de memoria compartida distribuida: Variables compartidas + memoria distribuida. Multicomputadores, Clusters de PCs: Paso de mensajes + memoria distribuida. 15-4 2 MPS DE MEMORIA COMPARTIDA CENTRALIZADA 2. MPs de memoria compartida centralizada P0 P1 AM0 AM1 .... Pn−1 AMn−1 RED DE INTERCONEXION M0 M1 .... Mm−1 Memoria central Compartida por todos los procesadores, y accesible desde cualquiera. → tambien llamados multiprocesadores simétricos: Symmetric (shared memory) Multiprocessors. Descompuesta en varios módulos, para permitir el acceso concurrente de varios procesadores. Cada procesador debe tener un espacio de direccionamiento suficientemente amplio como para poder direccionarla completamente. El tiempo de acceso a memoria es el mismo, independientemente del par procesador memoria que intervenga. → también llamadas arquitecturas UMA: Uniform Memory Access. 15-5 2 MPS DE MEMORIA COMPARTIDA CENTRALIZADA Red de interconexión Entre procesadores y memoria: • Cualquier procesador debe poder acceder a cualquier m ódulo de memoria. • El que un procesador acceda a un módulo de memoria no deberı́a impedir que otro procesador acceda un módulo de memoria distinto. Configuraciones: • Bus común • Múltiples buses. • Crossbar • Redes multietapa. ¿tiempo de acceso a memoria? Suma de: Tiempo de acceso del módulo. Retardo de la red de interconexión. Retardo debido a conflictos de acceso al módulo de memoria. Retardo debido a conflictos de acceso en la red de interconexi ón. → hay conflictos de acceso a los módulos de memoria y red de interconexión. → necesidad de circuitos de arbitraje en la red de interconexi ón y memoria. → Tiempo de acceso elevado. Problema tanto más grave cuantos más procesadores hayan. ¿Cómo reducir el tiempo de acceso a memoria? Antememorias locales a cada procesador. ⇒ Problema de la coherencia entre las antememorias. 15-6 2 MPS DE MEMORIA COMPARTIDA CENTRALIZADA Mecanismo de comunicación. Mediante variables compartidas, situadas en la memoria. Sincronización, a través de los mecanismos clásicos de exclusión mutua: • Cerrojos: LOCK, UNLOCK • Semáforos: ◦ P(S) if s>0 then s:= s-1 else Bloquear proceso y pasarlo a la cola. ◦ V(S) s := s+1 if Hay procesos en la cola then extraer de la cola. Las operaciones de sincronización deben ser indivisibles: instrucción TAS x (Test And Set x): 1. Leer (x) 2. Verificar la condición 3. Modificar y escribir (x) (en su caso) → El proceso que las ejecuta: 1. No debe perder el procesador. 2. No debe perder el módulo de memoria accedido → la operación de lecturamodificación-escritura debe ser atómica desde el punto de vista de la memoria. 15-7 3 MULTICOMPUTADORES Y CLUSTERS 3. Multicomputadores y Clusters P0 P1 AM0 AM1 M0 M1 .... Pn−1 AMn−1 .... Mm−1 RED DE INTERCONEXION Memoria Fı́sicamente distribuida entre los procesadores. Cada procesador accede a su módulo de memoria sin penalización. El espacio de direccionamiento de cada procesador debe ser suficiente s ólo para acceder la memoria local. El código a ejecutar debe estar copiado en todos los nodos. Red de interconexión Entre procesadores. • Los procesadores se comunican directamente con un subconjunto de los procesadores, • e indirectamente (circulando a través de la red) con el resto. Permiten la comunicación de los procesadores (procesos) por medio de mensajes. Hay conflictos de acceso a la red de interconexi ón, originando retardos extra y requiriendo árbitros. 15-8 3 MULTICOMPUTADORES Y CLUSTERS Prestaciones de la red de interconexión Latencia. Tiempo necesario para envı́ar un mensaje en la red. Productividad. Tráfico máximo que puede circular por la red. Parámetros de diseño de la red que afectan estos parámetros: Topologı́a. Mecanismo de conmutación. Algoritmo de encaminamiento. Mecanismo de comunicación. Mediante mensajes: send(proc,msg),receive(&msg). Sincronización, por medio de las propias primitivas de envı́o/recepción: • Envı́o y recepción bloqueantes. • Envı́o no bloqueante, recepción bloqueante. Las primitivas de comunicación tienen una sobrecarga asociada: llamada al sistema operativo, copia del mensaje de la memoria de usuario a la memoria del sistema, inyección en la red, etc. 15-9 3 MULTICOMPUTADORES Y CLUSTERS Clusters de PCs Idea original: Las estaciones de trabajo suelen estar ejecutando tareas interactivas durante un alto % de su tiempo. Es habitual disponer de una red local (de bajas prestaciones) interconectando las estaciones de trabajo. ⇒ Networks of workstations: Utilización de un grupo de estaciones de trabajo conectadas en red para ejecutar aplicaciones paralelas y distribuidas. RED DE INTERCONEXION (R.I.) Actualmente: Conjunto de PC’s “compactos” (sin teclado ni pantalla) ubicados en un mismo armario. Diferentes factores de forma. Ejemplos: 1U “blade” La red de interconexión es rápida. La principal sobrecarga suele estar en las librerı́as de comunicaciones. Constituyen una alternativa de bajo coste a los multicomputadores. 15-10 4 MPS DE MEMORIA COMPARTIDA DISTRIBUIDA 4. MPs de memoria compartida distribuida Multiprocesadores de memoria compartida centralizada. + Modelo de programación sencillo. - Pocas prestaciones si el número de procesadores es elevado. Multicomputador. + Potencia de cálculo crece con el número de procesadores. - Modelo de programación más incómodo. Solución: Multiprocesadores de memoria compartida distribuida o “Multiprocesadores escalables”: Multiprocesadores con modelo de programación de memoria compartida pero con memoria fı́sicamente distribuida. Caracterı́sticas Múltiples procesadores con su módulo de memoria local. Cada procesador es capaz de direccionar toda la memoria. Cada procesador accede a su módulo de memoria a la máxima velocidad. Cuando se referencia una posición de memoria no local, un mecanismo de conversión envı́a un mensaje al procesador correspondiente → el tiempo de acceso a las posiciones no locales es muy elevado. → Máquinas NUMA: Non Uniform Memory Access. Todas las posiciones de memoria no tienen el mismo tiempo de acceso → Problema de la coherencia entre las antememorias. → Máquinas NCC-NUMA Non Cache Coherent-Non Uniform Memory Access. No hay protocolo de coherencia. Se evita el problema por software. → Máquinas CC-NUMA Cache Coherent-Non Uniform Memory Access. Se emplea un protocolo para garantizar la coherencia entre las antememorias. 15-11