sistemas multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/sistemas multiprocesadores...

76
Sistemas Multiprocesadores Arquitectura y Tecnología de Computadores Universidad de Sevilla Prof. Saturnino Vicente Díaz

Upload: others

Post on 13-Jul-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Sistemas Multiprocesadores

Arquitectura y Tecnología de ComputadoresUniversidad de Sevilla

Prof. Saturnino Vicente Díaz

Page 2: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

1. Introducción• Niveles de paralelismo• Introducción a los sistemas multiprocesadores• Argumentos a favor de los multiprocesadores• Argumentos en contra de los multiprocesadores• Investigación actual

Page 3: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Introducción

Paralelizador/ reescrituraHLL

S.O.

Implemen-tación

ISA

LógicaDigital

Electrónica

Compilador/librerías

TLP(Multiprocesadores)

DLP extraído(SIMD / PV)

Vectorizador

ILP(VLIW / Superesc)

DLP extraído(Núcleos

Multimedia)

Encadenamiento

Paralelismo a nivel de bits

Desenrollado

Si existe DLP

Fig. 1.1

Niveles de paralelismo

Page 4: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Introducción• Sistemas multiprocesadores

– En los sistemas actuales la CPU • es un todo monolítico• está separada de la memoria principal y de la E/S• Alcanza grandes velocidades

– Vamos a romper con esta concepción para diseñar los multiprocesadores

– Lo que vamos a construir se parece a:

Cuidado conel progreso de las apli. reales

SistemasMultiprocesadores

UniProc. baratoaltas prestaciones

APROVECHAR

CódigoParalelo

ESCRIBIR

Comunicacióneficiente

DISEÑARReduce el nº de mensajes

Fig. 1.3

Fig. 1.2

Page 5: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Introducción– Idealmente, , lo cual es imposible

• La red de interconexión juega un papel importante– Comunicación entre procesadores– Comunicación entre procesadores y memoria

• La memoria está separada de los procesadores, pero no totalmente ⇒ Cada procesador tiene su caché local. La forma de organizar la jerarquía de memoria es vital

Nt

t uniejecmultejec

,, =

Fig. 1.4

Page 6: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Introducción• Argumentos a favor de los Multiprocesadores

– En 15 ó 20 años, el rendimiento de los Uniprocesadores llegará a su fin, debido a dos razones:

• Incrementar el rendimiento conectando uniprocesadoresen paralelo

– Menos costoso que diseñar un nuevo procesador– Más flexible para todo tipo de soft que un nuevo diseño

• El ritmo de innovación en la endoarquitectura es difícil de mantener indefinidamente

– Actualmente el incremento en transistores es superior al de rendimiento (nºtran x 4 ; rend. x 3 cada 3 años)

– Algunos estudios indican el inicio de la saturación en prestaciones de los uniprocesadores

– Parece que los MPr’s son la única forma de aumentar considerablemente el rendimiento a un precio razonable

Coste

PrestacionesUniprocesador

Coste de saturación 1990’s

1980´s (VLSI)

1970´s (Circuitos integrados)

1960´s (Transistores discretos)

Fig. 1.5

Page 7: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Introducción• Argumentos en contra de los Multiprocesadores

– Cada 2 ó 3 años, alguien anuncia el fin de los UniPr• A los 2 ó 3 años se disparan las prestaciones por una

nueva idea arquitectónica. Esto es debido a que hay mucho mercado ⇒ mucha inversión ⇒ mucho avance

– Segmentación– Vectorización– Superescalaridad– HyperThreading, etc.

– Lentitud en las comunicaciones• Latencia a memoria local es del orden de pocos ns• En MPr, si un Pr necesita un dato remoto ⇒alta latencia,

del orden de microsegundos (Ejemplo)– Limitación del paralelismo de las aplicaciones

• La ley de Amdahl nos indica el efecto del paralelismo de las aplicaciones en la aceleración

– Intuitivamente – Sin embargo, la mejora solo afecta al porcentaje de

código que se pueda paralelizar» Dado un código normal, un compilador intenta

paralelizar el código, y lo consigue en la mitad del programa

» Suponer que queremos conseguir una aceleración de 80, con 100 procesadores ¿Qué fracción del programa debe ser paralela?

Ntt uniejecmultejec ,, =

( )2

12

*21

21

1

1

1→

+=

+=

+−=

NN

NNFF

A

75,99≈F

Page 8: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Introducción• Investigación actual

– Software más adaptado a la computación paralela• Nuevos algoritmos

– Se obtendrían mayor rendimiento• Nuevos lenguajes paralelos• Que los compiladores extraigan el paralelismo implícito

en los programas no escritos explícitamente en paralelo• Portabilidad de los programas entre distintas plataformas

– Reducir/ocultar la alta latencia remota• Mediante hardware (p.e. cachés de datos compartidos)• Mediante software, (p.e. reestructurando los accesos a

datos para que sean más locales, ocultar los accesos remotos mediante ejecución de otras partes del código, etc.)

– Flexibilidad en los multiprocesadores • Distintas aplicaciones pueden requerir distintas

topología para extraer más paralelismo. Los MPrdeberían poder cambiar su estructura (topología, distribución de la memoria, etc) de forma dinámica y fácil, para así, adaptarse a las distintas aplicaciones

Page 9: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

2. Taxonomía

• Clasificación en función del flujo de instrucciones y datos

• Clasificación en función de la organización de la memoria

• Clasificación en función de la granularidad

Page 10: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía

• Clasificación en función del Flujo de instrucciones y datos– Propuesta por Flynn hace 30 años– SISD (Single Instruction, Single Data)

• Basados en arquitectura Von Neumann• Monoprocesador (normal o segmentado)• Velocidad limitada:

– Velocidad de ejecución de las instrucciones– Velocidad de transferencia de información entre la

CPU y el sistema de memoria

– SIMD (Single Instruction, Multiple Data)• Una simple unidad de control y múltiples unidades

de procesado (U.F.)• Pensados para procesamiento vectorial

– La misma operación con múltiples datos– Deben tener una parte SISD para el control de flujo

de datos (bucles, bifurcaciones, etc)• Suelen ser de propósito específico• Los PV son muy similares. La diferencia está en

que los PV sólo disponen de una U.F.– MISD (Multiple Instruction, Single Data)

• No existe ninguno comercial hoy en día

Page 11: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía

– MIMD (Multiple Instruction, Multiple Data)• Sistemas multiprocesador y multicomputador de

propósito general– Son flexibles, con el soporte hard y soft adecuados.

Pueden ser: Máquinas monotarea, multitarea, híbridas e incluso máquinas SIMD

– Pueden construirse con las ventajas coste/prestación del microprocesador de propósito general

Fig. 2.1.

Page 12: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía

• Clasificación en función de la organización de la memoria – La memoria es determinante en un sistema con

tanto ancho de banda de memoria (ABmem)• El ABmem de 1 sólo procesador es muy grande• La memoria puede servir para comunicarse entre

los procesadores– UMA (Uniform Memory Access)

• Espacio de direcciones de memoria compartido• Tiempo de acceso uniforme para toda dirección• Hardware bastante simple.• El cuello de botella es el acceso a memoria

principal, lo cual implica:– Grandes cachés en cada procesador– El número de procesadores no puede ser muy

alto. Hoy en día N≤32.

Fig. 2.2.

Page 13: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía• Multiprocesadores muy populares hoy en día:

– Todos los SMP’s (Multiprocesadores simétricos con memoria compartida basado en bus común)

– bi, quad-Pentium– Sun Enterprise 10000 (crossbar)

• Programación y comunicación– Al tener espacio de direcciones de memoria

compartida ⇒ Se adapta perfectamente a la programación multihilo (multi-thread)

– También se puede usar para programación multiprocesos, pero sería más lento. La comunicación entre procesos sería mediante intercambio de variables en la memoria compartida

– Surge el problema de la coherencia entre cachés ⇒disponer de Hard adicional para solucionarlo

Fig.2.3. Organización del Pentium Pro de 4 procesadores “quad pack”

Page 14: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía

– NUMA (NonUniform Memory Access)

• Espacio de direcciones de memoria compartido• Tiempo de acceso no uniforme para toda dirección.

Depende de si accedemos a memoria local (no a caché) o a remota.

• Debido al incremento de prestaciones del uniprocesador y del AB requerido, ésta es la única solución para sistemas con muchos procesadores

• tacc pequeño en accesos a memoria local• Hard de la red es complejo, necesita redes de

interconexión especiales. Existen distintas líneas de comunicación separadas ⇒ mayor AB

• El problema de la coherencia es más difícil de mantener en hard

Fig.2.4. Modelo de multiprocesador NUMA con memorias locales compartidas

Page 15: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía• Estos multiprocesadores son escalables

– Escalable: Si crece el número de procesadores N, entonces la memoria crece como orden(N). Esto es gracias a que cada procesador lleva su propia memoria

– Los procesadores UMA no son escalables, puesto que si aumentamos el número de procesadores, la memoria es la misma.

• Programación y comunicación– Comunicación entre procesadores es mediante

variables globales– Al tener espacio de direcciones de memoria

compartida ⇒ Se adapta perfectamente a la programación multihilo (multi-thread)

– Debe existir cacheo de datos remotos en hard, aunque la coherencia sea compleja

– Debe existir soporte hard para el acceso remoto» Ld local, provoca acceso a caché o memoria

local» Ld remoto, provoca interrupción I/O a la red

– Si existe coherencia, el código NUMA es totalmente compatible con UMA. Esto supone una ventaja, puesto que los UMA están muy extendidos y hay muchas aplicaciones desarrolladas. El programador debe tener cuidado con los accesos remotos

• Ejemplos: TC2000, KSR-1, Standford Dash, BBN Butterfly, Cray T3D

Page 16: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía– MPM (Message Passing Machines)

• Espacio de direcciones de memoria distribuido• Son compatibles en hard a los NUMA• Cada procesador es un computador independiente del

resto• Fácilmente escalable

– El mecanismo de comunicación es a través de mensajes (igual que la comunicación entre procesos del S.O.). No necesita mecanismos hard ni para controlar la coherencia de cachés (pues son espacios distintos de direcciones), ni para implementar los accesos remotos

– La red es la parte más compleja de escalar

Fig.2.5. Modelo de multiprocesador MPM

Page 17: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía• Programación y comunicación

– Programación orientada a multiprocesos– Comunicación se realiza por mensajes. Existen

librerías estándar que:» Realizan la mensajería» Distribuyen los procesos por la máquinas

declaradas del multicomputador– Comunicación explícita, lo cual tiene que ser tenido

en cuenta por los programadores. Esto obliga a estar pendiente de ella e intentar ocultar la latencia

– El overhead de comunicación es muy alto, luego interesa enviar datos grandes, p.e. Páginas

• Ejemplos de multiprocesadores MPM– Todos los Clusters del mercado– Constelaciones

» Es un cluster» Cada nodo es un UMA con uno número de

procesadores >= 16– IBM SP-2 (CPU: RS6000)– Intel/Sandia Option Red (CPU: Pentium Pro)– Intel Paragon (CPU: i860)– CRAY T3E (CPU: DEC Alpha 21164)– CM-5, nCUBE 2, Comic Cube, etc.

Page 18: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía

Fig.2.6. Modelos de multiprocesadors MPM. a) IBM SP-2, b) Intel Paragon, c) CRAY T3E

a) b)

c)

Page 19: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía

Fig.2.7. Resumen de la clasificación según la organización de la memoria

UMA No tienesentido

MPMNUMA

Disposiciónlógica

Disposiciónfísica

Espacio de direc.compartido

Espacio de direc.disjuntos

Memoriacentralizada

Memoriadistribuida

Distinto software, casi igual hardware

Igual software, distinto hardware.

Threads en Paralelo

Procesos en Paralelo

Page 20: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía

– Emulación• Se puede emular un MPM en un NUMA o

viceversa. El hard es muy parecido• El MPM se emula fácilmente con un NUMA. La

emulación de paso de mensajes es sencilla si se tiene memoria compartida (escribir/leer en una determinada dirección de memoria)

• El NUMA es más difícil de emular con un MPM– Cualquier Ld/St requiere un overhead tremendo

» Llamar al S.O. para traducir la dirección» Comprobar protecciones» Crear el mensaje

– No tiene sentido enviar 1 solo byte o palabra, sino muchos datos de una sola vez, para ello podemos limitar la compartición de datos solo a páginas de memoria virtual ⇒ Tamaño de datos comunicados es muy grande y, por tanto, el overhead por byte es pequeño

Page 21: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía

– Mercado actual de los multiprocesadores• Los UMA se han introducido con gran éxito en el

mercado (memoria centralizada)– Fáciles de contruir

» Basados en bus común» Hard especial para mantener la coherencia

– Los microprocesadores comerciales estándar llevan soporte para UMA

– Bien caracterizados y documentados– Se adaptan bien a sistemas multiusuario– Limitación: nº de procesadores que soporta– AB solicitado por cada procesador crece y el bus

común tiende a saturarse cada vez más– Se adaptan bien a los cluster y son utilizados para

construir las constelaciones.• Tendencias hacia memoria distribuida

– Escalables– Los NUMA son compatibles en soft con los UMA,

luego puede aprovechar el soft ya desarrollado» El único problema es que el hard para mantener

la coherencia de los cachés es más complejo, pero en los nuevos procesadores (Alpha 21364) ya se incluye dicho hard

Page 22: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía– Los supercomputadores se fabrican con cientos, o

miles de microprocesadores comerciales (MPP, Massively Parallel Processors). Existen gran interesen ellos, pero:

» El mercado no es muy grande comparado con UMA

» Las herramientas de programación no están maduras: Lenguajes de programación, compiladores, etc

» No está claro el mecanismo de comunicación, tipo NUMA (mem. Compartida), tipo MPM (mensajes), o híbridos (sólo acceso remoto compartido a una página entera)

– Los MPM se están expandiendo rápidamente, sólo necesitan:

» Una librería (p.e. PVM, MPI)» Una red, que puede ser la Ethernet estándar

CLUSTERS

Page 23: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía

328 320293

343

254

195

10 21

69112

145

206161 157131

1758

643

93

280

50

100

150

200

250

300

350

400

1997 1998 1999 2000 2001 2002

MPP

Cluster

Constellations

SMP

Tipos de sistemas usados en los 500 computadores más rápidos del mundo

Page 24: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía

Tipos de procesadores con los que están construidos los NOW - ClustersNOW (Network of Workstations)

Page 25: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía

• Clasificación en función de la granularidad– Relación entre el nº de procesadores que tiene el

sistema y la potencia de cada uno• Grano grueso (coarse-grain)

– Nº relativamente pequeño de procesadores– Procesadores de grandes prestaciones– CRAY Y-MP, de 8 a 16 proc. de varios Gflops

• Grano fino (fine-grain)– Nº grande de procesadores– Procesadores de pocas prestaciones– Sólo van bien con aplicaciones de alta concurrencia– Orientados a propósito específico– CM-2, 64 KProc. de 1 bit– MasPar MP-1, 16 KProc de 4 bits

• Grano medio (medium-grain)– Centenares de procesadores– Procesadores de prestaciones normales en su día– Puede usar procesadores baratos estándar– CM-5, nCUBE 2 y Paragon XP/S

Page 26: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Taxonomía

– Un parámetro que da una idea de la granularidad es:

• Si la granularidad es grande– Computador paralelo optimizado para ejecutar

algoritmos que no requieren comunicaciones frecuentes

• Si la granularidad es pequeña– Computador paralelo optimizado para ejecutar

algoritmos que requieren comunicaciones frecuentes

básicancomputacióunaparanecesitado

básicaóncomunicaciunaparanecesitado

tt

adGranularid =

Page 27: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

3. Multiprocesadores con memoria centralizada

• La coherencia en multiprocesadores UMA• Protocolo de coherencia MSI• Prestaciones de los protocolos de coherencia

en UMA

Page 28: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Multiprocesadores con memoria centralizada

– Problemas que surgen• El overhead por acceder a la memoria compartida

es muy grande. Hay que usar cachés• Debemos asegurar la coherencia de los datos en

dichos dispositivos• Cuando usamos un dato privado ⇒ traerlo a caché• Si accedemos a un dato compartido, hay que traerlo

a caché, pero si otros procesadores también acceden al dato y se lo llevan a su caché, existirán varias copias distintas del mismo dato. Si algún procesador modifica el dato ⇒ Problema de coherencia

– Solución• Intentar evitar las incoherencias mediante hard• En UMA se usan protocolos de husmeo (snooping)

– Se pueden utilizar gracias a tener un bus único y compartido de comunicación

– Los controladores de cachés locales espían el bus para ver si circula algún dato de alguna línea que tenga almacenada en su caché

– Los cachés deben de estar provistos de 2 puertos de acceso (p.e. replicando la memoria de etiquetas)

» Uno para el acceso del procesador» Otro para que el controlador pueda comparar

las direcciones que aparecen por el bus

Page 29: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Multiprocesadores con memoria centralizada

– Funcionamiento del acceso a un caché CB• Acierto de lectura en caché: no sucede nada• Acierto de escritura en caché

– Sacar el dato al bus, antes de escribir el dato, para informar al resto de procesadores de la escritura. Éstos actuarán en consecuencia

– Escribir el dato• Fallo de lectura en caché

– Traerse la línea correcta a caché, mediante una petición al bus

– El resto de procesadores espían el bus. Si tienen dicha línea más actualizada que la memoria principal,

» Deben dársela a la CPU que la solicitó» Actualizarla en la memoria principal,

quedando limpia y compartida– La línea a reemplazar se baja a memoria, en caso

de que esté sucia• Fallo de escritura en caché

– Unión de los dos casos anteriores

– Si una caché es informada de una escritura de un dato que también contiene ella, tiene 2 posibilidades:

• Invalidación en escritura• Actualización de escritura o difusión

Page 30: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Multiprocesadores con memoria centralizada

– Invalidación en escritura• Todas las cachés que contengan tal línea (con el dato

escrito) , las invalidan• Cuando quieran acceder a una línea inválida, deberán

pedirla a memoria– Pondrán la dirección en el bus– La CPU (o la memoria principal en su caso) con el dato

actualizado les responderá• Tras una escritura, sólo existe una copia válida de la

línea• El comportamiento de un cache frente a otro es CB

– Actualización de escritura o difusión• La CPU que escribe, difunde el dato y la dirección por

el bus• El resto de CPU’s que las contienen la actualiza• Tras una escritura, existen varias copias válidas de la

línea• El comportamiento de un cache frente a otro es WT

– Hoy en día sólo se usa el primer método, ya que reduce el AB que consume, de forma análoga al CB:

• Varias escrituras por la misma CPU en la misma línea– Varios accesos al bus en el segundo método– En el primer método, tras el primer acceso la CPU sabe

que se invalidaron el resto de copias ⇒ no accede más

Page 31: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Multiprocesadores con memoria centralizada

• Protocolo de invalidación CB (MSI)– Usado en la Silicon Graphics 4D– El estado de una línea puede ser:

• Modified (M):– La CPU ha invalidado la línea en los otros cachés– Ha modificado el dato y la línea es suya (es exclusiva)

• Shared (S):– No se ha detectado ninguna escritura sobre la línea– La línea es compartida por todos los procesadores

• Invalid (I):– Una CPU escribió en ella y le obligo a invalidarla

– El procesador hace dos tipos de peticiones al caché, lecturas (PrRd) y escrituras (PrWr)

• Si el dato no está en caché– Una línea actual puede que sea reemplazada– Si el estado de la línea a reemplazar es M, deberá ser

escrita en memoria principal

– El bus permite las siguientes transacciones• Bus Read (BusRd):

– Generada por un PrRd que falla en el caché– El controlador del caché pone la dirección en el bus y pide

una copia de la línea que no modificará – El sistema de memoria suministrará el dato– El procesador espera un dato de respuesta como resultado

Page 32: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Multiprocesadores con memoria centralizada

• Bus Read Exclusive (BusRdX)– Generada por un PrWr para un bloque que o no está en el

caché, o si está pero no en estado M– El controlador del caché pone la dirección en el bus y pide

una copia exclusiva que modificará – El sistema de memoria (prob. otra caché) le dará la línea– El resto de cachés invalidarán dicha línea– La escritura puede ser realizada– El procesador recibirá un ACK como resultado

• Bus Write Back (BusWB)– Generada por un controlador de caché cuando hay un CB– El procesador no sabe nada de esta transacción, luego no

espera respuesta– El controlador pone la dirección y la línea en el bus– La memoria se actualiza

Page 33: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Multiprocesadores con memoria centralizada

– La máquina de estados es la siguiente

– Ejemplo de utilización del protocolo MSI

Flush = enviar la línea modificada al bus, para guardarla en memoria principal y pasarla a otro procesador, en caso de que la solicite

Transacciones obtenidas por husmeo

Transacciones generadas por el procesador

Page 34: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Multiprocesadores con memoria centralizada

• Prestaciones del husmeo (snooping) de caché

– No es fácil ver la influencia de todos los factores, pero:• Uso masivo de datos ⇒ mayor influencia • Uso limitado de datos ⇒ mayor influencia

– Aumento del número de procesadores• El Mr es aproximadamente el mismo• El Mr,coherencia crece, puesto que la cantidad de caché

total del sistema es mayor– En general, los fallos de coherencia no son una carga

excesiva en el sistema

coherenciaruniprocrr MMM ,, +=

conflictorcapacidadrforzosoruniprocr MMMM ,,,, ++=

uniprocrM ,

coherenciarM ,

Page 35: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

2.4 Multiprocesadores con memoria distribuida

• Coherencia en multiprocesadores NUMA• Directorio distribuido• Protocolo simple del directorio: USX• Prestaciones de los protocolos de coherencia en

NUMA

Page 36: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Multiprocesadores con memoria distribuida

• Multiprocesadores NUMA– Memoria distribuida– Espacio de direcciones compartido– AB a memoria es N veces el AB de un procesador– Escalabilidad obvia de la memoria y del caché– Datos pueden ser indistintamente locales o remotos– Problemas al intentar cachear datos remotos

• No existe un medio compartido y común para todos• No es posible hacer “snooping”

• Solución al problema de coherencia– La solución hard es más compleja que en UMA– Han existido máquinas con control de coherencia por

software (máquinas NC, NonCoherent). CRAY T3D – Los datos compartidos se declaran no cacheables– Si el compilador/programador detecta que un dato

compartido será leído muchas veces, y no escrito, realiza un cacheo por software

» Copia el dato en una variable local privada» Trabaja con esta copia hasta que por software sepa

que la copia es mala (otro procesador la modifica)

Page 37: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Multiprocesadores con memoria distribuida

– Desventajas de las máquinas NC• Detectar la posibilidad de cacheo (compilador)

– Posible en bucles “for” simples– Imposible en accesos a memoria dinámica

» Sólo se sabe la dirección en tiempo de ejecución» El compilador no se puede arriesgar» Los declara No Cacheable ⇒ Perder prestaciones

– Se pierde tiempo en hacer la copia de la variable• Cuando se cachean variables remotas de una sola

palabra se pierde la ventaja de la localidad de datos• Estos dos problemas se acentúan debido a la alta latencia

de la red – CRAY T3D

» tiempo de acceso a caché = 2 ciclos» tiempo de acceso a memoria remota = 150 ciclos

– Solución Hard• Incluir algún medio compartido para el control de la

coherencia– En los NUMA el nº de procesadores es muy alto– Si el nº de procesadores es alto ⇒ saturación del medio

• Distribuir sistema de coherencia. Directorio distribuido

Page 38: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Multiprocesadores con memoria distribuida

• Directorio distribuido– Creamos en cada nodo del NUMA un “directorio”

• Añadimos una entrada por cada línea de memoria• Añadimos información sobre cada línea (estado,

ubicación y modificaciones)• Cada línea de caché almacena su estado como en snoop

– Al caché sólo le importa la coherencia con los otros– Le da igual que la línea sea de la memoria local o remota

• El estado de una línea en el directorio puede ser:– S (Shared)

» Otros nodos la han leído, pero no modificado» La tienen almacenada en su caché local» Necesitamos saber que nodos la tienen. Añadir un

bit por cada nodo ⇒ 1 comparte la línea (0 no). Vector de compartición

– X (Exclusive)» Sólo un procesador tiene la copia actualizada

(propietario). Ha escrito sobre ella– U (Uncached)

» Ningún procesador la ha cacheado• El controlador del directorio

– modifica el estado de la línea en memoria según le vengan mensajes de otros procesadores

– envía mensajes a otros procesadores, si fuera necesario

Page 39: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Multiprocesadores con memoria distribuida

• Por ejemplo, si Pj escribe en una línea compartida alojada en Pi

– Pj debe enviar un mensaje de escritura a Pi

– Pi lee del vector de compartición los Premotos activos» Les comunica que invaliden dicha línea» Invalida la línea de su caché, en caso de que esté» También se lo comunica a Pj, que lo usa como ACK

• Protocolo simple del directorio: USX– Sea Pj un nodo con su directorio. Las peticiones que

modifican el estado de una línea suya son:• RM. Fallo de lectura de un Pi (Pi puede ser Pj)• WM. Fallo de escritura de un Pi (Pi puede ser Pj)• WH. Acierto de escritura• DataCB. Actualización de línea por CB

– Usaremos la siguiente notación en la máquina• (petición)procesador ⇒ Acción• = entrada en el vector de compartición• D.Rp = envío de la línea• Inv = mensaje de invalidación de línea• Fetch = mensaje para provocar el volcado de la línea

almacenada en caché a memoria. Cambia el estado de la línea en el caché “Shared”

vr

Page 40: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Multiprocesadores con memoria distribuida

– La máquina sería:

• Prestaciones de los directorios distribuidos– Es análogo al “snooping”

– Los fallos de coherencia se controlan por el directorio de la memoria de cada procesador (y no por el caché)

• El aumento del tamaño de caché no hará decrecer mucho el Mr,coherencia, pues la memoria es la misma. Sin embargo el caché expulsará menos líneas lo cual es beneficioso

coherenciaruniprocrr MMM ,, +=

U S

X

{ }ip

i

Pv

RDInvWM

=

r;.

;

{ }ipi

Pvv

RDRM

+=

⇒rr

;.

{ }ipi

Pv

RDRM

=

⇒r

;.

{ }ip

i

Pv

RDFetchInvWM

=

r;.

;/

{ }=vr

{ }ipi

Pv

RDWM

=

⇒r

;.

{ }ip

i

Pvv

RDFetchRM

+=

rr;.;

{ }=⇒ vDataCBr

Page 41: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión• Introducción• Redes de interconexión dinámicas (indirectas)• Redes de interconexión estáticas (directas)

– Mecanismos de rutado– Coste de la comunicación

Page 42: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión• Introducción

– Entre la más sencilla (bus compartido) y la más compleja (totalmente conectada), existe una gran diversidad de redes, aunque sólo 7 u 8 han tenido éxito comercialmente

– Compromiso entre el coste y el rendimiento– Parámetros que influyen en el coste

• Nº de conmutadores (switches)• Nº de procesadores por conmutador (grado)• Nº total de líneas (Nºenlaces * Anchura en bits)• Longitud física de los enlaces• Implementación real (más simple 2D que 3D)

– Parámetros que influyen en el rendimiento• Diámetro de la red

– Máxima distancia entre cualquier dos procesadores de la red. La distancia entre dos procesadores es definida como el camino más corto (en término de número de enlaces) entre ellos. Puesto que la distancia determina el tiempo de comunicación, las redes con pequeños diámetros son mejores

• Ancho de bisección y AB de bisección:– Ancho de bisección de una red es el número mínimo de canales a

cortar para dividir la red en dos mitades iguales. El AB bisección es el producto del ancho de bisección por el AB de cada canal. Este parámetro nos indica el ancho de banda posible entre las dos mitades

• AB agregado normalizado – Número máximo de comunicaciones simultaneas multiplicado por

el AB de cada canal

Page 43: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión• Posibilidad de contención

– Un nodo puede tratar una cantidad finita de información, luego puede darse el caso de que se congestione. Esto provocaría una contención de datos que serán servidos cuando se pueda ⇒ retraso

» Contención en el origen» Contención en el destino

• Rendimiento variable en función del patrón de comunicación (reconfigurable)

– Dependiendo de si conocemos o no el patrón, podemos optar por un tipo u otro de red. Usaríamos la que nos ofrezca mejores prestaciones

• Tolerancia a fallos– Una red adaptada a un algoritmo, puede fracasar

estrepitosamente si un nodo se estropea, lo cual es fácil si el número de nodos es alto

• Conectividad– Es una medida de la multiplicidad de caminos entre dos

nodos. Se puede definir como el mínimo número de enlaces que hay que eliminar de una red para romperla en dos redes desconectadas. Esta medida es importante, puesto que indica como evitar la contención si existe un enlace congestionado (si existe rutado inteligente)

• Adaptación a distintos algoritmos– Una red no debe de estar optimizada exclusivamente para

un determinado algoritmo

Page 44: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión– Han surgido dos filosofías en las redes

• Redes dinámicas (indirectas)– Aleja los conmutadores (switches) de los procesadores y

los centraliza en agrupaciones configurables dinámicamente, para amoldarse a los requerimientos de comunicaciones de las aplicaciones

• Redes estáticas (directas)– Ubica un conmutador por cada nodo e interconecta esos

conmutadores » Las conexiones directas son punto a punto y no

pueden ser modificadas durante la ejecución de un programa

» De forma que procesador y conmutador se dibujan juntos

– Mientras no se diga lo contrario los conmutadores son bidireccionales

– Una red es simétrica si su topología es la misma observándola desde cualquier nodo. Estas son más fáciles de implementar y de programar

P1

P2

P3

P1

P2

P3

Conmutadores

Page 45: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión• Redes de interconexión dinámicas (indirecta)

– Típicamente usadas para NUMA– Los switches se alejan del procesador– El camino entre un procesador y otro, se realiza a

través de varios switches– Los tipos más comunes son:

• Red de barras cruzadas (CrossBar)• Red basada en Bus común• Árboles• Red multietapa

Page 46: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión– Red de barras cruzadas (CrossBar) [NUMA]

• Es la red dinámica con mayor AB– Mayor capacidad de interconexión– Latencia constante, independiente del número de nodos

• Es la red dinámica de mayor coste • Para cada dos nodos hay un conmutador que puede

proporcionar una conexión dedicada entre ellos

• Los módulos etiquetados como Mi pueden ser módulos de memoria o procesadores

• En el caso de comunicar procesadores con memoria– Si la memoria no es multipuerto, sólo podrá servir a un

procesador a la vez– Si varios procesadores solicitan acceder al mismo módulo

» La red debe resolver el conflicto» El comportamiento de cada conmutador es similar al

de un bus– Sin embargo, la red permite que un procesador pueda

generar una secuencia de direcciones para acceder simultáneamente a varios módulos

canalABNAB *Bisección =

Page 47: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión– Red basada en Bus [UMA]

• Tiene el AB más limitado de todas las redes dinámicas– Sólo un dispositivo puede usar el bus en un momento

determinado• Tiene el menor coste de todas las redes dinámicas• El emisor de la información es llamado “maestro” y el

receptor “esclavo”• Existe un arbitraje del bus que se encarga de resolver los

posibles conflictos de acceso

Page 48: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión– Red multietapa [NUMA, MPM]

• Formada por una serie de etapas de conmutadores (switches) que están conectados con los conmutadores de las etapas adyacentes mediante conexiones estáticas

– Conmutador a x b es un dispositivo con a entradas y b salidas

» normalmente a y b son potencias de 2 (no siempre)» Una entrada puede conectarse a una o más salidas» Una salida sólo puede estar conectada a una entrada» un tipo especial sería el 2x2

• Redes con gran flexibilidad. Disponen de la capacidad de reconfigurarse para establecer dinámicamente las conexiones deseadas entre las entradas y las salidas

Page 49: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión• Las redes multietapa difieren en:

– Tipo de conmutadores que utilizan» los binarios son los más usados

– Clase de patrones de conexión entre etapas» barajamiento perfecto» mariposa» conexión en cubo, etc

• Las redes multietapa más utilizadas son las redes omega o variaciones de estas

• Concepto de permutación barajamiento perfecto (σ)– El dominio es el conjunto de los enteros entre 0 y n-1– Su definición es:

– donde es la representación binaria del entero x

0 000 000 01 001 001 12 010 010 23 011 011 3 3 011 110 64 100 100 45 101 101 56 110 110 67 111 111 7

( ) 102021 −−−− = dddd xxxxxx LLσ

021 xxx dd L−−

Page 50: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión• Redes Omega

– Patrón de conexión de barajamiento perfecto– Conmutadores binarios– Existe un único camino entre cada entrada y cada salida– Dados N nodos, necesitamos etapas, con N/2

conmutadores cada etapa ⇒ coste – Cada conmutador tiene dos configuraciones posibles, una

directa y otra cruzada– Fácil algoritmo de encaminamiento

» Cada paquete va precedido de dirección del destino» El conmutador de la primera etapa lee el primer bit.

Si es 0, el paquete es enviado por la parte superior del conmutador

» La siguiente etapa cogerá el siguiente bit– Permiten difundir datos de una fuente a muchos nodos– La red Omega es una red con bloqueo

» Puede implementar caminos de los posibles

N2log( )NN 2logσ

2NN !N

Page 51: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión– Existen otros tipos de redes como las Benes, Banyan,

Baseline, Mariposa, etc.

