SlideShare una empresa de Scribd logo
1 de 65
Descargar para leer sin conexión
PROCESAMIENTO PARALELO 
www.mfbarcell.es 
Imágenes Prof. Morillo
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.
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
Estructura de Control 
Modelo de Comunicación
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
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
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
Memoria compartida, 
◦El espacio de direcciones es único 
El paso de mensaje
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
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
◦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)
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
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
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),
Memoria Compartida 
Memoria Distribuida
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
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
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
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)
Consiste en aumentar el número de conexiones con los procesadores de menor nivel
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
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 푎⊕푏
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.
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.
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).
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.
Redes basadas en bus 
Redes crossbar (matriciales) 
Redes multietapas
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
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
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
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)
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
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
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).
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
Las multi-etapas son una solución aceptable teniendo en cuenta precio/prestaciones
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
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
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.
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
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
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
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. 

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.
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.
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.
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 
◦
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:
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
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.
La eficiencia da la fracción de tiempo que se utilizan los procesadores durante la computación
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
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
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
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.
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
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.

Más contenido relacionado

La actualidad más candente

Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salidaitzayana bacilio
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Juan Anaya
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasJ M
 
Organización y estructura interna del cpu
Organización y estructura interna del cpuOrganización y estructura interna del cpu
Organización y estructura interna del cpuIsaí Beto Matz Mijes
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosMarvin Romero
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores JUANR1022
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Mayito Pdg
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativosDaniel Vargas
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acidJefer Lee Parra
 

La actualidad más candente (20)

Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Arquitectura harvard
Arquitectura harvardArquitectura harvard
Arquitectura harvard
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
 
Organización y estructura interna del cpu
Organización y estructura interna del cpuOrganización y estructura interna del cpu
Organización y estructura interna del cpu
 
Arquitectura del computador clusters
Arquitectura del computador   clustersArquitectura del computador   clusters
Arquitectura del computador clusters
 
macros Lenguaje ensamblador
macros Lenguaje ensambladormacros Lenguaje ensamblador
macros Lenguaje ensamblador
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas Operativos
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores
 
LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADORLENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativos
 
Registros del cpu
Registros del cpuRegistros del cpu
Registros del cpu
 
UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acid
 

Destacado

Procesamiento paralelo
Procesamiento paraleloProcesamiento paralelo
Procesamiento paralelowarrionet
 
Sistemas distribuidos. diseño e implementacion
Sistemas distribuidos. diseño e implementacionSistemas distribuidos. diseño e implementacion
Sistemas distribuidos. diseño e implementacionTensor
 
Vista aérea de los lenguajes de programación
Vista aérea de los lenguajes de programaciónVista aérea de los lenguajes de programación
Vista aérea de los lenguajes de programaciónEduard Tomàs
 
Programación Orientada a Objeto
Programación Orientada a ObjetoProgramación Orientada a Objeto
Programación Orientada a Objetoismaelrubino
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objetoboncastell
 
Recursividad
RecursividadRecursividad
Recursividadbetzy
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOFredy Olaya
 
Sistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e ImplementacionSistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e ImplementacionJorge Guerra
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y ObjetosKudos S.A.S
 
Lenguajes Imperativos
Lenguajes ImperativosLenguajes Imperativos
Lenguajes Imperativosguestc9b96
 

Destacado (20)

Procesamiento paralelo
Procesamiento paraleloProcesamiento paralelo
Procesamiento paralelo
 
Procesamiento en paralelo
Procesamiento en paraleloProcesamiento en paralelo
Procesamiento en paralelo
 
Sistemas distribuidos. diseño e implementacion
Sistemas distribuidos. diseño e implementacionSistemas distribuidos. diseño e implementacion
Sistemas distribuidos. diseño e implementacion
 
Programación pararelo
Programación parareloProgramación pararelo
Programación pararelo
 
Vista aérea de los lenguajes de programación
Vista aérea de los lenguajes de programaciónVista aérea de los lenguajes de programación
Vista aérea de los lenguajes de programación
 
2.1 recursividad
2.1 recursividad2.1 recursividad
2.1 recursividad
 
Programación Orientada a Objeto
Programación Orientada a ObjetoProgramación Orientada a Objeto
Programación Orientada a Objeto
 
Recursividad
RecursividadRecursividad
Recursividad
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objeto
 
Recursividad
RecursividadRecursividad
Recursividad
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 
Computacion paralela
Computacion paralelaComputacion paralela
Computacion paralela
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
 
Diagrama de Flujo del Sistema Operativo
Diagrama de Flujo del Sistema OperativoDiagrama de Flujo del Sistema Operativo
Diagrama de Flujo del Sistema Operativo
 
Sistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e ImplementacionSistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e Implementacion
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 
Lalal[1]
Lalal[1]Lalal[1]
Lalal[1]
 
Lenguajes Imperativos
Lenguajes ImperativosLenguajes Imperativos
Lenguajes Imperativos
 
computación paralela
computación paralelacomputación paralela
computación paralela
 

Similar a Tema 4: Procesamiento paralelo.

Similar a Tema 4: Procesamiento paralelo. (20)

Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadoras
 
arq de computadora unidad 4
arq de computadora unidad 4arq de computadora unidad 4
arq de computadora unidad 4
 
Herramientas de Sistemas Distribuidos
Herramientas de Sistemas DistribuidosHerramientas de Sistemas Distribuidos
Herramientas de Sistemas Distribuidos
 
Programación Paralela - Conceptos y diseño de sistemas distribuidos
Programación Paralela - Conceptos y diseño de sistemas distribuidosProgramación Paralela - Conceptos y diseño de sistemas distribuidos
Programación Paralela - Conceptos y diseño de sistemas distribuidos
 
Parallel Programming Plataforms
Parallel Programming PlataformsParallel Programming Plataforms
Parallel Programming Plataforms
 
Sistemas centralizados resume
Sistemas centralizados resumeSistemas centralizados resume
Sistemas centralizados resume
 
Arqui hardware
Arqui hardwareArqui hardware
Arqui hardware
 
Multiprocesamiento (S.O)
Multiprocesamiento (S.O)Multiprocesamiento (S.O)
Multiprocesamiento (S.O)
 
Opensuse2
Opensuse2Opensuse2
Opensuse2
 
Segunda unidas open suse
Segunda unidas open suseSegunda unidas open suse
Segunda unidas open suse
 
Multiprocesamiento
MultiprocesamientoMultiprocesamiento
Multiprocesamiento
 
Capítulo 3
Capítulo 3Capítulo 3
Capítulo 3
 
Conceptos de software
Conceptos de softwareConceptos de software
Conceptos de software
 
7 introsd
7 introsd7 introsd
7 introsd
 
Programacion en ambientes heterogeneos
Programacion en ambientes heterogeneosProgramacion en ambientes heterogeneos
Programacion en ambientes heterogeneos
 
Entrada salida
Entrada salidaEntrada salida
Entrada salida
 
Gestion de Entrada y Salida
Gestion de Entrada y SalidaGestion de Entrada y Salida
Gestion de Entrada y Salida
 
Gestion de Entradas y Salidas
Gestion de Entradas y SalidasGestion de Entradas y Salidas
Gestion de Entradas y Salidas
 
Unidad VI
Unidad VIUnidad VI
Unidad VI
 
INTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOSINTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOS
 

Más de Manuel Fernandez Barcell (20)

sistemas informaticos para la agroalimentacion
sistemas informaticos para la agroalimentacionsistemas informaticos para la agroalimentacion
sistemas informaticos para la agroalimentacion
 
viajes 2.0
viajes 2.0viajes 2.0
viajes 2.0
 
Tema 08 gobiernoabierto
Tema 08 gobiernoabiertoTema 08 gobiernoabierto
Tema 08 gobiernoabierto
 
