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