Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porAlfonso Araya del Río Modificado hace 7 años
1
MULTIPROCESADORES REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN UNIVERSIDAD VALLE DEL MOMBOY FACULTAD DE INGENIERÍA CARVAJAL - ESTADO TRUJILLO MULTIPROCESADORES Autores: Edgar Tarascio Oscar Silvera Emelin Olmos. Carvajal, 2016
2
MOTIVACIÓN La demanda de poder de computo impulsó inicialmente a procesadores más rápidos y pequeños La demanda de poder de computo impulsó inicialmente a procesadores más rápidos y pequeños PROCESOS PESADOS CON FORK (UNIX) El proceso inicial (padre) se clona El proceso producto (hijo) se ejecuta Al terminar el hijo le reporta al padre PROCESOS LIVIANOS CON HILOS (JAVA O C) Los hilos nacen del hilo principal Los hilos hijos ven datos del padre Si el padre termina, desaparecen sus hijos
3
PROCESOS PESADOS CON FORK (UNIX)
4
PROCESOS LIVIANOS CON HILOS (JAVA O C)
5
PARALELISMO REAL ... Una segunda solución es aprovechar la enorme capacidad del hardware para tener máquinas con múltiples procesadores … es decir, gran cantidad de CPU’s en un mismo computador o CPU’s relativamente próximos Múltiples procesadores en el mismo integrado o muy cercanos MULTINÚCLEO Y MULTIPROCESADOR Múltiples procesadores en una misma red local sin compartir RAM MULTICOMPUTADOR O CLUSTER Múltiples procesadores distribuidos en Internet Grid
6
MODELOS DE PARALELISMO
Límite de CUP´s / No acotado Tiempos Nano Segs Micro Segs Mili Segs SOP's Homogéneos Homogéneos Heterogéneos Heterogéneos Heterogéneos
7
LIMITACIONES DEL PARALELISMO
La capacidad de miniaturización, ley de Moore (fundador de INTEL) sólo se espera que se mantenga por una década o algo más ... Los tiempo de reloj son del orden de los Ghz y estamos cercanos a los Thz ... sin embargo ... miniaturizar y acelerar disipa demasiado calor : En un primer momento se logra mayores prestaciones con el paralelismo ...pero … la ley de Amdalh dice: La ganancia en tiempo, para máquinas paralelas, es cada vez menor a medida que se aumenta la cantidad de procesadores dado un número de procesos constante. El cuello de botella está básicamente en el bus interno de comunicación y en la memoria a compartir pues los procesos deben sincronizarse
8
AFORTUNADAMENTE PARA EL PARALELISMO APLICACIONES DEL PARALELISMO ...
Más reciente Gustafson y Barsis aseguran que la ley de Amdalh deja de ser válida cuando el tamaño del problema escala con el número de procesadores. Esto no ha podido aún se corroborado experimentalmente debido a limitaciones tecnológicos y logísticas APLICACIONES DEL PARALELISMO ... Predicción de clima Simulación de la economía mundial Resolución de problemas con inteligencia artificial ...
9
INTEGRADOS MULTINUCLEOS
La capacidad de miniaturización de transistores continúa y se está aprovechando para montar CPU´s dentro de la misma pastilla … Se ha logrado hasta 80 núcleos por integrado y pronto los cientos No difieren de las máquinas multiprocesadores basadas en bus o conmutadores y además pueden compartir más componentes, por ejemplo; el cache Se pueden programar con hilos y la sincronización depende del SO. PROBLEMAS ... Sin embargo un fallo de hardware puede afectar a todos los CPU´s Por otro lado la arquitectura ofrece más de lo que los programadores son capaces de hacer …
10
La solución es bloquear el bus ...
SOP´S EN MULTINUCLEOS Cada CPU con SOP independiente pero … no comparten procesos y los caches pueden tener datos incoherentes entre ellos Multiprocesadores maestro-esclavos donde el maestro ejecuta el SOP. El problema es que el maestro es un cuello de botella. Multiprocesadores simétricos (una copia del SOP en memoria). Sin embargo el SOP es una gran región crítica, habría que dividir el SOP en trozos independientes … el problema es escribir un SO así ... El manejo de regiones críticas con semáforos no funciona en términos generales pues dos CPU pueden tomar el semáforo al mismo tiempo y acceder simultáneamente a la región crítica La solución es bloquear el bus ...
11
HARDWARE DE MULTIPROCESADORES
Arquitectura de acceso uniforme a la memoria (UMA) Es inmanejable con muchos CPU´s (bus muy ocupado) aunque se solventa parcialmente usando memoria cache y memoria privada Arquitectura de acceso no uniforme a la memoria (NUMA) No todos los módulos tienen la misma velocidad de acceso pues la memoria remota es más lenta que la memoria local.
12
MULTICOMPUTADORAS (CLUSTERS)
Inicialmente un PC maestro con ratón, teclado y monitor. El resto de los PC con al menos una tarjeta de red de alta velocidad y RAM propia (sin periféricos de interacción). Se conjugan multinúcleos con los clúster ... Puede haber hasta una tarjeta de red para el usuario y otra para el kernel Los lenguajes de programación son particulares: MPI y PVM
13
SOFTWARE EN CLUSTERS ... El SOP debe proveer al usuario la sensación de interactuar con un único computador Deben disponer de un middleware para administrar los procesos Migración de procesos Balanceo de cargas Tolerancia a fallos Gestor de colas para administrar procesos vs recursos
14
USOS Y EJEMPLOS DE CLUSTERS
Alto rendimiento Alta disponibilidad Balanceo de carga Escalabilidad Beowulf (se contruye con máquinas en desuso) Berkeley NOW (105 SUN Ultra 107 con Myrinet) Cluster PS2 (Universidad de Illinois con cónsolas de Play Station 2) Cluster X (2200 procesadores Apple G5 con Infiniband y Giga Ethernet)
15
MULTICOMPUTADORAS USB
CLUSTER MIRANDA: 228 nodos en su mayoría multinúcleos. Dos tarjetas de red por cada nodo Infiniband para aplicaciones de usuario (MPI) Giga Ethernet para servicios CLUSTER ALMA MATER: 8 máquinas con procesadores dualCore y HP Unidas a través de Giga Ethernet MULTICOMPUTADORAS CLUSTER CIDI: 98 máquinas a dos procesadores (no multinúcleos) Conectados con Myrinet CLUSTER INGENIERÍA: Alrededor de 80 nodos Alta disponibilidad
16
MULTIPROCESADORES ESTILO VON NEUMANN
COMPUTADOR VON NEUMANN MEMORIA E/S PROCESADOR
17
MULTIPROCESADORES ESTILO VON NEUMANN
MUTIPROCESADOR VON NEUMANN MEMORIA E/S Pn P2 P1
18
OBJETIVOS DE UN MULTIPROCESADOR
Acelerar la ejecución de aplicaciones (orientados aspeed-up).- SUPERCOMPUTACION. Ejecutar más aplicaciones por unidad de tiempo (orientados al throughput).
19
… MODELOS DE ORGANIZACION Memoria Red de Conexión
Multiprocesadores con Memoria Compartida Memoria Red de Conexión … P1 P2 Pn
20
… MODELOS DE ORGANIZACION Memoria
Multiprocesadores con Memoria Compartida Memoria Bus Común … P1 P2 Pn Problema La red de interconexión representa un cuello de botella que impide que esta organización sea escalable.
21
… … MODELOS DE ORGANIZACION Red de Conexión
Multiprocesadores con Memoria Distribuida … M1 M2 Mn … P1 P2 Pn Red de Conexión La red de interconexión permite a cualquier procesador comunicarse con cualquiera de los procesadores del sistema. TÉRMINOS EQUIVALENTES Multiprocesador con Memoria Local Multiprocesador Débilmente Acoplado Multicomputador
22
MODELOS DE ORGANIZACION
Multiprocesadores con Memoria Distribuida M M M M P P P P La organización puede ser escalable en la medida en que los programas realicen comunicaciones locales.
23
CLASIFICACION DE MULTIPROCESADORES
ORGANIZACION Programación Variables Compartidas Paso de Mensajes SMP (Symmetric Multiprocessors) Combinación natural Poco escalable Fácil de programar ? Programación difícil DSM (Distributed Shared Memory) Programación fácil Escalable Implementación difícil Multicomputer Memoria Compartida Memoria Distribuida
24
¿POR QUÉ SISTEMAS MULTIPROCESADORES?
Está ampliamente aceptado que los sistemas multiprocesadores (en particular, los de memoria distribuida) representan uno de los caminos más razonables para seguir aumentando la potencia de cálculo de los computadores PROBLEMAS Y RETOS Hardware Buscar organizaciones del sistema que permitan al software obtener una fracción significativa de la velocidad máxima del sistema.
25
PROBLEMAS Y RETOS 2) Aplicaciones y Algoritmos
Identificar aplicaciones críticas que pueden beneficiarse del uso de los sistemas multiprocesadores. Encontrar algoritmos paralelos eficientes para resolver los núcleos computacionales más habituales. 3) Herramientas Desarrollar herramientas (modelos de programación, compiladores, depuradores, monitorizadores de rendimiento, entre otros) que faciliten el uso del sistema.
26
COMUNICACIÓN EN MULTIPROCESADORES VENTAJAS DE LA MEMORIA COMPARTIDA
a) Si la memoria es compartida: Si es centralizada; todos los accesos se hacen a través del bus, y tardan más o menos lo mismo. UMA (Uniform Memory Acces) VENTAJAS DE LA MEMORIA COMPARTIDA Esta más estudiada Sencillez de programación Poco recargo de comunicación, mejor aprovechamiento del ancho de banda en datos pequeños Posibilidad de usar caches (mejor tiempo de acceso y menor flujo de datos en la red)
27
VENTAJAS DE LA MEMORIA PRIVADA
b) Si la memoria es privada: Como los mapas de memoria son solo locales, la comunicación es por medio de paso de mensajes Si la memoria es privada: los accesos se realizan a la memoria local o a memoria remota, según el dato. Los accesos remotos tardan más que los locales VENTAJAS DE LA MEMORIA PRIVADA Sencillez del hardware b) La comunicación es explicita (no es transparente) se ve claro lo que cuesta tiempo y lo que no
28
ARQUITECTURAS CENTRALIZADAS DE MEMORIA COMPARTIDA
Son máquinas que constan de varios procesadores (típicamente un número pequeño) b) Como son pocos, la comunicación a través de un bus es económica y eficiente c) Cada procesador puede tener una memoria cache para reducir la cantidad de datos que viajan por el bus d) La comunicación entre procesadores es a través de variables compartidas y zonas de memoria comunes e) Coherencia de cache en memoria centralizada
29
EL PROBLEMA DE LA COHERENCIA
Los procesadores del sistema guardan en caches los datos con los que trabajan LOS DATOS SE DIVIDEN EN: a) Privados; solo los necesita un procesador b) Compartidos; los necesitan varios procesadores. Los datos compartidos son, por lo tanto, utilizados por varios procesadores c) El problema que surge cuando un procesador modifica datos que otros tienen en sus caches
30
EJEMPLO: El dato X (valor inicial 0) es compartido
El procesador A carga el dato X (0) en su cache El procesador B carga el dato X (0) en su cache El procesador A modifica el dato X (toma el valor 1) El procesador B lee el dato X (0, valor que había cargado en su cache) El problema de utilizar caches es que los datos pueden no ser coherentes (tener el mismo valor en todas las caches) En un sistema de memoria centralizada, se suele usar la técnica de “snooping” o (fisgonear). Las caches observan las transmisiones que se realizan en el bus, para saber cuándo alguna de las otras cargue una línea que tienen ellas En el caso de que una de las caches que tiene una copia de una línea compartida la modifique, es necesario que el resto se entere (porque sus versiones se han quedado anticuadas)
31
EXISTEN DOS MANERAS DE NOTIFICAR LAS MODIFICACIONES EN LAS LÍNEAS
Protocolo de invalidación por escritura (write invalidete protocol) b) Cuando un procesador realiza una escritura en una línea, esta acción invalida las copias de esa línea en la otra caches c)Protocolo de actualización en escritura (write update protocol o write broadcast protocol) d) Cuando un procesador realiza una escritura en una línea, envía la nueva versión a las otras caches
32
DIFERENCIA ENTRE AMBAS OPCIONES
a) Modificaciones sucesivas de un dato provocan el correspondiente envió de líneas a través del bus si se usa el protocolo de actualización. Si no hay lecturas entre medias, el protocolo de invalidación no supone tráfico adicional b) Modificaciones de varios datos en una misma línea suponen otros tantos envíos con actualización, por una única recarga por invalidación c) La invalidación de una línea puede provocar retardos, ya que el fallo de lectura en la cache destino se detecta (por la invalidación) en el momento de realizar el acceso. Con actualización no se produce el fallo
33
COHERENCIA DE CACHE EN MEMORIA DISTRIBUIDA
a) En una máquina de memoria distribuida un nodo no puede observar todas las transferencias entre los restantes nodos (en general, la topología de la red no se lo va a permitir) b) Por ello, si la memoria está distribuida se suele utilizar el protocolo de directorios. En este protocolo, existe una estructura de datos, el directorio, que contiene información sobre el estado de cada bloque. Esta estructura también puede estar distribuida
34
COHERENCIA DE CACHE EN MEMORIA DISTRIBUIDA
El protocolo de directorios necesita que de cada bloque de memoria se tenga la siguiente información: a) Estado del bloque; si esta sin usar, usado por un único procesador, compartido entre varios, entre otros b) Procesador que tienen el bloque en su cache; para poderles avisar en caso de modificaciones o invalidaciones c) Como el tamaño del directorio puede llegar a ser muy grande, se suele encontrar distribuidos. Cada módulo de memoria tiene la información de los bloques que están ubicados en él d) Según la cantidad de información que se almacene en el directorio, existen tres tipos de protocolos de directorios: completos, limitados y encadenados
35
PROTOCOLO DE DIRECTORIOS COMPLETOS
En este protocolo, cada módulo de memoria tiene el directorio de los bloques que contiene Para cada bloque, la entrada del directorio contiene: a) Un bit por cada procesador en el sistema b) Un bit de “sucio”, para escrituras Además, las caches tienen 2 bits por bloque: Uno para indicar si el bloque es válido. b) Otro para indicar si se puede escribir en él.
36
PROTOCOLO DE DIRECTORIOS COMPLETOS
a) Cuando un procesador pide una copia del bloque, se le envía y se activa a su bit correspondiente b) Cuando un procesador pide una escritura al bloque, se borran los bits de los otros procesadores (y se les avisa) y se activa el bit de sucio c) El bit de sucio “da permiso” o no para realizar una escritura d) Con el bit de sucio activado, solo uno de los bits de los procesadores puede estar activado
37
PROTOCOLOS DE DIRECTORIOS LIMITADOS
a) De nuevo, cada módulo tiene el directorio de sus bloques b) Pero ahora cada entrada no tiene un bit por cada procesador; solo pueden tener una copia de cada bloque un número limitado (p) de procesadores c) Para ello, cada entrada tiene para «p» identificadores d) Si llega una petición de lectura y todos los espacios están ocupados, se elimina uno (y se avisa al procesador). Es un mecanismo parecido al de una cache asociativa por conjuntos
38
PROTOCOLOS DE DIRECTORIOS ENCADENADOS
a) En este esquema, la lista de los procesadores que tienen una copia de un bloque está distribuida entre las caches b) El módulo de memoria que posee el bloque tiene los datos y el inicio de la lista de punteros a procesadores c) Cada procesador que pide una copia del bloque recibe el puntero a la lista (en su estado actual) d) El módulo de memoria se queda con la dirección del procesador que pide el bloque (que es el nuevo inicio de la lista)
39
COMPARACIÓN DE LOS TRES PROTOCOLOS DE DIRECTORIOS
a) El protocolo de directorio completo tiene toda la información centralizada, lo que hace eficiente su gestión b) Añadir o eliminar procesadores a la lista es activar o desactivar un bit c) Pero requiere espacio para todos los procesadores en cada una de las entradas (y la mayoría de los bits va a estar a «0» casi siempre) d) El protocolo limitado también tiene la información centralizada
40
COMPARACIÓN DE LOS TRES PROTOCOLOS DE DIRECTORIOS
e) Añadir y eliminar procesadores a la lista es sencillo f) Puede haber dificultades si el número de espacios para identificadores es pequeño g) El protocolo de directorios encadenados tiene la información distribuida h) El espacio que ocupa la lista es proporcional al número de procesadores que tiene una copia del bloque i) Añadir y eliminar procesadores es un proceso largo
41
GRACIAS POR SU ATENCION
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.