0% encontró este documento útil (0 votos)
26 vistas15 páginas

Multiprocesamiento y Paralelismo en Sistemas

Cargado por

Diego Mondragón
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
26 vistas15 páginas

Multiprocesamiento y Paralelismo en Sistemas

Cargado por

Diego Mondragón
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Múltiples núcleos en un mismo

procesador

Se define como un sistema


informático que contiene dos o más Se pueden tener distintas Múltiples CPU en la misma placa
unidades de procesamiento que configuraciones base
trabajan sobre una memoria común

Nivel hardware: Múltiples unidades


de procesamiento ejecutan Sistemas dsitribuidos
instrucciones simultáneamente
Paralelismo: capacidad de realizar
multiples operaciones
Multiprocesamiento

simultáneamente
Nivel software: Las tareas se dividen
en subprocesos o procesos Identificador del hilo
independientes

Contexto de ejecución
Secuencia más pequeña de
instrucciones dentro de un proceso
a las cuales el sistema operativo
puede programar para su ejecución
Hilo Estado actual de ejecución

Componentes

Registros de CPU

Single Instruction

Puntero de instrucción

Single Data
Clasificación de Flynn: Número de
instrucciones (SI/MI) y número de Pila de llamadas
datos (SD/MD)
Multiple Instruction

Multiple Data
Sistemas de procesamiento paralelo

Procesamiento paralelo Ley de Amdahl Pseudoparalelismo

Se refiere a una forma de


“Un programa de computadora nunca
Consiste en dividir una tarea procesamiento en computación donde
correrá más rápido que la suma de sus
informática en subtareas que pueden tareas o procesos que parecen estar
partes que no corren en paralelo
ser realizadas al mismo tiempo por ejecutándose simultáneamente en
(secuenciales), sin importar el número
diferentes procesadores realidad se están ejecutando uno tras
de procesadores”
otro en rápidas sucesiones

Es casi imposible lograr una Es especialmente útil en sistemas con


aceleración perfecta, porque la mayoría un solo procesador o en situaciones
de los algoritmos tienen algún donde el hardware no admite verdadero
componente secuencial paralelismo
Tipos de paralelismo

Consiste en cambiar el orden de las instrucciones


de un programa y juntarlas en grupos para
Paralelización por bit posteriormente ser procesadas y ejecutadas de
forma paralela en distintas etapas (pipeline) sin
alterar el resultado final del programa

Cada procesador realiza la misma tarea o


Paralelización de datos secuencia de operaciones sobre un subconjunto
independiente de datos

Un programa entrega tareas al procesador que


Paralelización de tareas son totalmente distintas e independientes unas de
otras para que se realicen en paralelo
Se tiene más de una unidad de
procesamiento, lo que llamamos núcleos o
cores

Procesador multinúcleo

Puede ejecutar tantas instrucciones de forma


paralela como núcleos tenga

Se trata de tener una placa o PCB en donde


Multiprocesadores simétricos dos o más procesadores idénticos entre ellos
trabajan con recursos compartidos
Tipos de procesadores en

Consiste en una agrupación de ordenadores a


priori independientes que trabajan en
Procesadores en clúster colaboración. Esto se realiza gracias a un
enlace entre ellos que normalmente será
mediante una red LAN de alta velocidad
paralelo

Un solo equipo con multitud de procesadores


interconectados en red

Procesamiento paralelo masivo

La interconexión es más especializada que en


un clúster y no de consumo general

Se trata de realizar una computación en


paralelo, pero con ordenadores que se
comunican a través de Internet, de forma
remota y de distinta naturaleza y prestaciones

Procesamiento en paralelo distribuido

El gran problema de este método es que la


red de Internet cuenta con mucha latencia
para el intercambio de datos

Es computación por tarjetas gráficas en


paralelo. Es un método ideal de realizar
GPGPU
simulaciones y cálculos científicos muy
complejos
Sistemas de procesamiento en
paralelo

