PDF de programación - Sistemas Multiprocesadores

Imágen de pdf Sistemas Multiprocesadores

Sistemas Multiprocesadoresgráfica de visualizaciones

Publicado el 3 de Octubre del 2018
623 visualizaciones desde el 3 de Octubre del 2018
960,4 KB
38 paginas
Creado hace 18a (24/05/2005)
Sistemas Multiprocesadores
Introducción

1.
2. Clasificación de los multiprocesadores
3. Redes básicas de interconexión
4. Clusters
5.

Programación y aplicaciones

Sistemas

Multiprocesadores

Arquitectura y Tecnología de Computadores

Universidad de Sevilla

Prof. Saturnino Vicente Díaz

1

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

HLL

S.O.

ISA

Compilador/

librerías

Introducción

Si existe DLP

Paralelizador/
reescritura

Vectorizador

Niveles de paralelismo

TLP

(Multiprocesadores)

DLP extraído
(SIMD / PV)

DLP extraído

(Núcleos

Multimedia)

Desenrollado

ILP

(VLIW /
Superesc)

Encadenamiento

Paralelismo
a nivel de bits

Implemen-

tación

Lógica
Digital

Electrónica

Fig. 1.1

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

Reduce el
nº de mensajes

APROVECHAR
UniProc. barato
altas prestaciones

ESCRIBIR
Código
Paralelo

DISEÑAR

Comunicación

eficiente

Cuidado con
el progreso de
las apli. reales

Sistemas

Multiprocesadores

Introducción
t

=

t

uni
ejec
,
N

– Idealmente, , lo cual es imposible

ejec

,

mult

• 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

– Lo que vamos a construir se parece a:

Fig. 1.2

Fig. 1.4

Fig. 1.3

3

Introducción

Introducción

• Argumentos a favor de los Multiprocesadores
rendimiento de

– En 15 ó 20 años, el

los
Uniprocesadores llegará a su fin, debido a dos razones:
• Incrementar el rendimiento conectando uniprocesadores

en 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

Prestaciones
Uniprocesador

Coste de
saturación

1990’s

1980´s (VLSI)

1970´s (Circuitos integrados)

1960´s (Transistores discretos)

Coste

Fig. 1.5

– Parece que los MPr’s son la única forma de aumentar

considerablemente el rendimiento a un precio razonable

• 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
ejec
,

ejec

=

t

t

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

mult

uni

N

,

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
A



=

=

=

2

1

2
N

N
+

1

1
)
F

+

(
1



F
N

1
2

+

1
*2

N

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

75,99≈F

4

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

2. Clasificación de los

multiprocesadores

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

de la memoria
– Uniform Memory Access (UMA)
– NonUuniform Memory Access (NUMA)
– Message Passing Machines (MPM)
• Emulación de Multiprocesadores
• Mercado actual de los multiprocesadores

• Distintas

aplicaciones pueden

requerir distintas
topología para extraer más paralelismo. Los MPr
deberí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

5

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)

Fig. 2.2.

– 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.

Clasificación en función de la
organización de la memoria
– 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)

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

– Programación y comunicación

• Al

tener espacio de direcciones de memoria
la

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

• También

pero

se puede usar para programación
lento. La
sería mediante

multiprocesos,
comunicación entre procesos
intercambio de variables en la memoria compartida
• Surge el problema de la coherencia entre cachés ⇒

sería más

disponer de Hard adicional para solucionarlo

6

Clasificación en función de la
organización de la memoria
– Problema de coherencia en UMA

• 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
• Ejemplo: Protocolo de invalidación CB (MSI)

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

• NUMA (NonUniform Memory Access)

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

– 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.

al

– Debido

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

7

Clasificación en función de la
organización de la memoria
– 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
aplicaciones
desarrolladas. El programador debe tener cuidado
con los accesos remotos

hay muchas

y

– Ejemplos: TC2000, KSR-1, Standford Dash,

BBN Butterfly, Cray T3D

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

• Solución al problema de coherencia en NUMA
– La solución hard es más compleja que en UMA
– Han exist
  • Links de descarga
http://lwp-l.com/pdf13712

Comentarios de: Sistemas Multiprocesadores (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad