tema 4: procesamiento paralelo

65
PROCESAMIENTO PARALELO www.mfbarcell.es Imágenes Prof. Morillo

Upload: manuel-fernandez-barcell

Post on 01-Jul-2015

424 views

Category:

Engineering


4 download

DESCRIPTION

Tema 4: Procesamiento paralelo.

TRANSCRIPT

Page 1: Tema 4: Procesamiento paralelo

PROCESAMIENTO PARALELO www.mfbarcell.es

Imágenes Prof. Morillo

Page 2: Tema 4: Procesamiento paralelo

Están basados en varios procesadores. ◦ El procesamiento paralelo consiste en realizar más de

una operación de manera simultánea

Propiedades corresponden a una de las primeras caracterizaciones de sistemas multiprocesador, que fue realizada por P.H. Enslow en 1977: ◦ Debe estar compuesto por dos o más procesadores.

◦ Los procesadores deben compartir el acceso a una memoria común.

◦ Los procesadores deben compartir acceso a canales de E/S, unidades de control y dispositivos.

◦ El sistema es controlado por un único sistema operativo.

Page 3: Tema 4: Procesamiento paralelo

Organización lógica ◦ Visión que tiene el programador

Estructura de control

Capacidad de expresar tareas paralelas

Modelo de comunicación

Método de comunicación entre las tareas

Organización Física ◦ Estructura del hardware ◦ Modelos de espacio de direcciones común

Memoria compartida

Un único sistema de memoria física

Memoria distribuida

Cada procesador tiene su propia memoria

Page 4: Tema 4: Procesamiento paralelo

Estructura de Control

Modelo de Comunicación

Page 5: Tema 4: Procesamiento paralelo

Paralelismo funcional ◦ El paralelismo debido a la estructura de la aplicación

Paralelismo estructural o paralelismo a nivel de datos ◦ Idéntico modo de operación pero sobre distintas partes de los datos

Criterios de clasificación ◦ Propiedades del proceso (estructura, topología y ejecución). ◦ Propiedades de interacción. ◦ Propiedades de los datos (división y localización).

Paradigmas ◦ Descomposición iterativa ◦ Paralelismo algorítmico ◦ Descomposición geométrica ◦ Descomposición especulativa ◦ Descomposición funcional ◦ Maestro/Esclavo ◦ SPMD (Single Program Multiple Data) ◦ Descomposición recursiva o divide y vencerás

Según los autores, existen muchos paradigmas que se utilizan en las aplicaciones paralelas. Vamos a comentar dos:

•Maestro esclavo •SPMD

Page 6: Tema 4: Procesamiento paralelo

Un maestro y varios esclavos. El maestro es el responsable de ◦ Descomponer el proceso en

pequeñas tareas, ◦ Distribuirlas, ◦ Recoger los resultados y ◦ Ordenarlos

Balances de carga ◦ Estático

Se realiza al comienzo de la computación

◦ Dinámico Cuando en número de tareas es

mayor que el de procesadores Cuando el número de tareas es

desconocido

Si hay un gran número de tareas puede ser un cuello de botella ◦ Necesario mas de un maestro

Page 7: Tema 4: Procesamiento paralelo

Paradigma SPMD ◦ Paralelismo geométrico, estructural o paralelismo a nivel de datos

Cada procesador ejecuta el mismo código pero sobre distintas partes de los datos ◦ supone dividir los datos de la aplicación entre los procesadores

disponibles ◦ La comunicación es entre esclavos ◦ Eficiente si los datos están bien distribuidos y el sistema es homogéneo ◦ Muy sensible a la perdida de un procesador

Page 8: Tema 4: Procesamiento paralelo

Memoria compartida, ◦ El espacio de direcciones es único

El paso de mensaje

Page 9: Tema 4: Procesamiento paralelo

Los procesadores de los sistemas con memoria compartida se caracterizan por compartir físicamente la memoria, es decir, todos acceden al mismo espacio de direcciones ◦ Un valor escrito por un procesador, puede ser leído por cualquier otro

La memoria es accesible por todos los procesadores a través de la “red de interconexión”

La red de interconexión es determinante para la eficacia del sistema Parámetros de la eficiencia de la red de interconexión

◦ Latencia de la red Tiempo que tarda en enviar un mensaje a través de la red de interconexión

◦ Ancho de banda Número de bits que puede enviar por unidad de tiempo

Latencia baja y ancho de banda alto, solo si no se encuentran varios procesadores tratando de acceder al medio utilizado para la transmisión de datos simultáneamente.

Solución válida para un número de procesadores pequeño Compartir los medios de interconexión son cuellos

Page 10: Tema 4: Procesamiento paralelo

La arquitectura más común para la comunicación es la de bus, en la cual todos los procesadores y módulos de memoria se conectan a un único bus.

El tiempo de acceso a memoria es el mismo para cualquier palabra accedida por un procesador, por lo que se denomina arquitectura de acceso uniforme a memoria (UMA - Uniform Memory Access).

Incorporan memoria cache local y global ◦ Problemas de coherencia de caches

Bus común ◦ Problema de escalabilidad (máximo entre 16 y 32 procesadores)

Escalabilidad: capacidad del sistema para mejorar la potencia de cálculo cuando el número de componentes del sistema aumentan

Mejora: ◦ Dotar al procesador de memoria local, donde almacenar código y datos no compartidos

Page 11: Tema 4: Procesamiento paralelo

◦ Memoria compartida con acceso no uniforme a memoria ◦ Cada procesador con una memoria local

Con código y datos que no tengan que ser compartidos con otros procesadores

Evitan el acceso a memoria a través de la red de interconexión

◦ Memoria compartida con acceso no uniforme a memoria solo con memoria local

Incluye mecanismos hardware dedicado a la coherencia de caches ◦ ccNUMA (caché coherent NUMA) ◦ COMA (Cahé-Only Memory Access)

Page 12: Tema 4: Procesamiento paralelo

Cada nodo tiene una porción de la memoria total del sistema Las variables compartidas se reparten de manera de que solo existe una

copia de cada variable Cada nodo consta de uno o varios procesadores con sus caches y su

memoria principal La coherencia de caché se mantiene por

◦ Escaneo de operaciones (protocolo snoopy) ◦ Registro de localización de variables

Page 13: Tema 4: Procesamiento paralelo

Los procesadores que componen cada nodo no incluyen memoria local, solo caché

Si tiene que acceder a una posición de memoria que se encuentra en un nodo remoto, lo copia ◦ Complejidad en mantener la coherencia de las variables

Page 14: Tema 4: Procesamiento paralelo

Intercambio de información, en forma de mensajes, entre los diferentes procesadores que forman el sistema

Elementos necesarios ◦ Emisor, receptor, canal de comunicación, y el mensaje

Operaciones básicas necesarias ◦ Envío ◦ Recepción ◦ Identificación

Usada para identificar cada uno de los procesadores del sistema, mediante un identificador único.

Este identificador debe acompañar a las operaciones de envío y recepción para poder identificar al emisor y el receptor

◦ Número de participantes

Mediante estas cuatro operaciones es posible escribir cualquier tipo de programa por medio de paso de mensajes. ◦ Diferentes implementaciones de mecanismos de paso de mensajes, tales

como Parallel Virlual Machi/1e (PVM) y Message Passing Inle/face (MPI),

Page 15: Tema 4: Procesamiento paralelo

Memoria Compartida

Memoria Distribuida

Page 16: Tema 4: Procesamiento paralelo

Aspectos de diseño ◦ Organización de la memoria

Ya comentado: espacio único o compartido ◦ El diseño del protocolo de coherencia de la caché ◦ El diseño de la red de interconexión

Usada para: Para acceder a la memoria remota Intercambiar mensajes entre procesadores

Redes de interconexión ◦ Esta red puede utilizarse para acceder a memoria remota o

para transportar mensajes entre los diferentes procesadores Topologías de redes de interconexión

Estáticas Definidas durante la construcción de la máquina

Dinámica Que puede adaptarse a los requisitos de comunicación de los

programas que se ejecuten

Page 17: Tema 4: Procesamiento paralelo

Denominada red directa, es una red cuya topología queda definida de manera definitiva y estable durante la construcción de la máquina paralela

Tipos ◦ Unidimensionales ◦ Bidimensionales ◦ Tridimensionales ◦ Hipercubos

Redes unidimensionales ◦ Conectar cada procesador con dos procesadores vecinos ◦ Lineal

Puede realizarse más de una transferencia simultáneamente siempre que sea a través de enlaces diferentes Puede enviar un mensaje simultáneamente a su izquierda y a su derecha

◦ Anillo Enlazando los extremos

Los mensajes se pueden enviar por la izquierda o derecha, según sea el camino mas óptimo

Problemas de comunicación cuando el número de procesadores es elevado

Page 18: Tema 4: Procesamiento paralelo

Anillo cordal ◦ Incrementando el número

de enlace por nodo

Malla Red sistólica o array

sistólico ◦ Red en malla con

conexión en diagonal

Red completamente conectada

Red en estrella ◦ Nodo central de

comunicación

Page 19: Tema 4: Procesamiento paralelo

Un procesador en cada nodo del árbol Solo un camino entre cualquier par de procesadores Las comunicaciones pueden verse comprometidas si el número de

procesadores es alto y se realizan comunicaciones con procesadores situados en niveles superiores ◦ Aliviar la desventaja indicada

Red en árbol grueso (fat tree)

Page 20: Tema 4: Procesamiento paralelo

Consiste en aumentar el número de conexiones con los procesadores de menor nivel

Page 21: Tema 4: Procesamiento paralelo

Redes tipo mesh ◦ Son extensión de las

redes lineales

Mesh bidimensionales ◦ Cada procesador se

conecta con cuatro procesadores salvo los extremos Mesh cuadrado Mesh rectangular Mesh cerrada o toro

Mesh tridimensional

Page 22: Tema 4: Procesamiento paralelo

Redes mesh multidimensionales con dos procesadores por dimensión ◦ Un hipercubo de dimensión d tiene P=2d procesadores

Propiedades ◦ Dos procesadores se conectan entre sí, si tienen un bit distinto en

un aposición determinada ◦ Un procesador de un hipercubo de dimensión d, se conecta

directamente con d procesadores ◦ Todo hipercubo se puede dividir en dos de dimensión d-1.

Se selecciona la posición de un bit y se agrupan todos los que tengan un cero en esa posición.

El resto forma la segunda partición

Distancia de Hamming ◦ Número total de posiciones de bits para los que las etiquetas de

los procesadores son diferentes ◦ Es el camino más corto entre dos procesadores.

La distancia de Hamming entre dos procesadores de etiquetas a y b es el número de bits a 1 que hay tras el resultado de la operación 𝑎⊕𝑏

Page 23: Tema 4: Procesamiento paralelo
Page 24: Tema 4: Procesamiento paralelo

Para cualquier grupo de k bits fijo, los procesadores que difieren en los demás d - k bits forman un subcubo de dimensión d - k formado por 2d-k procesadores. ◦ Dado que con k bits se pueden obtener 2k combinaciones

diferentes, se tendrán 2k subcubos distintos.

k=2 y d=4 24-2=4 subcubos Para particionar el hipercubo ◦ Se selecciona la posición de un bit y se agrupan todos los

procesadores que tengan el mismo valor (0/1) en esa posición.

Page 25: Tema 4: Procesamiento paralelo
Page 26: Tema 4: Procesamiento paralelo
Page 27: Tema 4: Procesamiento paralelo

Número total de posiciones de bits para los que las etiquetas de los procesadores son diferentes

Es el camino más corto entre dos procesadores.

La distancia de Hamming entre dos procesadores de etiquetas a y b es el número de bits a 1 que hay tras el resultado de la operación 𝑎⊕𝑏 ◦ El número de enlaces por el camino más corto entre dos

procesadores viene dado por la distancia Hamming

◦ La ruta de un mensaje desde el procesador a = 0101 al procesador b = 1011.

La distancia de Hamming en este caso es tres, ya que a ⊕b = 1110.

Page 28: Tema 4: Procesamiento paralelo

El mensaje se transmite por las dimensiones para las que la posición de a⊕b vale 1, comenzando por el bit menos significativo. ◦ En el nodo origen nos fijamos en el segundo bit menos

significativo (0101), correspondiente al primer 1 de la distancia Hamming situado en el segundo bit menos significativo, y nos movemos al nodo adyacente que en esa posición tiene un bit distinto del bit del nodo origen (es decir, al nodo 0111).

Page 29: Tema 4: Procesamiento paralelo

Diámetro ◦ Máximas distancia entre dos procesadores cualesquiera

Distancia: El camino que los une con el menor número de enlaces.

Menor distancia implica Comunicaciones más rápidas.

Conectividad ◦ Medida de la multiplicidad de caminos ◦ Como medida la conectividad de arco

Menor número de arcos que deben eliminarse para obtener dos redes disjuntas.

Rapidez ◦ Conectividad de arco

El menor número de arcos que debe eliminarse para obtener dos redes disjuntas

◦ Ancho de canal El número de bits que puede transmitirse simultáneamente

◦ Velocidad de canal Velocidad máxima que se puede emitir por cada cable físico

◦ Ancho de banda velocidad máxima con la que los datos pueden enviarse entre dos enlaces de comunicación

Velocidad de canal x ancho de canal

◦ Ancho de bisección Mínimo número de enlaces que debe eliminarse para que la red se divida en dos iguales

◦ Ancho de banda de disección El menor volumen de comunicaciones entre dos mitades cualesquiera con igual número de

procesadores ancho de banda de bisección = (ancho de bisección)*(ancho de banda del canal)

Coste ◦ Contar el número de enlaces de comunicación o la cantidad de cableado necesario en la red.

Page 30: Tema 4: Procesamiento paralelo
Page 31: Tema 4: Procesamiento paralelo

Redes basadas en bus Redes crossbar (matriciales)

Redes multietapas

Page 32: Tema 4: Procesamiento paralelo

Todos los nodos comparten un único medio de comunicación Solo un procesador puede transmitir información al bus La colisión de peticiones de acceso al bus se soluciona usando una lógica de

arbitraje o módulo de arbitraje Lógica de arbitraje

◦ FIFO (First In First Out - Primero en Entrar Primero en Salir) ◦ Round Robin (en circulo) ◦ LRU (Least Recently Used - Menos Usando Recientemente)

Ancho de banda ◦ Frecuencia del reloj X número de líneas existente

El rendimiento se puede mejorar incluyendo una caché en cada procesador

Page 33: Tema 4: Procesamiento paralelo

Permite conectar P procesadores con q elementos mediante una matriz de conmutadores

El nº de conmutadores es p x q. La complejidad y el coste aumenta del orden de p2

Son no-bloqueantes ◦ El acceso de un procesador a un elemento de memoria no interfiere en la

conexión de otro procesador con otro elemento de memoria

Page 34: Tema 4: Procesamiento paralelo

Las redes multietapa suponen un compromiso intermedio entre las dos opciones anteriores.

Se componen de una serie de etapas Gi compuesta por conmutadores conectados a las etapas adyacentes por conexiones estáticas Cj

Los conmutadores con igual número de entrada y de salida se dice que tiene un orden =a = b. (2x2 = orden 2)

Son redes bloqueantes ◦ Ciertas permutaciones, o conexiones a través de la red, pueden a su vez bloquear otras

conexiones.

La principal diferencia entre las distintas redes multietapa recae en el tipo de conmutadores utilizados y el patrón de conexión entre etapas

Page 35: Tema 4: Procesamiento paralelo

Utiliza la permutación por barajamiento perfecto (perffect suffle) entre sus etapas ◦ Del nodo origen se obtiene el destino realizado un desplazamiento a la izda de todos los bits que representan el

número en binario ◦ Barajamiento perfecto inverso, en el que se efectúa la misma operación pero con un desplazamiento a la derecha

Para p nodos de entrada (normalmente procesadores) y p nodos de salida (normalmente elementos de memoria) ◦ Etapas = log 2 P ◦ Número de conmutadores necesarios= P/2 (log2P)

Page 36: Tema 4: Procesamiento paralelo

Algoritmo de encaminamiento ◦ Cada paquete transmitido va precedido de la dirección del nodo destino en

binario ◦ Los conmutadores de cada etapa deciden el camino por el que transmitir el

paquete dependiendo del valor del bit de la dirección destino correspondiente a la etapa actual. Si el bit es 0, se encamina por la salida superior, y

si es 1, se utiliza la salida inferior.

Ejemplo : del procesador 110 al 100

Page 37: Tema 4: Procesamiento paralelo

Se construyen conectando los conmutadores de la etapa i con los sub-bloques de la etapa i + 1 ◦ La primera etapa se construye con un bloque que tendrá un tamaño 𝑛×𝑛, siendo n el

número de entradas. ◦ La segunda etapa se construye con dos sub-bloques de tamaño ◦ y así recursivamente hasta llegar en la última etapa a 𝑛/2 sub-bloques de tamaño 2 x 2.

El direccionamiento igual que la red omega

Desplazamiento a la derecha

Page 38: Tema 4: Procesamiento paralelo

Las salidas de un conmutador j en la etapa i (identificado como [i, j]) se conectarán a los conmutadores [i + 1, j] e [i + 1, j ⊕ 2i ] (es decir, difieren en el i-ésimo bit).

Page 39: Tema 4: Procesamiento paralelo

Encaminamiento ◦ Siendo A, el conmutador conectado al nodo de origen y B el

conectado al nodo destino, ambos representados en binario, se calcula la ruta 𝑅=𝐴⊕𝐵 La ruta entre A y B

Si Ri = 0 Camino directo Si Ri = 1 Camino cruzado

Page 40: Tema 4: Procesamiento paralelo

Las multi-etapas son una solución aceptable teniendo en cuenta precio/prestaciones

Page 41: Tema 4: Procesamiento paralelo

Coherencia de cache ◦ Un sistema de memoria es coherente si el valor devuelto por una operación de lectura sobre

una dirección de memoria es siempre el mismo valor que el almacenado en la última operación de escritura realizada sobre esa misma dirección, independientemente de qué procesador realice las operaciones

Problema de coherencia de caché ◦ Varios procesadores pueden guardar en sus respectivas cachés locales una copia de un

mismo bloque de memoria. Este bloque es modificado por cada procesador, por lo que es necesario que los cambios

realizados se comuniquen al resto de procesadores.

◦ Soluciones: No incorporar un protocolo de coherencia de caché y centrarse en la escalabilidad del sistema Solo permitir dos tipos de acceso: locales o remotos

Local, en el que el procesador accede a datos privados y puede utilizar una caché local.

Remoto, en el que el procesador accede a datos externos que no se almacenan en caché.

En este caso dichos datos pueden ser accedidos utilizando, por ejemplo, la técnica de paso de mensajes.

Factores que provocan problemas de coherencia Modificar datos compartidos

Si un procesador modifica su caché local, el contenido de la memoria principal y las copias de las cachés no serán coherentes

Migración de procesos Si proceso A -> P1 y asigna la variable V = 10 (suponiendo que su valor anterior fuese 0) y si es intercambiado

a otro procesador P2 antes de que la memoria principal se actualice, el valor de V que obtiene A será 0 ya que el valor 10 solo está almacenado en la caché de P1.

Por uso de E/S mediante DMA Los datos escritos por el procesador de E/S en la memoria principal pueden ser inconsistentes con las copias

existentes en las cachés locales de los procesadores del sistema.

◦ Soluciones Invalidar

Actualizar

Page 42: Tema 4: Procesamiento paralelo

Invalidar las copias en las cachés del dato modificado. ◦ Consiste en invalidar las copias en las caches de los datos modificados

Actualizar las copias en las cachés del dato modificado. ◦ Consiste en actualizar todas las copias en las caches del dato que se acaba

de modificar

Page 43: Tema 4: Procesamiento paralelo

Un posible método para mantener la coherencia ◦ monitorización del número de copias existentes y el estado de cada copia.

El estado compartido corresponde a una variable que ha sido cargada en las cachés de varios procesadores.

Cuando un procesador modifica una variable compartida ésta pasa al estado sucio, y todas las copias de esa variable en las cachés de otros procesadores pasan al estado inválido. Para garantizar la coherencia, todos los accesos sobre una variable inválida deberán ser servidos por el procesador que tiene dicha variable en el estado sucio.

Si un procesador realiza una lectura sobre una variable inválida se propaga una acción C_lectura que actualiza el resto de copias, además de la memoria principal, y las devuelve al estado compartido.

Si un procesador realiza una escritura sobre una variable inválida se propaga una acción C_escritura para invalidar el resto de copias y posteriormente pasar dicha variable al estado sucio.

Si un procesador realiza una escritura sobre un bloque compartido se generará una acción C_escritura para invalidar el resto de copias en las cachés, pasando la variable modificada al estado sucio.

Finalmente, cuando un procesador vacía su caché todos los bloques pasan al estado inválido.

Page 44: Tema 4: Procesamiento paralelo

Mecanismos hardware para implementar el protocolo de coherencia de caché basado en invalidación ◦ Sistemas snoopy o de vigilancia del bus

◦ Sistemas basados en directorios

Page 45: Tema 4: Procesamiento paralelo

Este mecanismo es muy común en sistemas multiprocesador que usan una red de difusión, tales como un bus o un anillo

Cada procesador monitoriza el trafico de la red en busca de transacciones

La caché de cada procesador tiene asociada unas etiquetas que utiliza para determinar el estado de su bloque

Limitación: ◦ el ancho de banda del bus

Page 46: Tema 4: Procesamiento paralelo

Usa un sistema de mapa de bits para almacenar la localización de las copias de caché que tiene cada procesador

DIRECTORIO CENTRALIZADO ◦ EL MAPA DE BITS ESTÁ EN MEMORIA PRINCIPAL

DIRECTORIO DISTRIBUIDO ◦ El mapa de bits está en las memorias locales

Page 47: Tema 4: Procesamiento paralelo

Cada procesador tiene su propia memoria local o privada solo accesible por su procesador

La comunicación se realiza por paso de mensajes ◦ Para que un dato que reside en la memoria de un procesador pase a la de otro, el

primero debe construir un mensaje por software.

El paso de mensajes parece ser la estrategia dominante en los sistemas con gran número de procesadores (mayor que 100), y es especialmente útil en entornos donde la ejecución de los programas puede dividirse en pequeños subprogramas independientes

◦ Uso adecuado del ancho de banda Cuidadoso reparto de los datos sobre los procesadores con el fin de disminuir la

granularidad de las comunicaciones

Los sistemas con memoria distribuida o multicomputadores pueden ser ◦ MPP (Massively Parallel Processor)

Un único computador con múltiples CPUs comunicadas por un bus de datos ◦ Cluster

Múltiples computadores, cada uno con su propio procesador, enlazados por una red de interconexión

Cluster no dedicado NOW Estaciones de trabajo con swich

Cluster dedicado o Boewulf Conjunto minimalista de nodos conectados por un medio de comunicación barato (rj-45)

Fuertemente dependiente de la arquitectura

Para programar un Beowulf en primer lugar se diseña el modelo de paralelismo, se observan cómo son las comunicaciones entre los nodos y se implementan físicamente.

Page 48: Tema 4: Procesamiento paralelo
Page 49: Tema 4: Procesamiento paralelo

Pueden presentar distintas topologías ◦ Lineales, anillos, estrella

Pueden utilizar un swich o un hub ¿Porqué cluster?

◦ Los clusters constituyen una alternativa de menor coste ampliamente utilizada y consolidada. Mas económicos que los ordenadores vectoriales y MPP

Los motivos que han hecho posible este hecho cabe destacar el gran progreso en la disponibilidad de componentes de un alto rendimiento para PCs/estaciones de trabajo y redes de interconexión.

◦ Mejora y abaratamiento de los componentes de redes ◦ Escalables, bajo coste, hardware convencional, software de libre distribución

Características ◦ Se pueden construir con un esfuerzo relativamente moderado. ◦ Son sistemas de bajo coste. ◦ Utilizan hardware convencional y accesible. ◦ Utilizan un sistema de comunicación basado en una red de área local rápida como Myrinet o Fast

Ethenet ◦ Utilizan un software de libre distribución, como Linux, y algún entorno de programación paralelo

PVM (Parallel Virtual Machine) o MPI (Message Passing Inteiface). ◦ Son sistemas escalables ◦ Cada máquina de un cluster puede ser un sistema completo utilizable o aprovechable para otros

propósitos. ◦ Reemplazar un computador defectuoso de un cluster es trivial. ◦ El rendimiento y los recursos del cluster pueden crecer con el tiempo beneficiándose de las

últimas tecnologías computacionales y de redes. ◦ Debido a la estandarización se tiene la garantía de que los programas escritos para un cluster

funcionarán en cualquier otro con independencia del tipo de procesador de cada nodo sin más que recompilar el código para esa arquitectura

Desventajas

◦ Las redes ordinarias no están diseñadas para el procesamiento paralelo. ◦ En los sistemas operativos monoprocesador existe muy poco software para tratar un cluster como

un único sistema.

Page 50: Tema 4: Procesamiento paralelo

Memoria compartida: ◦ alto acoplamiento. (semáforos, monitores..)

Cluster: ◦ Control mas sencillo, pero no soporta un alto grado de acoplamiento = muchos mensajes ◦ Debe tenerse en cuenta el hardware de la máquina ya que es preciso maximizar la

relación entre el tiempo de cálculo útil y el "perdido" en el paso de mensajes. ◦ La clave consiste en descomponer el problema de tal forma que cada procesador pueda

operar el mayor tiempo posible sobre su fragmento de los datos. ◦ Es interesante utilizar un cluster si la aplicación es suficientemente paralela y/o ha sido

ya paralelizada ◦ Opciones para hacer que la aplicación sea capaz de usar los computadores de un cluster

Programar explícitamente el paso de mensajes.

Utilizar herramientas que lo hagan.

Page 51: Tema 4: Procesamiento paralelo

Paradigmas de programación

El modelo de memoria compartida es similar al

de un tablón de anuncios con acceso

restringido. ◦ Hay que tener la seguridad de que la información que

un procesador lee es semánticamente válida, y no son

datos inválidos

El modelo de paso de mensajes. ◦ Menos intuitivo pero más cómodo para transmitir

información.

Page 52: Tema 4: Procesamiento paralelo

Factores que influyen en la velocidad de los procesos

4.6.1.1. Granularidad de los procesos ◦ tamaño de los procesos

Granularidad gruesa ◦ Gran número de instrucciones secuenciales ◦ No necesitan comunicación

Granularidad fina ◦ Pocas instrucciones secuenciales

Page 53: Tema 4: Procesamiento paralelo

Ts: ◦ Es el tiempo de ejecución de un programa en un único procesador.

tp ◦ es el tiempo de ejecución en un sistema paralelo con M procesadores.

M ◦ Número de procesadores.

S(M) incremento de la velocidad

La aceleración máxima absoluta de M se debería alcanzar cuando: la computación se puede dividir en procesos de igual duración, cada proceso se localiza en un procesador y no hay sobrecarga (overhead), es decir:

Page 54: Tema 4: Procesamiento paralelo

f -> la fracción del programa que no se puede dividir en tareas paralelas, 0 ≤ f ≤ 1 y se considera que no hay sobrecarga cuando el programa se divide en tareas paralelas

Tiempo de computación necesario para ejecutar el programa en M procesadores

Page 55: Tema 4: Procesamiento paralelo

La razón para aumentar el número de procesadores debe ser para resolver problemas de tamaño mayor, y no para resolver más rápidamente un problema de tamaño fijo.

El límite de Amdahl 1/f como el mayor factor de aceleración posible cuando el número de procesadores disponibles tiende a infinito.

Page 56: Tema 4: Procesamiento paralelo

La eficiencia da la fracción de tiempo que se utilizan los procesadores durante la computación

Page 57: Tema 4: Procesamiento paralelo
Page 58: Tema 4: Procesamiento paralelo

Un sistema es escalable si permite ampliar su tamaño para obtener una mejora de rendimiento

La escalabilidad puede ser de: ◦ Hardware

Un diseño hardware que permite ampliar su tamaño para obtener una mejora en el rendimiento

◦ Algorítmica Un algoritmo paralelo puede soportar un incremento grande de datos con un incremento

bajo y acotado de pasos computacionales

Un sistema es escalable si el rendimiento del mismo se incrementa linealmente con relación al numero de procesadores usados en cierta aplicación ◦ Los estudios de escalabilidad determinan el grado de afinidad entre una arquitectura

determinada y una aplicación

Parámetros ◦ Tamaño del sistema (nº de procesadores) ◦ Frecuencia del reloj ◦ Tamaño del problema ◦ Tiempo de CPU ◦ Capacidad de memoria ◦ Pérdidas (overhead) de comunicación ◦ Coste del sistema

Page 59: Tema 4: Procesamiento paralelo

Distribuir equitativamente la carga computacional entre todos los procesadores disponibles y con ello conseguir la máxima velocidad de ejecución.

Balance de carga estático ◦ El balance se realiza antes de la ejecución de cualquier proceso

Es muy difícil estimar de forma precisa el tiempo de ejecución antes de ejecutarlo

Puede haber retrasos en las comunicaciones que pueden variar en distintas circunstancias

El problema puede necesitar distinto número de pasos computacionales (algoritmos de búsquedas)

Balance de carga dinámico ◦ El balance se realiza durante la ejecución

Las tareas se reparten entre los procesadores durante la ejecución del programa.

◦ Balance de carga centralizado Si no hay muchos esclavos y son intensiva computacionalmente

◦ Balance de carga distribuido Se utiliza varios maestros

Page 60: Tema 4: Procesamiento paralelo
Page 61: Tema 4: Procesamiento paralelo

Se corresponde con la estructura típica de MaestrofEsclavo. El proceso maestro es el que tiene la colección completa de

tareas a realizar. Las tareas son enviadas a los procesos esclavos. Cuando un proceso esclavo finaliza una tarea, solicita una nueva

al maestro. Esta técnica también se denomina programación por demanda o

bolsa de trabajo

Page 62: Tema 4: Procesamiento paralelo

Se utilizan varios maestros y cada uno controla a un grupo de esclavos. Una gran desventaja del balance de carga dinámico centralizado es que

el proceso maestro únicamente puede repartir una tarea cada vez, y después de que haya enviado las tareas iniciales solo podrá responder a nuevas peticiones de una en una

Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en más de un sitio.

Page 63: Tema 4: Procesamiento paralelo

Latencia de comunicación ◦ El tiempo necesario para preparar el mensaje y el tiempo que éste emplea en atravesar la red de

comunicación hasta su destino.

Latencia en comunicación ◦ Tiempo de iniciación (ts)

Este tiempo incluye el tiempo en preparar el mensaje, el tiempo de ejecución del algoritmo de enrutamiento y el tiempo de conexión entre el emisor y el enrutador

◦ Tiempo de salto (Th)

Es el tiempo que tarda la cabecera de un mensaje en viajar entre dos nodos

◦ Tiempo de transferencia por palabra (tw)

Si el ancho de banda de un canal es r palabras por segundo, su tiempo de transferencia por palabra es 1/r.

Almacenamiento y reenvío (store-and-forward) ◦ Cada nodo intermedio entre el emisor y el receptor reenvía el mensaje únicamente cuando lo ha recibido y

almacenado completamente. ◦ Se supone un mensaje de tamaño m que se transmite a través de l enlaces intermedios. Donde en cada

enlace el mensaje tarda th para la cabecera y twm para el resto del mensaje. El tiempo total:

Corte y continuación (cut-through) ◦ Divide cada mensaje en un número fijo de unidades llamados dígitos de control de flujo (flow control digits

o flits) ◦ Antes de enviar el primer flits se establece la ruta mediante un paquete denominado tracer ◦ Una vez se ha establecido la conexión se envían los flits uno tras otro, siguiendo todos la misma ruta. Los

nodos intermedios no esperan a recibir todo el mensaje, sino que reenvían los flits según los van recibiendo. ◦ Se supone un mensaje de m palabras que viaja a través de una red con l enlaces. Si th es el tiempo de salto, la

cabecera del mensaje tardará un tiempo lth en llegar al receptor

Page 64: Tema 4: Procesamiento paralelo
Page 65: Tema 4: Procesamiento paralelo

La unidad de medida para el coste de la comunicación de un programa paralelo mediante paso de mensajes es mucho más sencillo que mediante el uso de memoria compartida.

RAZONES ◦ La disposición de los datos en memoria está determinada por el sistema

◦ La limitación en el tamaño de las caché puede provocar un problema de hiperpaginación (thrashing).

◦ La sobrecarga (overhead) incluida por las operaciones de coherencia de caché (invalidar y actualizar) es difícil de cuantificar.

◦ La localidad espacial es un fenómeno difícil de modelar. ◦ La lectura-anticipada de palabras juega un papel importante en la reducción de los

tiempos de acceso a los datos. ◦ El fenómeno de false-sharing puede incluir una sobrecarga (overhead) importante en

muchos programas. false-sharing cuando diferentes procesadores acceden a diferentes datos que están almacenados en el mismo bloque de caché.

◦ La competición por los recursos del sistema normalmente supone una de las mayores sobrecargas (overheads) en sistemas de memoria compartida.

◦ El acceso a datos remotos provoca la lectura de dichos datos para escribirlos en la caché local. Esto implica un tiempo para las acciones de coherencia, la red de interconexión y el acceso a memoria. El tiempo de acceso a una palabra remota se denomina como tw. El coste de compartir

un bloque de datos de m palabras será ts + mtw ◦ Si el acceso es en modo lectura-escritura, el coste se incrementa en los accesos

de los procesadores posteriores al que escribe.