280 likes | 455 Views
2. Computadores paralelos (conceptos básicos). - Introducción - Computadores SIMD - Computadores MIMD - Problemas principales - Velocidad de cálculo. Introducción. Paralelismo: hacer más de una cosa “ simultáneamente, a la vez ”. • tamaño de datos: 4 - 8 - 16 - 32 - 64 - ... bit
E N D
2.Computadores paralelos (conceptos básicos) - Introducción - Computadores SIMD - Computadores MIMD - Problemas principales - Velocidad de cálculo Arquitecturas Paralelas 12- 13
Introducción Paralelismo: hacer más de una cosa“simultáneamente, a la vez”. • tamaño de datos: 4 - 8 - 16 - 32 - 64 - ... bit • ejecución de instrucciones (ILP): segmentación, superescalares, VLIW... • paralelismo de datos/ paralelismo funcional o de programas Arquitecturas Paralelas 12- 13
Introducción Paralelismo SIMD: Single-Instruction-Multiple-Data - procesadores vectoriales - procesadores en array - GPUs MIMD: Multiple-Instruction-Multiple-DataMuchos procesos/hilos para dar una respuesta más rápida (high performance) (multiproceso, tolerancia a fallos, P copias (throughput)) Arquitecturas Paralelas 12- 13
red de comunicación P+M+E/S array SIMD computadores en array Muchos procesadores muy sencillos, poca memoria, posibilidad de realizar operaciones de entrada/salida. Red de comunicación especial. Arquitecturas Paralelas 12- 13
red de comunicación front-end Proc. de control P+M+E/S array SIMD computadores array El procesador de control envía a todos los procesadores la instrucción que tienen que ejecutar síncronamente (BC). Cada procesador, ejecuta la instrucción o no hace nada. Arquitecturas Paralelas 12- 13
SIMD computadores array Ejemplo(X, Y, Z repartidos entre procesadores) for (i=0; i<1000; i++) if (Y[i] != 0) Z[i] = X[i] / Y[i]; else Z[i] = X[i]; Adecuados para cierto tipo de aplicaciones: tratamiento de imágenes… paso 1: comprobar todos Y[i] != 0 paso 2:if (yes)hacerZ[i] = X[i] / Y[i] (el resto, nada) paso 3:if (no) hacerZ[i] = X[i] (el resto, nada) Arquitecturas Paralelas 12- 13
Computadores MIMD MIMD (Multiple-Instruction-Multiple-Data) P procesos/hilos ejecutándose simultáneamente. Dos modelos básicos: - memoria compartida - memoria distribuida Arquitecturas Paralelas 12- 13
P1 P0 Pp–1 procesadores + MC red de comunicación E/S Mm–1 M0 memoria principal Computadores MIMD Memoria compartida(sharedmemory) Arquitecturas Paralelas 12- 13
P1 P0 Pp–1 Mm–1 M0 E/S Computadores MIMD Memoria compartida(sharedmemory) - Espacio de direccionamiento único. - Comunicación entre procesos por medio de variables compartidas. - Red de comunicación: un bus (o una red multietapa). - Nombres: multiprocesador, SMP, UMA. - Generalmente, “pocos” procesadores. Arquitecturas Paralelas 12- 13
Pp-1 P0 Computador: Pr + MC+ MP + E/S E/S E/S Mp-1 M0 K K red de comunicación Computadores MIMD Memoria distribuida(distributedmemory) Arquitecturas Paralelas 12- 13
Pp-1 P0 E/S E/S Mp-1 M0 K K Computadores MIMD Memoria distribuida (distributedmemory) - Un espacio de direccionamiento por procesador. - Comunicación entre procesos por medio de paso de mensajes. - Redes de comunicación habituales: hipercubo, malla, toro... - Nombres: multicomputador, MPP - Generalmente, “muchos” procesadores. Arquitecturas Paralelas 12- 13
E/S E/S K K Computadores MIMD Otra opción: memoria compartida pero físicamente distribuida - El espacio de direccionamiento es único, pero la utilización no es homogénea: se ha creado una jerarquía de memoria. - La comunicación entre procesos se hace por medio de variables compartidas (lógicamente) y se implementa mediante paso de mensajes. - Nombres: DSM, NUMA (MPP) Pp-1 P0 Mp-1 M0 Arquitecturas Paralelas 12- 13
Computadores MIMD Nomenclatura: - SMP: multiprocesador de memoria compartida, generalmente pocos procesadores comunicados por un bus. - MPP: sistema paralelo con muchos procesadores, de memoria compartida o distribuida. Generalmente, las máquinas más rápidas, sistemas con hardware y software de comunicación y de cálculo específico. Muy caras. Pueden organizarse de manera jerárquica (p.e., los nodos son sistemas SMP). Arquitecturas Paralelas 12- 13
PC PC PC ethernet PC PC Computadores MIMD Nomenclatura: - Cluster: sistema paralelo construido a base de hardware y software de propósito general. Buena relación coste/velocidad. El más simple: PC / ethernet (Beowulf) commodity / custom Cada vez más, sistema paralelo de propósito general. Arquitecturas Paralelas 12- 13
Computadores MIMD Nomenclatura: - Constelación (constellation): un cluster, donde el número de nodos es menor que el número de procesadores de cada nodo. Arquitecturas Paralelas 12- 13
P SMP inst. C 1 N bus SISD 1 memoria compartida MP datos N MIMD P SIMD MPP/NUMA Cluster C M proc. array proc vectoriales red general memoria distribuida Resumen Arquitecturas Paralelas 12- 13
Espacio de direccionamiento comúnprivado Memoria centralizada (bus) distribuida (red) Resumen SMP - DSM, NUMA MPP Arquitecturas Paralelas 12- 13
Problemas Existen algunos problemas que hay que superar en los sistemas paralelos - ¿Cómo gestionar el sistema completo? - ¿Cómo se divide un algoritmo en P procesos? ¿Se puede ejecutar en paralelo todo el código? - ¿Y el reparto, es equilibrado o es de tipo 80% - 20% (load balancing)? Arquitecturas Paralelas 12- 13
Problemas Existen algunos problemas que hay que superar en los sistemas paralelos - ¿Dónde están los datos? ¿Cómo se mantiene la coherencia de datos? - ¿Son independientes todos los procesos? ¿Se deben de sincronizar? - ¿Habrá que mandar los datos de un procesador a otro? ¿Cómo? Arquitecturas Paralelas 12- 13
Tp Tcom Tej Número de procesadores Problemas Sobrecargas 1. Comunicación Tp = Tej + Tcom Arquitecturas Paralelas 12- 13
Problemas Sobrecargas 2.Desequilibrio en la distribución de tareas Por ejemplo: 6 procesos independientes, de coste similar → Ts = 6T ▪entre3 procesadores (2 + 2 + 2) Tp = 2T = Ts/3 ▪entre 4 procesadores (2 + 2 + 1 +1) Tp = 2T = Ts/3 ! Arquitecturas Paralelas 12- 13
Problemas Sobrecargas 3. Utilización de la cache Hay que (re)utilizar los datos de los bloques de las caches (localidad). Por ejemplo, si A1 y A2 están en posiciones de memoria contiguas, merecerá la pena procesarlos en el mismo procesador para incrementar la tasa de aciertos de la cache. Arquitecturas Paralelas 12- 13
Problemas Tipos de aplicaciones - Paralelismo de grano fino (high performance) muchas tareas, pequeñas comunicación frecuente, pocos datos - Paralelismo de grano grueso(high throughput) pocas tareas, grandes, “independientes” comunicación de vez en cuando, muchos datos Arquitecturas Paralelas 12- 13
Eficiencia Objetivo: 1 ejecutar el mismo programa más rápido 2 ejecutar programas más grandes en el mismo tiempo Factor de aceleración / Eficiencia fa = Ts / Tp (ideal: crece linealmente con P) efic = fa / P (ideal: independiente de P) Mejor caso: Tp = Ts / P → fa = P efic = 1 Arquitecturas Paralelas 12- 13
Amdahl 1Generalmente, una parte en paralelo y otra en serie: Tsp = f Tp + (1-f) Ts Por lo tanto, el verdadero factor de aceleración será (ley de Amdahl): fa = Ts / Tsp = Ts / (f Ts/P + (1-f) Ts) fa = P / (f + (1-f) P) → 1 / (1-f) ! Arquitecturas Paralelas 12- 13
Amdahl 1Ley deAmdahl fa = P / (f + (1-f) P) → 1 / (1-f) Arquitecturas Paralelas 12- 13
Ts (1-f) Ts f Ts mayor tamaño (xP) serie Ts’ = ((1-f) + f P) Ts f Ts P (1-f) Ts P procesadores paralelo Tp’ = Ts (1-f) Ts f Ts Gustafson 2Muchas veces, el paralelismo no se utiliza para ir más rápido sino para ejecutar tareas de mayor tamaño. fa = Ts’ / Tp’ fa = (1-f) + f P Arquitecturas Paralelas 12- 13
Gustafson 2Gustafson fa = (1-f) + f P Arquitecturas Paralelas 12- 13