Control de flujo

Anuncio
Computación Paralela
Curso 2012/2013
Vicente Galiano Ibarra
Introducción Arquitecturas Avanzadas
Introducción
Clasificación Sistemas Paralelos
Rendimiento Sistemas Paralelos
Procesadores Vectoriales
Procesadores Matriciales
Redes de Interconexión
Multiprocesadores
Multicomputadores
Introducción I
Procesadores superescalares
Solapamiento de instrucciones (varios
cauces):
Dependencia de datos verdadera (RAW)
Dependencia relativas al procedimiento
Conflictos en los recursos
Dependencias de salida (WAW)
Antidependencia (WAR)
Políticas de emisión de instrucciones
Introducción II
El paralelismo ya existe a nivel de
procesador:
Segmentación y supersegmentación
Se aumenta el número de etapas de cada
instrucción  pipeline
Cuando más etapas mayor paralelismo,
etapas más sencillas y mayor frecuencia
de funcionamiento.
Introducción III
Procesadores VLIW (paralelización realizada por
el compilador)
Estas son Arquitecturas Von Neumann: máquinas
secuenciales procesando datos escalares
La frontera no está clara entre los procesadores
superescalares y los vectoriales (los cauces
implican hardware replicado)
Clasificación Sistemas Paralelos I
Clasificación Flynn
SISD (Single Instruction Single Data): Máquina
Von Neumann clásica
MISD (Multiple Instruction Single Data): díficil
implementación (procesadores vectoriales*)
SIMD (Single Instruction Multiple Data):
procesadores matriciales
MIMD (Multiple Instruction Multiple Data):
multiprocesador
Clasificación Sistemas Paralelos II
Clasificación Sistemas Paralelos III
Fuentes de paralelismo
Paralelismo de Control:
Dependencia de control de secuencia
Dependencia de control de comunicación
Paralelismo de Datos
Paralelismo de flujo
Rendimiento Sistemas Paralelos I
Eficiencia / Speed-up
Escalabilidad
Redundancia / Utilización
Calidad
Rendimiento Sistemas Paralelos II
Grado de paralelismo
Paralelismo medio
Speed-up asintótico
Para m procesos
Media aritmética del rendimiento
Media geométrica del rendimiento
Rendimiento medio armónico
Speed-up armónico medio
Rendimiento Sistemas Paralelos III
Ley de Amhdal:
Sn=n/(1+(n-1)α) Donde α es la probabilidad de usar
un modo secuencial puro.
Sn 1/α
Independientemente del número de procesadores
existe un límite superior del speed-up debido a
la parte secuencial
Si α = 0 el speed-up es el ideal
12
Arquitecturas Vectoriales
13
Arq. De Memoria Compartida
14
Arq. de Memoria Distribuida
Clusters
15
Arq. Mem.Comp. y Mem.Dist.
16
Pasos en el Desarrollo de Aplicaciones
Científicas
17
Paralelización de Programas
18
Medidas de Paralelismo
Speed-up
Tiempo ejecucion en 1 procesador
Sp =
Tiempo ejecución en p procesadores
Eficiencia
E=
Sp
p
Procesadores Vectoriales I
Computación matricial (sin dependencia de
datos)
Replica unidades de cálculo pero no de
control
Instrucciones vectoriales:
Sin dependencia de datos
Instrucciones de alta carga computacional
Patrón de acceso a memoria conocido
Sustituyen a bucles
Procesadores Vectoriales I
: Processor board of a CRAY YMP vector computer (operational ca.
1992-2000). The board was liquid cooled and is one vector processor
with shared memory (access to one central memory)
Procesadores Vectoriales II
Arquitecturas Vectoriales
Máquina vectorial con registros (actuales)
Máquina vectorial memoria-memoria
Componentes básicos
Registros Vectoriales
Unidades funcionales vectoriales
Unidad de carga/almacenamiento vectores
Registros escalares
Procesadores Vectoriales III
Instrucciones vectoriales básicas
Vector-vector
Vector-escalar
Vector-memoria
Reducción de vectores
Reunir y esparcir
Enmascaramiento
Procesadores Vectoriales III
Factores que afectan al rendimiento
Longitud de los vectores y velocidad de
inicialización
Los riesgos estructurales (control de flujo)
Dependencia de datos
Procesadores Vectoriales IV
Longitud de vectores
Longitud natural de los vectores diferente a la
de la arquitectura
VLR (Vector Lenght Register)
MVL (Maximum Vector Lenght)
La gestión de los parámetros anteriores
puede realizarla el compilador
Separación de vectores en memoria
(carga y almacenamiento con separación)
Procesadores Vectoriales V
Mejora del rendimiento
Encadenamiento de operaciones
Sentencias if
Máscara vectorial
Matrices Dispersas
Dispersión/agrupamiento (scatter/gather)
Procesadores Vectoriales VI
Medidas del rendimiento
Rn: Velocidad en MFLOPS para un vector de longitud
n
R∞: Velocidad en MFLOPS para un vector de
longitud infinita
N1/2: longitud necesaria para alcanzar R∞/2
Nv: longitud para la cual el modelo vectorial es
preferible al escalar
*** NOTA: Los procesadores escalares actuales obtienen rendimientos
muy similares a los vectoriales
Procesadores Matriciales I
Explota el paralelismo de datos más que el
paralelismo de instrucciones
Procesadores Matriciales II
Modelo basado en {N,C,I,M,R}
N: Número de elementos de proceso de la máquina
C: Conjunto de instrucciones nativas de la Unidad de
Control
I: Conjunto de instrucciones que se envían a los EPs
M: posibilidad de enmascaramientos de los EPs
R: funciones de rutado para la comunicación entre
EPs
Procesadores Matriciales III
Estructura básica de un EP
Procesadores Matriciales IV
Los modelos matriciales se caracterizan:
Están destinados a aplicaciones específicas a
las cuales extraen gran rendimiento
Su programación no es sencilla por tener que
programar con mucha dependencia del
hardware
Prácticamente no existen en el mercado de
supercomputadores comerciales
Redes de Interconexión I
Es uno de los elementos fundamentales
que modifican la propia arquitectura y el
rendimiento
Las redes se utilizan tanto en los
computadores matriciales como en
multiprocesadores y multicomputadores
Redes de Interconexión II
Definiciones básicas:
Tamaño de la red (número de nodos)
Grado del nodo (de entrada y salida)  Coste
Diámetro de la red
Anchura de la bisección
Longitud del cable
Simetría
Redes de Interconexión III
Rendimiento:
Funcionalidad
Latencia
Ancho de banda
Complejidad Hardware
Escalabilidad
Capacidad de transmisión
Redes de Interconexión IV
Topología:
Grafo de interconexión
Parámetros:
Ancho de la bisección
Grado del nodo
Diámetro de la red
Longitud
Simetría
Estructura física
Redes de Interconexión V
Control de flujo, regula el tráfico en la red
asignando recursos (buffers y canales) a
las unidades de información:
Mensaje
Paquete
Flit
Debe solucionar el posible bloqueo de un
paquete
Redes de Interconexión VI
Encaminamiento, método para elegir un
camino
Dada una posición actual y un destino existe
un conjunto de canales posibles
En cada paso se elige un canal de los
posibles teniendo en cuenta información que
puede ser constante, aleatoria o en función
del tráfico
Redes de Interconexión VII
Métodos de Encaminamiento,
Deterministas: el camino depende unívocamente del
nodo destino y del nodo origen
Inconscientes: la elección puede ser aleatoria, en
función del tiempo o en función del contenido
Adaptativos: la función depende del tráfico es decir
del estado de la red
Redes de Interconexión VIII
Clasificación según topología:
Se pueden clasificar en síncronas y asíncronas y de
control centralizado, descentralizado y distribuido.
El mercado de redes de estaciones de trabajo están
copados por redes asíncronas de control distribuido:
Redes de medio compartido
Redes Directas
Redes Indirectas
Redes Híbridas
Redes de Interconexión IX
Redes de medio compartido:
El medio de transmisión es compartido por todos los elementos
de la red
Redes directas:
Cada elemento está conectado de forma directa a un conjunto
(reducido) de otros dispositivos
Entre elementos no vecinos es necesario la transmisión a través
de varios dispositivos intermedios
Redes indirectas:
Se utilizan conmutadores para conectar los elementos de
comunicación
Cualquier comunicación requiere el paso a través de
conmutadores
Híbrido
Redes de Interconexión X
Redes de medio compartido
Redes a área local
Bus de contención (Ethernet)
Bus de tokens (Arcnet)
Tokeng Ring (IBM)
Bus de sistema (monoprocesadores y
multiprocesadores)
Son las redes más sencillas en las que sólo un
elemento usa la red en un momento dado, siendo la
red un elemento pasivo (no genera mensajes)
Estas redes se convierten en un cuello de botella al
ampliar el número de procesadores de la red
Redes de Interconexión XI
Redes directas
Mallas
Toros
Hipercubos
Estas redes escalan bien. Los nodos además
de otras funciones realizan las funciones de
router o encaminador (bien el propio
procesador o routers dedicados)
Redes de Interconexión XII
Cada nodo dispone de canales internos y de canales externos
Dos nodos conectados directamente son nodos vecinos o adyacentes
Lógicamente todos los nodos deben ser visibles
Redes de Interconexión XIII
Ejemplos de redes directas
Redes de Interconexión XIV
Redes Indirectas:
Basadas en conmutadores
Conmutador dispone de puertos
El conmutador se conecta con el procesador
y con otros conmutadores
Una característica importante es el número
de conmutadores a atravesar
Redes de Interconexión XV
Redes Híbridas:
Mezcla redes de medio compartido y de
redes directas o indirectas
Ejemplos:
Redes multibus
Redes jerárquicas
Redes basadas en clusters
Multiprocesadores I
Sistema MIMD
Memoria COMPARTIDA
Parámetros importantes:
Red de interconexión
Consistencia de memoria
Coherencia de caché
Sincronización
Multiprocesadores II
Redes de interconexión:
Buses (medio compartido)
Bajo coste, Mala escalabilidad, no admite muchos
procesadores
Redes indirectas
– Red de barras cruzadas
Una sola etapa de conmutación, muy cara para
muchos elementos
– Redes multietapa
Como se conectan las diferentes etapas definen las
características de la red
Tipos: Bloqueante, No bloqueante, Reconfigurable
Multiprocesadores III
Consistencia de memoria:
Debemos asegurar una coherencia realizando las
tareas de una sincronización
Por software mediante flags (no practicable)
Modelo de consistencia que especifica el orden de
la realización de las operaciones en memoria
La consistencia implica la coherencia
Modelos:
– Consistencia secuencial estricta
– Consistencia secuencial
– Otros modelos
Multiprocesadores IV
Consistencia secuencial estricta:
Cualquier lectura devuelve el valor almacenado
más reciente
No es implementable
Consistencia secuencial:
Objetivo: modelo multihilo obtenga los mismos
resultados en 1 o varios procesadores
Las operaciones se hagan visibles en el orden del
programa
El compilador no puede optimizar
Multiprocesadores V
Otros modelos de consistencia:
Modelos relajados que afectan a:
–
–
–
–
RR
RW
WW
WR
Consistencia de procesador
– Elimina la ordenación W R por la existencia de buffers
de escritura
Ordenación por almacenamiento parcial
– Elimina W  W para escrituras no conflictivas
Multiprocesadores VI
Consistencia débil elimina las cuatro ordenaciones
– Es necesaria la implementación de sincronizaciones
Consistencia de liberación
– Sincronizaciones para poder adquirir el acceso a una
variable compartida y sincronizaciones para liberar esa
variable
Multiprocesadores VII
Coherencia de caché:
Las vistas en las diferentes cachés de los
diferentes procesadores pueden diferir
Un sistema debe mantener la coherencia de la
caché
El programador en este punto no tiene mucho que
decir
Este concepto es importante en nuestros
programas en memoria compartida
Multiprocesadores VIII
Sincronización:
Cerrojos
Barreras
Implementados en hardware o software
Multicomputadores
Mejoran las sincronizaciones, las
contenciones de memoria y la escalabilidad
Solo existe memoria local
El intercambio de información se realiza por
mensajes
A nivel rendimiento mejoran a los
multiprocesadores para gran número de
nodos
Son muy importantes las redes de
interconexión y la granularidad de los
algoritmos
Descargar