You are on page 1of 24

1.

Conceptos de Procesamiento Paralelo

1.1. Arquitecturas informáticas 1.2. Clasificación de modelos paralelos 1.3. Técnicas de paralelización

PR.P.

Conceptos de Procesamiento Paralelo - 1/24

1.1. Ideas sobre arquitecturas
1.1.1. Arquitectura de Von Neumann
Arquitectura de un ordenador: especificaciones de su composición interna que el software debe de tener en cuenta Modelo de Von Neumann: unidad de proceso conectada por unión simple a una memoria con los datos y el programa. El procesador, secuencialmente: (1) leer las instrucciones, (2) las descodifica, (3) accede a los operados necesarios (si es necesario), (4) aplica la instrucción a los operandos y (5) escribe el resultado (si lo hay) en memoria

Ejecución Interfaz de memoria Control Bus Memoria

Procesador

PR.P.

Conceptos de Procesamiento Paralelo - 2/24

Conceptos de Procesamiento Paralelo .3/24 .P.Cuellos de botella potenciales: Memoria más lenta que el procesador => esperas por la memoria ● ● Ancho de banda del bus de conexión procesador <-> memoria Ejecución Interfaz de memoria Control Bus Memoria Procesador PR.

Arquitectura con memoria entrelazada El cuello de botella de la memoria se soluciona mediante la memoria entrelazada: mapeado cíclico de la memoria Si hay k bancos de memoria y el bus no limita el sistema.4/24 . Conceptos de Procesamiento Paralelo .P.1.1.2. en condiciones ideales se ve como una memoria k veces más rápida Bus Interfaz de memoria Control Ejecución 03 14 25 Memoria Procesador Objetivo: bajar la probabilidad de accesos seguidos al mismo banco PR.

.x4x3x2x1 *2 +5 sqrt() . Se usa un pipeline (tubería) Ejemplo: aplicar sqrt(2xi+5) a un vector x1x2x3.1..xn .3...x7x6x5x4 *2 2x3 +5 2x2+5 sqrt() sqrt(2x1+5) PR..P.. Arquitectura vectorial Vectorización: útil en el caso de hacer las mismas operaciones sobre una serie de datos.1... Conceptos de Procesamiento Paralelo .x6x5x4x3 *2 2x2 +5 2x1+5 sqrt() ..5/24 ..x5x4x3x2 *2 2x1 +5 sqrt() .

6/24 . Para cada elemento: (N+L-1) N La influencia de la latencia disminuye con N Problemas de cálculos vectoriales: ● ● La latencia cuando los datos no son vectores Las operaciones condicionales Hay máquinas con pipeline transparente PR.Máquinas con pipeline = máquinas vectoriales Tiempo que se tarda en obtener primer valor = latencia Ejemplo: latencia L y número de muestras N. Conceptos de Procesamiento Paralelo .P.

P. Arquitectura multiprocesador con bus compartido Para utilizar varios procesadores.1.4.7/24 . Memoria entrelazada Conceptos de Procesamiento Paralelo .1. una posibilidad es unirlos entre sí y a la memoria con un bus compartido Esto se usó desde PC's multiprocesador hasta redes de supercomputadoras Memoria monolítica PR.

Conceptos de Procesamiento Paralelo . Normalmente arquitectura inviable a partir de 20 procesadores ● PR.P.8/24 . Hay compiladores que hacen repartos automáticos ● Inconveniente: el ancho de banda del bus.Características de los multiprocesadores con bus compartido: Ventaja: facilidad de reciclar software monoprocesador (repartiendo procesos entre los procesadores de forma transparente).

1. Si hay P procesadores y M memorias podemos: ● ● ● Todos con todos: P*M buses Enrejado: P+M buses Utilizar MIN's (Multistage Interconnection Networks).9/24 .P. El reparto de direcciones es por bloque.1. Los MIN's conectan procesadores y memorias con varias capas de conmutadores (dispositivos lógicos simples de conexión) Dos posibles estrategias usando MIN's: Sistemas débilmente enlazados: todas las memorias a la misma distancia de los procesadores ● Sistemas fuertemente enlazados: la unidad básica es el par procesador/memoria. Dan altas prestaciones. Conceptos de Procesamiento Paralelo . dando la sensación de un único banco de memoria ● PR.5. Arquitecturas multiprocesador con múltiples buses Para evitar la saturación de los buses => usar varios buses de comunicación.

Conceptos de Procesamiento Paralelo .P.10/24 .Sistema multiprocesador fuertemente enlazado Sistema multiprocesador débilmente enlazado PR.

PR.11/24 .1. Mbytes. Arquitecturas multicomputador Características de las multicomputadoras: ● ● ● La unidad básica es el par procesador/memoria Los enlaces pueden usar conmutadores o no Los espacios de direcciones son disjuntos Ventaja de las multicomputadoras: escalabilidad Hay gran posibilidad de variaciones: ● ● Estructuras asimétricas: procesadores especializados Estructuras jerárquicas: multicomputadora con un bus de salida a un banco de memoria externa compartida Máquina equilibrada => magnitud similar de: Mflops. Mbits/seg.1. Conceptos de Procesamiento Paralelo .P.6.

1.1.12/24 . Memorias caché Para evitar la saturación de los buses => memorias caché asociadas a los procesadores Las cachés se basan en: Localidad espacial: después de acceder a una posición.5. alta probabilidad de acceso a las contiguas ● Localidad temporal: después de acceder a una posición. Conceptos de Procesamiento Paralelo . alta probabilidad de acceso otra vez ● Con caché.P. se accede al bus si el dato no está copiado en caché o si el acceso es de escritura Problema de consistencia de las cachés: los mecanismos que la aseguran al final incrementan el tráfico en el bus PR.

13/24 .1.2. Clasificación de arquitecturas según el mecanismo de control Clasificación de Flynn (1966) Se basa en dos características: Nº de datos que se pueden procesar ● Uno Varios Uno SISD MISD Varios SIMD MIMD Nº de flujos de instrucciones que se pueden procesar ● PR.1.2.P. Clasificación de modelos paralelos 1. Conceptos de Procesamiento Paralelo .

Conceptos de Procesamiento Paralelo .Uno Uno Varios SISD MISD Varios SIMD MIMD Taxonomía de Flynn: SISD (Single Instruction Single Data): arquitectura tradicional de Von Neumann ● ● SIMD (Single Instruction Multiple Data):   Computadoras con pipeline Computadores matriciales: unidad de control única.14/24 . Es la arquitectura habitual hoy en día.P. ● PR. varias unidades de procesamiento MISD (Multiple Instruction Single Data): procesamiento diferente y redundante de los mismos datos ● MIMD (Multiple Instruction Multiple Data): múltiples procesadores y cada uno con su programa y sus datos.

Uno Uno Varios SISD MISD Varios SIMD MIMD Taxonomía de Flynn (cont.P. Conceptos de Procesamiento Paralelo .15/24 .): ● Distinción borrosa MIMD <-> SIMD: SPMD (Single Program Multiple Data) Una aplicación se copia en todos los procesadores ● Algo similar a SPMD es: FPMD (Few Program Multiple Data) Un número reducido de programas es replicado PR.

Conceptos de Procesamiento Paralelo .P. Interesa clasificarlas en función de cómo ve la máquina el programador Organización de la memoria: Memoria compartida: un solo espacio de direcciones. Todos pueden leer y escribir ● Memoria disjunta o distribuida: cada máquina con memoria privada ● Máquina con memoria compartida = multiprocesador Máquina con memoria distribuida = multicomputador PR.2.2. Clasificación de arquitecturas según la organización de la memoria Flynn clasifica las máquinas en función de su hardware.1.16/24 .

P.Más fácil trabajar con memoria compartida: Más fácil emular memoria distribuída sobre memoria compartida que a la inversa: ●  Memoria compartida: se divide la memoria y se asigna a los procesadores Memoria distribuída: arbitrar un sistema de captura de accesos y reencaminar al procesador correspondiente  Más fácil portar aplicaciones serie a memoria compartida que a memoria distribuida ● En memoria compartida el tiempo de acceso a memoria es uniforme ● PR.17/24 . Conceptos de Procesamiento Paralelo .

P.18/24 . Conceptos de Procesamiento Paralelo . Se habla entonces Arquitecturas UMA (Uniform Memory Access): el tiempo de acceso es uniforme ● Arquitecturas NUMA (Non-Uniform Memory Access): el tiempo de acceso no es uniforme ● Siempre se puede poner cachés en los procesadores => aparece el problema de la coherencia de las cachés PR.La memoria compartida es poco escalable en coste Una alternativa: memoria compartida con estructura jerárquica.

3.O. Conceptos de Procesamiento Paralelo .19/24 . destrucción e interacción de procesos distingue a los paradigmas de programación Vemos: Paralelismo de datos Memoria compartida Paso de mensajes PR.P. Paradigmas de programación de máquinas paralelas Modelo computacional: visión conceptual de los recursos y las operaciones disponibles a los programas Cualquier modelo implementable sobre cualquier arquitectura (con más o menos complejidad) con ayuda del S.2.O.1. Dificultad dependiente de la lejanía S. La creación. <-> hardware Programa paralelo: aquel que involucra a más de un proceso.

Paralelismo de datos Idea: extender las operaciones escalares para hacerlas sobre vectores.20/24 .P. Conceptos de Procesamiento Paralelo . El aspecto de los programas es secuencial ● ● La paralelización la hace el compilador HPF (High Performance Fortran) || Fortran con operaciones vectoriales PR. Incorporaron operaciones complejas ● El paralelismo viene en los datos.

C++ o Fortran.: MPI (Message Passing Interface). Ej.: LINDA Paso de mensajes Procesos con memoria privada que intercambian mensajes Ej.P.21/24 .Memoria compartida Procesos leen y escriben en espacio de direcciones único Necesario mecanismo de acceso y bloqueo Si nº de procesadores alto => implementación NUMA Variante: comunicación generativa = memoria disjunta + zona compartida para intercambio de información. PR. Especificación que es implementada en C. Conceptos de Procesamiento Paralelo .

Descomposición geométrica Válido para sistemas representados por estructuras de datos similares a lo simulado (temperatura en una barra) Radio de puntos que afectan a uno dado = halo.1.3.1.2. Descomposición iterativa Procesos con iteraciones conocidas sobre datos disponibles Estrategias: preasignación o bajo demanda Requisitos: iteraciones independientes.3. Halo reducido => bajo intercambio de información No sólo sistemas físicos.3.22/24 . Conceptos de Procesamiento Paralelo . memoria suficiente en los procesadores y nº procesadores >> nº iteraciones PR.P. Técnicas de paralelización 1.: simulación de tráfico en nodos de red 1. Ej.

Descomposición recursiva El problema se divide en subproblemas (ej: ordenación quicksort) Proceso = fuente de procesos + sumidero de resultados Problema: grado de paralelización 1.1.3. Conceptos de Procesamiento Paralelo .4. Descomposición especulativa Modo “competición”: el problema en paralelo de varias formas distintas Se intentan N métodos y se desechan N-1 PR.P.3.3.23/24 .

procedimientos. métodos.5.P. ● Versión paralela => división en procesos (porciones no solapadas) ● Posibles problemas: ● ● ● Repartir equilibradamente la carga Dependencias entre unas fases y otras Nº de tareas muy reducido => subdivisión usando geométrica. Conceptos de Procesamiento Paralelo ...24/24 . Descomposición funcional Programa = conjunto de tareas que cooperan Versión serie => división en subrutinas. iterativa recursiva o especulativa PR.1.3.