Condiciones de carrera Fork/Join

Nos permite usar todo el poder


Es la representación del
que hay en nuestras
acceso de dos o más procesos
computadoras utilizando todos
a un recurso compartido sin
los procesadores disponibles
control
en el momento

Puede ocurrir una condición de


carrera si se reciben Divide tareas en subtareas y
comandos para leer y escribir las ejecuta paralelamente con
una gran cantidad de datos en el fin de distribuir el trabajo
casi el mismo instante

Las condiciones de carrera se


pueden evitar mediante la
serialización de la memoria o
el acceso al almacenamiento

Para evitar que se desarrolle


tal condición de carrera, se
debe diseñar un esquema de
prioridad
Hardware multihilo

Multihilo Núcleo Direccionamiento Gestión de direcciones

Es una técnica de programación Proceso de especificar la


Físico: Es una unidad de Coordinación de acceso a
que permite que un programa ubicación de datos o
procesamiento independiente direcciones de memoria entre Técnicas
ejecute múltiples tareas instrucciones de memoria en una
completa dentro de un procesador múltiples hilos
simultáneamente computadora

Virtual: Es una unidad de


procesamiento lógica que se crea
Direccionamiento de memoria y
a partir de un núcleo físico. Espacio de direcciones por hilo
de dispositivos de entrada y salida
Comparte recursos físicos con su
núcleo correspondiente

Memoria compartida

Control de concurrencia
Sistemas
multiprocesador y
multinúcleo

Multiprocesador Multinúcleo

Consiste en tener Implica tener múltiples


múltiples unidades de núcleos de
procesamiento en una procesamiento dentro de
única máquina un procesador físico

Conexión por buses


Conexión por bus o redes
dentro del chip

Lento debido a la
Rápido y eficiente
separación física

Más costoso por más Menos costoso por


componentes no componentes
compartidos compartidos

Mucha escalabilidad Poca escalabilidad

Mayor consumo Menor consumo


energético energético

Peor paralelísmo y riesgo


Mejor paralelísmo
de cuellos de botella
Tecnologías
multihilo

Simultaneous
Superthreading Hyperthreading
Multithreading

2 o más hilos 2 o más hilos


2 hilos lógicos
lógicos por lógicos por
por núcleo
núcleo núcleo

1 núcleo lógico 2 núcelos 2 o más núcleos


al SO lógicos al SO lógicos al SO

Común en
Poco común Común en Intel Ryzen y algunos
Intel

Usado en viejos Usado en core Usado en Ryzen


Intel y otros i3/i5/i7/i9 y core i7/i9
Unidades de procesamiento independientes
dentro de la unidad central de procesamiento

Gestión de proceso, gestión de memoria,


Funciones gestión de dispositivos, gestión del sistema
de archivos, networking
Núcleos

Se refiere a la velocidad a la que un reloj


interno de un nucleo oscila, generando
pulsos eléctricos que sincronizan las
operaciones dentro del chip

Frecuencia de reloj

Frecuencia de reloj más alta significa más


operaciones en un período de tiempo

Hace referencia a un procesador que tiene


Procesador multinúcleo más de un núcleo, los que funcionan como
múltiples procesadores

Tecnologías que permiten que los


procesadores aumenten dinámicamente su
Turbo boost frecuencia de reloj por encima de la
frecuencia base en determinadas
circunstancias
Organización de los
procesadores
multinúcleo

Caché L2 Caché L3
Caché L1 dedicada Caché L2 dedicada
compartida compartida

La única caché en No se cuenta con Menor latencia en el Una caché L3


el chip es de nivel 1 caché compartida acceso compartido compartida

Cada núcleo tiene Suficiente espacio Menor consumo Cachés dedicadas


su propia caché L1 para implementar energético y de L1 y L2 para cada
dedicada caché L2 espacio núcleo

Se divide en caché
de instrucciones y
de datos
Tipos de núcleos

P-Core E-Core LP-E Core