Tema 05 datosabiertos
Tema 05 datosabiertosTema 05 datosabiertos
Tema 05 datosabiertos
 
Tema 08 estandares abiertos
Tema 08 estandares abiertosTema 08 estandares abiertos
Tema 08 estandares abiertos
 
T06 01 interoperabilidad
T06 01 interoperabilidadT06 01 interoperabilidad
T06 01 interoperabilidad
 
T04 03 ens
T04 03 ensT04 03 ens
T04 03 ens
 
T04 07 clave
T04 07 claveT04 07 clave
T04 07 clave
 
T04 05 notificaciones
T04 05 notificacionesT04 05 notificaciones
T04 05 notificaciones
 
T04 04 sede
T04 04 sedeT04 04 sede
T04 04 sede
 
T04 03 marcadetiempo
T04 03 marcadetiempoT04 03 marcadetiempo
T04 03 marcadetiempo
 
T04 02 dnielectronico
T04 02 dnielectronicoT04 02 dnielectronico
T04 02 dnielectronico
 
T04 01 pki
T04 01 pkiT04 01 pki
T04 01 pki
 
T03 04 firmaelectronica
T03 04 firmaelectronicaT03 04 firmaelectronica
T03 04 firmaelectronica
 
T03 03 certificados_digitales
T03 03 certificados_digitalesT03 03 certificados_digitales
T03 03 certificados_digitales
 
T03 02 criptografia
T03 02 criptografiaT03 02 criptografia
T03 02 criptografia
 
T03 conceptos seguridad
T03 conceptos seguridadT03 conceptos seguridad
T03 conceptos seguridad
 
Ae t01 introduccion_ae
Ae t01 introduccion_aeAe t01 introduccion_ae
Ae t01 introduccion_ae
 
Redes Lan
Redes LanRedes Lan
Redes Lan
 
Redes tcp/ip
Redes tcp/ipRedes tcp/ip
Redes tcp/ip
 

Último

01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.pptoscarvielma45
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOLUISDAVIDVIZARRETARA
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASPersonalJesusGranPod
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfTEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfXimenaFallaLecca1
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinosDayanaCarolinaAP
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfdanielJAlejosC
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesCarlosMeraz16
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDEdith Puclla
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZgustavoiashalom
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 

Último (20)

01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfTEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 

Tema 4: Procesamiento paralelo.

  • 1. PROCESAMIENTO PARALELO www.mfbarcell.es Imágenes Prof. Morillo
  • 2. 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.
  • 3. 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
  • 4. Estructura de Control Modelo de Comunicación
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. Memoria compartida, ◦El espacio de direcciones es único El paso de mensaje
  • 9. 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
  • 10. 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
  • 11. ◦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)
  • 12. 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
  • 13. 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
  • 14. 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),
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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)
  • 20. Consiste en aumentar el número de conexiones con los procesadores de menor nivel
  • 21. 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
  • 22. 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 푎⊕푏
  • 23.
  • 24. 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.
  • 25.
  • 26.
  • 27. 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.
  • 28. 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).
  • 29. 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.
  • 30.
  • 31. Redes basadas en bus Redes crossbar (matriciales) Redes multietapas
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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)
  • 36. 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
  • 37. 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
  • 38. 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).
  • 39. 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
  • 40. Las multi-etapas son una solución aceptable teniendo en cuenta precio/prestaciones
  • 41. 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
  • 42. 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
  • 43. 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.
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. 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. 
  • 48.
  • 49. 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.
  • 50. 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.
  • 51. 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.
  • 52. 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 ◦
  • 53. 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:
  • 54. 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
  • 55. 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.
  • 56. La eficiencia da la fracción de tiempo que se utilizan los procesadores durante la computación
  • 57.
  • 58. 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
  • 59. 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
  • 60.
  • 61. 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
  • 62. 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.
  • 63. 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
  • 64.
  • 65. 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.