SlideShare una empresa de Scribd logo
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

Protocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemProtocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemMirna L. Torres Garcia
 
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
José Antonio Sandoval Acosta
 
Detección y Corrección de errores
Detección y Corrección de erroresDetección y Corrección de errores
Detección y Corrección de errores
Ronie Martínez
 
Buses
BusesBuses
Buses
aldaiyaz
 
Investigación Técnicas de detección de errores de transmisión
Investigación Técnicas de detección de errores de transmisiónInvestigación Técnicas de detección de errores de transmisión
Investigación Técnicas de detección de errores de transmisión
José Alexis Cruz Solar
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Humano Terricola
 
Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un proceso
i92almaa
 
Procesos e Hilos
Procesos e HilosProcesos e Hilos
Procesos e Hilos
Luis Feliciano
 
Control de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesControl de flujo en Telecomunicaciones
Control de flujo en Telecomunicaciones
Daniel Morales
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
Laura Guadalupe Rosado Hernández
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
YESENIA CETINA
 
Cuadro comparativo hilos
Cuadro comparativo hilosCuadro comparativo hilos
Cuadro comparativo hilos
Benjamín Joaquín Martínez
 
Acceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMAAcceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMA
Erika Rodríguez
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
Jonathan Bastidas
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
Anel Sosa
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores JUANR1022
 
Registros de la cpu
Registros de la cpuRegistros de la cpu
Registros de la cpujomapuga
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
J M
 

La actualidad más candente (20)

Protocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemProtocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modem
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
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
 
Detección y Corrección de errores
Detección y Corrección de erroresDetección y Corrección de errores
Detección y Corrección de errores
 
Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]
 
Buses
BusesBuses
Buses
 
Investigación Técnicas de detección de errores de transmisión
Investigación Técnicas de detección de errores de transmisiónInvestigación Técnicas de detección de errores de transmisión
Investigación Técnicas de detección de errores de transmisión
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un proceso
 
Procesos e Hilos
Procesos e HilosProcesos e Hilos
Procesos e Hilos
 
Control de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesControl de flujo en Telecomunicaciones
Control de flujo en Telecomunicaciones
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Cuadro comparativo hilos
Cuadro comparativo hilosCuadro comparativo hilos
Cuadro comparativo hilos
 
Acceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMAAcceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMA
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores
 
Registros de la cpu
Registros de la cpuRegistros de la cpu
Registros de la cpu
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
 

Destacado

Procesamiento paralelo
Procesamiento paraleloProcesamiento paralelo
Procesamiento paralelo
warrionet
 
Sistemas distribuidos. diseño e implementacion
Sistemas distribuidos. diseño e implementacionSistemas distribuidos. diseño e implementacion
Sistemas distribuidos. diseño e implementacion
Tensor
 
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
Eduard Tomàs
 
2.1 recursividad
2.1 recursividad2.1 recursividad
2.1 recursividad
erwin_alexander
 
Programación Orientada a Objeto
Programación Orientada a ObjetoProgramación Orientada a Objeto
Programación Orientada a Objetoismaelrubino
 
Recursividad
RecursividadRecursividad
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objeto
boncastell
 
Recursividad
RecursividadRecursividad
Recursividad
betzy
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
Franco Guamán
 
Computacion paralela
Computacion paralelaComputacion paralela
Computacion paralela
paolaanchicobenabides
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
Fredy Olaya
 
Diagrama de Flujo del Sistema Operativo
Diagrama de Flujo del Sistema OperativoDiagrama de Flujo del Sistema Operativo
Diagrama de Flujo del Sistema Operativo
Ing-D-SW-TorresKhano--ME
 
Sistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e ImplementacionSistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e Implementacion
Jorge Guerra
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
Cesar David Fernandez Grueso
 
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
Kudos S.A.S
 
Lenguajes Imperativos
Lenguajes ImperativosLenguajes Imperativos
Lenguajes Imperativosguestc9b96
 
computación paralela
computación paralelacomputación paralela
computación paralela
Yazmin Polanco
 

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.

Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadoras
camiche97
 