Ofrecen alto Optimizados para


rendimiento en tareas bajo consumo de Conocido como Low
de gran potencia de enrgía y producir Power
procesamiento menos calor

Velocidades de reloj Ideal para tareas Núcleo de extra bajo


altas básicas consumo

Se activa cuando el
dispositivo está sin
hacer nada

Apartados de los
núcleos principales
en un área llamada
Power Island
Clasificación de multiprocesadores

Uniform Memory Access (UMA) Nonuniform Memory Access (NUMA) Caché Only Memory Access

Los accesos a memoria pueden tener En esta arquitectura la memoria local


En este tipo de arquitectura se tiene tiempos distintos. La memoria sigue a cada procesador se convierte en
una memoria compartida centralizada siendo compartida, pero los módulos memorias caché. Los datos pueden
Cache-coherence NUMA (CCNUMA)
y todos los accesos a memoria tardan de memoria están distribuidos entre migrar y se pueden replicar en
el mismo tiempo los distintos núcleos para reducir la diferentes memorias pero no pueden
contención de acceso a memoria ser almacenados permanente

Arquitectura NUMA que cuenta con


caché que ayuda a reducir la
contención de memoria
Multiprocesadores
conectados por un solo
bus

En este sistema, todos lo


núcleos comparten un
solo bus para la
transferencia de datos

Ventajas Desventaja

Es la forma más facil de


conectar los núcleos con Poca escalabilidad
la memoria

Si el número de núcleos
Todos los núcleos están conectados es muy
conectados de forma elevado, la contención
directa con la memoria del acceso a memoria
puede ser significativa
Mantener la coherencia

La incorporación de memorias
caché a las unidades de
procesamiento implica un
problema de coherencia de
datos

Snoopy Directorio

Los bits de estado del bloque


Los bits de estado se
de memoria están replicados
encuentran únicamente en un
en las cachés que contienen
sitio llamado directorio
una copia del dato

La memoria compartida tiene


un hardware que guarda la
Cada controlador de caché
información de los núcleos que
tiene un hardware que puede
disponen de una copia de cierto
leer lo que pasa por el bus
bloque de memoria en sus
cachés

De esta forma los controladores De esta manera se pueden


pueden leer si una petición de enviar mensajes de
acceso que se realiza sobre el actualización a aquellos
bus afecta a alguna de sus núcleos que cuentan con una
copias copia del dato
Multiprocesadores
conectados por una red

Los procesadores se
comunican entre sí utilizando
una red de interconexión, en
lugar de un bus compartido

Red de malla Red de anillo Red de árbol

Los nodos están organizados


Cada nodo está conectado a Tiene una jerarquía clara con
en una estructura que forma
exactamente otros dos un nodo raíz en la cima y
una cuadrícula
nodos, formando un circuito otros nodos que se ramifican
bidimensional o
cerrado como las ramas de un árbol
tridimensional

Simplicidad de Diseño: Es Jerarquía y Organización:


Alto Rendimiento:
más simple y menos costosa Facilita la gestión y el
Proporciona múltiples
de implementar en mantenimiento del sistema
caminos desde cualquier
comparación con otras debido a su estructura
origen a cualquier destino
topologías más complejas jerárquica clara

Escalabilidad Controlada: La
Determinismo: El tiempo
Escalabilidad: Se escala bien escalabilidad es posible,
para que un mensaje dé la
ya que se pueden agregar pero añadir más nodos
vuelta completa al anillo es
más nodos fácilmente puede requerir una
constante
planificación cuidadosa

Vulnerabilidad: Si el nodo raíz


Fiabilidad: Si un enlace falla, Punto Único de Falla: Si un
o un nodo intermedio falla,
el tráfico puede ser redirigido enlace se rompe, todo el
las secciones del árbol
fácilmente a través de otros sistema puede dejar de
pueden quedar aisladas del
caminos disponibles funcionar
resto de la red

También podría gustarte