– Árboles dinámicos– Ya se verán en las redes estáticas– Los procesadores se encuentran en los nodos terminales

Construcción recursiva de una red baselineRed Omega 16x16

Árbol grueso dinámico

canalABNAB *2Bisección =

Page 52: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión• Redes de interconexión estáticas (directas)

– Construcción de sistemas de computación destinadas a aplicaciones en las que se puedan predecir los patrones de comunicación

– Cada procesador dispone de su propio conmutador (switch), adaptado al tipo de red en el que se usará

– Nodo = Procesador + conmutador

– Las distintas topologías surgen de las distintas formas de conectar los nodos. Hay muchos tipos:

• Totalmente conectada• Anillo• Malla o rejilla• Toro 2D• Árbol• Hipercubo• k-ary d-cubo

Page 53: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión

– Red totalmente conectada

• Es simétrica• Una conexión entre cada dos nodos. Cada conmutador

del nodo debe suministrar N-1 conexiones con el exterior, más una conexión con su propio procesador

– Máximo rendimiento– Mucho coste

• Número de enlaces =

• Diámetro = 1• Grado = N - 1

2)1(

2−

=

NNN

canalcanalBisección ABNABNNN

AB *4

*22

22

2

2

=

=

Page 54: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión

– Red anillo o token-ring

• Es simétrica• Número de enlaces = Número de nodos = N

• Diámetro = • Grado = 2•• Un caso especial son los anillos cordales, que consiste

en aumentar el grado de los nodos

2N

canalBisección ABAB *2=

Page 55: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión

– Red malla o rejilla

• No es simétrica• Son redes muy utilizadas• Diámetro = 2*(Dim_menor-1)• Grado interno = 4; Grado esquinas = 2; Grado externo=3•• Existen variaciones en las mallas en función del tipo de

conexión de los nodos externos

canalBisección ABmenorDimAB *_=

canalBisección ABmenorDimABGrado

menorDimD

SimétricaNoIlliacMalla

*_24

1_

==

−=

canalBisección ABmenorDimABGrado

menorDimD

simétricaSiDToro

*_24

2_*2

2

==

=

Page 56: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión

– Red en árbol

• No es simétrica• En estas redes hay un único camino entre cualquier par

de procesadores• Un tipo especial de árboles son los binarios• Si k es el número de niveles, • Diámetro = • Grado máximo = 3

• Una estrella es un árbol cuyo nodo raíz tiene grado N-1. Es impracticable para grandes números de nodos

canalBisección ABAB *1=

12 −= kN( )1*2 −k

canalBisección ABNAB

NGradoD

simétricaNo

*2

12

=

−==

Page 57: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión

– Red hipercubo

• Es simétrica• n-cubos binarios, es decir, dos elementos en cada

dimensión d. Esta red consta de nodos• Diámetro = d• Los enlaces son la unión entre procesadores que se

diferencian en un bit en su numeración binaria•• El grado es d, y crece linealmente con el número de

dimensiones– Poca escalabilidad– Difícil empaquetamiento de hipercubos de alta

dimensionalidad

canalBisección ABNAB *2

=

dN 2=

Page 58: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión

– Red k-ario d-cubo

• Es simétrica• Es una generalización de muchas de las vistas

– d es la dimensión del cubo– k es el número de nodos en cada dimensión

• El número de nodos viene dado por

• Diámetro =

•• El grado es • Tradicionalmente

– d-cubos k-arios de pocas dimensiones se denominan Toros

– d-cubos binarios de alta dimensionalidad se denominan hipercubos

canald

Bisección ABkAB **2 1−=

dkN =

2kd

d∗2

3-cubo 4-ario

Page 59: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión– Mecanismos de rutado en redes estáticas

• Estos mecanismos determinan el camino que debe tomar un mensaje para atravesar la red y llegar a su destino

• Toman como datos de entrada– Nodos fuente y destino– Información sobre el estado de la red

• Generan una o más rutas• Los podemos clasificar en función del tipo de ruta que

generan– En función de la longitud de la ruta

» Mínimos: Siempre selecciona una de las rutas más cortas. No tiene en cuenta congestiones de la red

» No mínimos: Pueden suministrar la ruta más larga pero para intentar evitar las congestiones de la red

– En función del uso de la información sobre el estado de la red

» Deterministas: Determinan una única ruta, basándose sólo en la fuente y el destino (siempre va por el mismo camino). No tienen en cuenta la información sobre el estado de la red. Puede provocar un uso desigual de los recursos y provocar congestiones (los mínimos serían de este tipo)

» Adaptativos: Usan la información sobre el estado de la red para determinar la ruta del mensaje. Detectan congestiones e intentan evitarlas

Page 60: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión– Coste de la comunicación en redes estáticas

• La latencia de comunicación (tcom) es uno de los parámetros más importantes a tener en cuenta.

– Tiempo en preparar el mensaje para su transmisión– Tiempo que dicho mensaje tarda en atravesar la red

• Usaremos los siguientes parámetros:– m : Tamaño, en palabras de red, del mensaje– l : Nº de enlaces que debe atravesar el mensaje– ts (Tiempo de inicio): Tiempo que tarda el procesador

emisor en preparar el mensaje» Empaquetar el mensaje (añadir cabecera,

información de corrección de errores, etc.)» Cálculo de la ruta (si la red no sabe hacerlo)» Tiempo en establecer una interfase entre el

procesador local y el router.– th (Tiempo por salto): Tiempo tomado por la cabecera del

mensaje en viajar entre dos procesadores conectados directamente en la red

» Tiempo que tarda el algoritmo de rutado en ejecutarse

» Tiempo en atravesar el conmutador– tw (Tiempo de transferencia por palabra): Tiempo que

tarda una palabra en atravesar el enlace. » Si el ancho de banda del canal es r

palabras/segundos, cada palabra tarda tw = 1/rsegundos en atravesar el enlace

– Podríamos tener en cuenta otro tiempo (tr), que sería igual que (ts), pero en el receptor. Nosotros vamos a obviarlo

Page 61: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión• Dos factores que influyen claramente en el tcom

– Topología de la red– Técnicas de conmutación

• Vamos a estudiar dos técnicas de conmutación usadas frecuentemente en computadores paralelos. Las técnicas de rutado que utilizan dichas técnicas son llamadas:

– Store-and-forward– Cut-trough (Fragmentado o encadenado)

• Store-and-forward (Reenvío)– Cada nodo almacena todo el mensaje entero antes de

reenviarlo al siguiente nodo

–– En caso de que exista congestión (bloqueo) hay que

sumarle un tiempo de espera (te). La congestión se puede producir en el spool de FIFO del conmutador, o en espera para que se libere un nodo

• Cut-trough (Fragmentado o encadenado)– Encadena los envíos entre los distintos enlaces. – Por ejemplo, se divide el mensaje en paquetes de tamaño

mp, de forma que su transferencia sea igual a th, es decir, mp* tw = th

P0

P1

P2

tiempo

( )whscom tmtltt ∗++=

Page 62: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Redes básicas de interconexión

– Para este envío encadenado se suele hacer, por simplicidad, un túnel (wormhole) desde el origen al destino, que queda abierto durante toda la transmisión (lo cual puede provocar congestión)

» El primer paquete lleva información del destino y del número de paquetes que le siguen

» El conmutador queda “abierto” contando los paquetes hasta que pase el último

– Con esto se simplifican los conmutadores, ya que no necesitan grandes buffers, ni inteligencia de rutado

( ) wpppw

whscom

tmmmtmtmtltt

∗++=∗∗+∗+=

321

P0

P1

P2

tiempo

th mp1 mp2 mp3

th mp1 mp2 mp3

th mp1 mp2 mp3

Page 63: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Programación y aplicaciones• Programación de sistemas multiprocesadores

– SISD– SIMD– UMA y NUMA– MPM

• Aplicaciones de sistemas multiprocesadores– Clasificación en función del Patrón de comunicaciones

Page 64: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Programación y aplicaciones• Programación de sistemas multiprocesadores

– Vamos a ver distintas filosofías de programación, de un mismo programa, dependiendo del tipo de máquina sobre la que trabajemos

• El programa realizará el cálculo de la suma de los componentes de un vector a[], de 64K números en F.P.

• Las máquinas que analizaremos serán:– SISD– SIMD– UMA y NUMA (software compatible)– MPM (espacio de direcciones disjunto)

– SISD (uniprocesador)• Sólo existe una U.C., y una U.F. (no entraremos en SE)• Sólo puede hacer una suma a la vez ⇒ 64K sumas• Lo más sencillo sería:

suma = 0;for (i=0;i<64K;i++)

suma = suma + a[i];• Si desenrrollamos obtendremos más prestaciones.

suma = 0;for (i=0;i<64K;i+=4){

suma = suma + a[i];suma = suma + a[i+1];suma = suma + a[i+2];suma = suma + a[i+3];

}

Page 65: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Programación y aplicaciones• Nos daríamos cuenta de la dependencia de la variable

suma entre iteraciones (RAW)– Eliminaríamos instrucciones de Overhead– No podríamos reordenar el código en ensamblador.

Tendríamos que optar por una de las siguientes soluciones» Usar acumuladores y sumar al final» Sumar la mitad derecha del vector sobre la izquierda» Sumar elementos consecutivos (forma de árbol)

– Los dos últimos métodos requieren de otro vector auxiliar o destruir el original

• tejec= (64K * tejec. 1 suma) + Overhead– SIMD

• Cuando tenemos múltiples procesadores (o elementos de procesado) podemos hacer varias sumas en paralelo

• Supongamos un SIMD – 1024 procesadores simples que pueden ejecutar una suma – Código único– U.C. Única– Memoria de datos múltiple

• 64K sumas ⇒ 1024 vectores del tipo a1[0-63]• Los repartiría el procesador frontal o la U.C.

– P1 a1[0]= a[0]– P2 a1[0]= a[64]– P3 a1[0]= a[128]

M

Page 66: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Programación y aplicacionesfor (j=0;j<64;j++)

suma = suma + a1[j];/* Las variables suma, a1[], existen en cada uno de los 1024

procesadores y no hace falta llamarlas con distinto nombre* /

• Por ahora, tejec= (64 * tejec. 1 suma) + Overhead• Faltaría sumar los 1024 números almacenados en cada

procesador ⇒ envío de datos de un procesador a otro ⇒gasto de tiempo adicional en la red

• En lugar de sumar todos los números sobre el primer procesador, como tenemos la posibilidad de hacer 1024 sumas, podemos hacerlo

– forma de mitades (divide y vencerás)– forma de árbol

• Luego tendríamos:tejec= (64 +10) * tejec. 1 suma + Overhead + envío de datos

• Lo único que nos quedaría por despejar es el término envió de datos

512 sumas en paralelo512 envíos

256 sumas en paralelo256 envíos

1 suma1envío

M

101024loglog 22 === pfinalessumas

Page 67: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Programación y aplicaciones• El envío de datos depende

– La latencia– La ocultación de las latencias– La topología de la red– Del AB no depende mucho, puesto que no hay envío

masivo de datos• El primer factor parece decisivo, pero el segundo puede

ocultarlo. Luego parece que el factor más decisivo es el tercero, es decir, la topología de la red

– Imaginemos un bus común a todo nodo ⇒ intentarán enviar datos a la vez 512 procesadores ⇒ colisión múltiple ⇒ Pésimo

– Parece claro que una red en forma de árbol sería la más adecuada (o bien para la suma de las dos mitades, o para los consecutivos)

• El problema surge de disponer una red adaptada a un determinado algoritmo. La misma red puede no ser muy óptima para otro tipo de algoritmo

– UMA y NUMA• Supongamos un sistema de 16 procesadores• Al software no le importa si la memoria está centralizada

o distribuida• Podemos hacer sumas en paralelo, concretamente

64K/16 sumas• El código aunque sea igual para todos los procesadores,

debe repetirse 16 veces. Debería existir un procesador (uno de los 16 u otro especializado) que cargue el programa, cree 16 threads y los reparta

• El array ocupa 256Kbytes que estará en un único espacio de direcciones, pero no sabemos donde físicamente

Page 68: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Programación y aplicaciones• Según vayan usándolos los procesadores, se los traerán a

su caché o a su memoria local (si existe)• Por localidad, interesa que cada procesador trabaje con

datos consecutivos• Para realizar el código hacemos:

– dividimos el array en 16 trozos consecutivos (uno por procesador)

– Creamos 16 variables suma porque la memoria es compartida y no pueden confundirse los distintos suma de cada procesador

– El hard debe garantizar el suministro de los elementos del array, ya estén locales, remotos ó centralizados. También garantizará la coherencia de datos

– No hace falta enviar ó recibir datos porque es memoria compartida

• Los 16 códigos ó threads que se emiten son:suma[Pn]=0 /* Pn= nº de 0 a 15 del procesador*/for (i[Pn]=4K*Pn ; i[Pn]<4K*(Pn+1);i[Pn]++)

suma[Pn] = suma[Pn] + a[i[Pn]];• Posteriormente deberemos sumar las 16 variables suma

– Ciertos procesadores sumarán variables y otros no harán nada

– Por simetría repetimos el mismo código para todo procesador, aunque al principio , luego , luego , etc... de los procesadores estén ejecutando un código que no hace nada

4121 +21814121 ++

Page 69: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Programación y aplicaciones

• Pero existe un problema de sincronización– Cada procesador es independiente

» Tiene su propia U.C.» Tiene sus propias U.F.» Ejecuta a su ritmo

– Nadie garantiza que todos los procesadores terminen sus sumas al mismo tiempo

» Procesadores de distintas velocidades» Atención de I/O, etc.

– Han de coordinarse los procesadores explícitamente mediante alguna función de sincronización. El procesador consumidor del un dato, debe leerlo cuando ya haya sido actualizado por el otro procesador

– Una forma es poner una función de barrera, de forma que hasta que no lleguen todos a ella no continúa ninguno la ejecución ⇒ función synch() la cual puede emularse con soft o implementarse con hard especial

P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15

Suman Ociosos

P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15

Suman Ociosos

M

Page 70: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Programación y aplicaciones• Se podría escribir un código distinto para cada

procesador: P0, P1, ... P15

• Para P8, P9, ... P15

suma[Pn]=0; /* Pn= nº de 0 a 15 del procesador*/for (i[Pn]=4K*Pn ; i[Pn]<4K*(Pn+1);i[Pn]++)

suma[Pn] = suma[Pn] + a[i[Pn]];• Para P4, P5, P6, P7

suma[Pn]=0; /* Pn= nº de 0 a 15 del procesador*/for (i[Pn]=4K*Pn ; i[Pn]<4K*(Pn+1);i[Pn]++)

suma[Pn] = suma[Pn] + a[i[Pn]];synch ó barrera (Pn, Pn+8); /* espera a que termine

el procesador Pn+8*/suma[Pn]+=suma[Pn+8];

• Para P2, P3

Igual que el caso anterior

synch ó barrera (Pn, Pn+4); /* espera a que termine el procesador Pn+4*/

suma[Pn]+=suma[Pn+4];• Para P1

Igual que el caso anterior

synch ó barrera (Pn, Pn+2); /* espera a que termine el procesador Pn+2*/

suma[Pn]+=suma[Pn+2];

+

+

Page 71: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Programación y aplicaciones• Para P0

Igual que el caso anterior

synch ó barrera (Pn, Pn+1); /* espera a que termine el procesador Pn+1*/

suma[Pn]+=suma[Pn+1];

– MPM• Memoria disjunta y distribuida• Supongamos 64 procesadores ⇒ 1K elemento por Proc.• Desde el punto de vista de la memoria de datos

– Similar al código SIMD» Existen distintos espacios de memoria» Diferencia: en SIMD sólo existía un código

• Ahora el ejecutable debe,– generar 64 procesos distintos– repartir 1K elemento por procesador, ya que van a ir a

espacios de direcciones distintos• También existirán envíos y recepciones de datos

mediante mensajes ⇒ sincronización automáticasuma=0;for (i=0;i<1K;i++)

suma = suma + a1[i];/* El array a[] es troceado en 64 partes, cada una

estará en un procesador distinto y las llamaremos a1[]* /

+

Page 72: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Programación y aplicaciones• Para realizar las sumas finales, después del código

anterior haremosPn_medio = 64;lim_sup = 64;do{

Pn_medio = Pn_medio/2;if(Pn >= Pn_medio && Pn < lim_sup)

envía(suma,Pn - Pn_medio);if(Pn < Pn_medio)

suma = suma + recibe();lim_sup = Pn_medio;

} while(Pn_medio != 1);

• Cada procesador receptor de un dato estará parado hasta que le llegue el dato que espera (sólo viene uno de un procesador concreto) ⇒ nos sirve de sincronización

Page 73: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Programación y aplicaciones• Aplicaciones de sistemas multiprocesadores

– El mayor obstáculo de la expansión de los MIMD son las aplicaciones

– Existe dificultad para desarrollar estas aplicaciones • Por su grado de paralelismo intrínseco• Por las herramientas para procesarlas o escribirlas

(lenguajes, compiladores, paralelizadores, etc.)• Por su escasez• Las distintas arquitecturas requieren distintos algoritmos

para resolver el mismo problema con eficiencia y un conocimiento del hard concreto para optimizar el rendimiento

• Además, en general, las aplicaciones corren bastante bien si el número de procesadores es pequeño, y pierde prestaciones por procesador cuando el número de procesadores crece

– Estudiaremos dos tipos de patrones de comunicación• Todos-con-todos (all-to-all)

– FFT (fast fourier transformation)• Adyacente

– Ocean

Page 74: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Programación y aplicaciones– Patrones de comunicación básicos

• todos-con-todos (all-to-all)– Existe la necesidad de que todos los procesadores se

comuniquen con todos– Por ejemplo, el producto de matrices – Cada procesador trabaja con un trozo de A, pero entonces

le toca calcular » Supongamos que la división se hace por grupos de

filas (lo normal sería hacerlo por bloques cuadrados, pero más difícil de ver)

– P1 tendría que pedir la columna 1 para realizar el cálculo del producto con todas sus filas. A continuación pediría la columna 2, y así sucesivamente

– Al final, P1 ha pedido todos los datos al resto de procesadores

– El orden de comunicación de cada procesador es n/psiendo n el número de datos totales y p el número de procesadores

– Un ejemplo claro de este tipo de patrón es el cálculo de la FFT (fast fourier transformation)

AAA ×=2

2A

P1

P2

Pp

M

P1

P2

Pp

M

A A

×

1 Col

M

2 fila1 fila

Page 75: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

4

4

44

8 8

816

8

0

Programación y aplicaciones• Adyacente

– Un procesador sólo necesita comunicarse con los nodos adyacentes (dependerá de la aplicación con cuales de ellos se comunicará)

– Por ejemplo, división en elemento finitos – Cada procesador trabaja con un trozo n/p de datos (n =

datos totales, p = nº de procesadores)– Ejemplo, supongamos que la ecuación a resolver

mediante elementos finitos es la media aritmética de los cuatro vecinos

– El algoritmo debería ir haciendo esa ecuación para todas las celdas e iterar. Sean por ejemplo 9 celdas con condiciones de contorno, valor 16 para los 4 lados y 0 para el centro

41,,1,11,

,−−++ +++

= jijijijiji

aaaaa

8

8

88

10

1016

10

0

10

1ª iteración

9

9

99

12

1216

12

0

12

2ª iteración

Etc, etc Valores esquinas = 13,333…Valores centrales = 10,666...

Page 76: Sistemas Multiprocesadores 2003-2004 - …icaro.eii.us.es/descargas/Sistemas Multiprocesadores 2003...Introducción • Argumentos en contra de los Multiprocesadores – Cada 2 ó

Programación y aplicaciones– Tendremos en cada procesador n/p datos, pero solo

comunica los cuatro lados , luego el orden de comunicación es

– Cuantos más procesadores, habría menos elementos finitos internos dentro de cada procesador que son los que no necesitan comunicación. Luego cuanto más procesadores peor para la comunicación

– Ejemplo de este tipo de algoritmos hay muchos» OCEAN (simulación del comportamiento del

océano)» Cálculo de la propagación del calor» Cualquier algoritmo que use elementos finitos

– Patrones mixtos• Ley de la Gravedad

pn*4pn