arq de computadora unidad 4
arq de computadora unidad 4arq de computadora unidad 4
arq de computadora unidad 4
Saory Rma
 
Herramientas de Sistemas Distribuidos
Herramientas de Sistemas DistribuidosHerramientas de Sistemas Distribuidos
Herramientas de Sistemas Distribuidos
Tensor
 
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
Jose Moyano
 
Parallel Programming Plataforms
Parallel Programming PlataformsParallel Programming Plataforms
Parallel Programming PlataformsVeronica Ramirez
 
Sistemas centralizados resume
Sistemas centralizados resumeSistemas centralizados resume
Sistemas centralizados resume
veronica tenelema
 
Arqui hardware
Arqui hardwareArqui hardware
Multiprocesamiento (S.O)
Multiprocesamiento (S.O)Multiprocesamiento (S.O)
Multiprocesamiento (S.O)Javier Alvarez
 
Segunda unidas open suse
Segunda unidas open suseSegunda unidas open suse
Segunda unidas open suseMiguel Magaña
 
Multiprocesamiento
MultiprocesamientoMultiprocesamiento
Multiprocesamiento
Cristian Avila
 
Capítulo 3
Capítulo 3Capítulo 3
Capítulo 3
bdrz7
 
Programacion en ambientes heterogeneos
Programacion en ambientes heterogeneosProgramacion en ambientes heterogeneos
Programacion en ambientes heterogeneos
itatitat
 
INTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOSINTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOS
Richard Eliseo Mendoza Gafaro
 

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
 
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
 
Entrada salida
Entrada salidaEntrada salida
Entrada salida
 
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

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

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

A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- ConstruccionA3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
manuelalejandro238
 
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
DavidHunucoAlbornoz
 
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdfLas Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
NicolasGramajo1
 
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaaEspecificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
ssuserebb7f71
 
01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas
ivan848686
 
Becas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdfBecas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdf
UOC Estudios de Informática, Multimedia y Telecomunicación
 
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptxDesbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
ValGS2
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
FRANCISCOJUSTOSIERRA
 
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
leonpool521
 
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptxSistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
RobertRamos84
 
NORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOL
NORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOLNORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOL
NORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOL
Pol Peña Quispe
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
CarlosAroeira1
 
Edafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden HistosolesEdafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden Histosoles
FacundoPortela1
 
Vehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebralVehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebral
everchanging2020
 
FISICA_Hidrostatica_uyhHidrodinamica.pdf
FISICA_Hidrostatica_uyhHidrodinamica.pdfFISICA_Hidrostatica_uyhHidrodinamica.pdf
FISICA_Hidrostatica_uyhHidrodinamica.pdf
JavierAlejosM
 
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docxPLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
Victor Manuel Rivera Guevara
 
Mapa de carreteras de Colombia 2022 INVIAS
Mapa de carreteras de Colombia 2022 INVIASMapa de carreteras de Colombia 2022 INVIAS
Mapa de carreteras de Colombia 2022 INVIAS
AlfonsoRosalesFonsec
 
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica químicaCiclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
ycalful01
 
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdfDialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
fernanroq11702
 
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
maitecuba2006
 

Último (20)

A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- ConstruccionA3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
 
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
 
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdfLas Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
 
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaaEspecificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas
 
Becas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdfBecas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdf
 
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptxDesbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
 
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
 
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptxSistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
 
NORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOL
NORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOLNORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOL
NORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOL
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
 
Edafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden HistosolesEdafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden Histosoles
 
Vehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebralVehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebral
 
FISICA_Hidrostatica_uyhHidrodinamica.pdf
FISICA_Hidrostatica_uyhHidrodinamica.pdfFISICA_Hidrostatica_uyhHidrodinamica.pdf
FISICA_Hidrostatica_uyhHidrodinamica.pdf
 
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docxPLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
 
Mapa de carreteras de Colombia 2022 INVIAS
Mapa de carreteras de Colombia 2022 INVIASMapa de carreteras de Colombia 2022 INVIAS
Mapa de carreteras de Colombia 2022 INVIAS
 
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica químicaCiclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
 
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdfDialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
 
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
 

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.