Está en la página 1de 7

PARALELISMO VIA CPUS MULTIHILOS Y MULTINUCLEOS

Introduccin
Son tecnologas que permiten mejorar el rendimiento de las CPUs.
Ambos diseos soportan multiprogramacin (multitasking) va programas paralelos corriendo
aplicaciones concurrentemente.
Primero fueron diseados los CPUs multihilos que utilizan un contexto a nivel de hardware
alternando entre hilos, para reducir el tiempo de los recursos.
Poco despus se disearon CPUs que integraban ms de un ncleo en un nico chip. Hoy en da
tenemos procesadores de hasta 8 ncleos.
Espectro de diseo
Tanto los CPUs multihilos, como los multincleo, explotan concurrencia ejecutando mltiples
hilos, aunque sus objetivos de diseo son distintos.
Los CPUs multihilos soportan hilos ejecutados concurrentemente, pero lo hacen a nivel de
instruccin, apuntando a una mejor utilizacin de la CPU, planteando instrucciones desde mltiples
hilos.
Los CPUs multincleo alcanzan la concurrencia de hilos a un nivel ms alto concentrndose
menos en la utilizacin por ncleo y apuntando a la escalabilidad va replicacin de ncleos.
Ncleos Multihilos
Los ncleos multihilo ejecutan de manera concurrente mltiples hilos de procesamiento, de uno
o varios programas. Cada hilo sobre el chip necesita su nica componente de estado como instruction
pointer y registros de control. El nmero de hilos sobre el chip determina el nmero de replicaciones
necesarias de componentes de estado y el mximo grado de concurrencia soportado por hardware y
saturacin por unidades de ejecucin. Mas hilos tambin mejoran las posibilidades de esconder
latencias de memoria de acceso (memory acces latency) o stall por malas predicciones de rama. El
crecimiento del costo es aproximadamente lineal hasta al menos 8 hilos, pero es claramente superlineal
de ah en adelante.
El nmero de hilos sobre el chip por ncleo tpicamente soportado por un procesador comercial
tiene un rango desde 2 en Intel Xeon hasta 8 en Suns UltraSPARC T2.
La mayora de los cpus emplean el ltimo enfoque llamado Simultaneous Multithreading
(SMT) y que Intel lo llama Hyperthreading Technology (HTT). El SMT ejecuta instrucciones de varios
hilos distintos en un mismo ciclo de reloj, usando un nico procesador.
CPUs Multinucleo
Los ncleos Multihilos tienen una limitada escalabilidad, atado por el punto de saturacin de
las unidades de ejecucin y el costo de hilos adicionales. En cambio los CPUs multincleos prometen
mas potencia por escalabilidad. Los primeros chips multicore fueron construidos como una simple
unin de diseos de CPUs de un solo ncleo ya existentes. Estos chips retuvieron mucha de la
arquitectura de su precedente, replicando solo el control y unidades de ejecucin y compartiendo las

unidades faltando por chip: cache, controlador de memoria, unidades de procesamiento secundarias
como unidades de punto flotante (FPUS, componentes de enfriamiento y pines de salida del micro.
Sin embargo, tienen una desventaja en relacin con el intercambio de contencin de los
recursos compartidos.
Las tendencias de desarrollo indican un movimiento hacia la replicacion adicional sobre los
componentes de chips, como los controladores de memoria y cache, que pueden ser privadas o
compartidas.

Cache compartido vs. Cache privado


CACHE: es un conjunto de datos duplicados de otros originales, con la propiedad de que los
datos originales son costosos de acceder, normalmente en tiempo, respecto a la copia en cach.
La primera vez que se accede al dato, se hace una copia en el cach y los accesos siguientes al
dato se hacen sobre esta copia. Con lo que se obtiene menor tiempo de acceso medio al dato.
El rasgo mas importante para mejorar la performance de las CPUS es la concurrencia. El
segundo rasgo mas importante es el cach.
Debido a que las velocidades de los micros son muy superiores a los tiempos de acceso a una
memoria, se crea una brecha. Para mitigar esto, se explota el espacio disponible en chip para poner
mas memorias de cach.
Algunos CPUS optan por caminos totalmente diferentes, poniendo nada de cache y
escondiendo las latencias de memorias mediante multithreading o usando memorias de
direccionamiento de alta velocidad.
La mayora de los CPUS multinucleos utilizan un cache L1 privado por ncleo para reducir la
contencin para este nivel de cache critico.
CONTENCION de un recurso es la competencia de usuarios por un recurso del sistema al
mismo tiempo.
Entonces, por cada ncleo, un cache L1 privado. Si el ncleo tiene multihilo, el cache L1 se
comparte entre los hilos del ncleo.
Adems, tienen un cache L2 que puede ser privado y dedicado a cada ncleo o compartido
entre varios ncleos.
El cache L3 histricamente estuvo fuera del chip y compartido pero en la actualidad algunos
CPUS lo ponen sobre el chip.
Si el cache compartido o privado es mas beneficioso depende de la utilizacin del espacio del
chip, y las caractersticas de la aplicacin.
Caches compartidos son importantes si los hilos de la misma aplicacin se ejecutan en
mltiples ncleos y comparten una cantidad significante de informacin. En estos casos es ms
econmico, evita mltiples copias de la informacin y transferencias de cache a cache.
La desventaja es que puede imponer altas demandas de interconexin.
Si los hilos no comparten mucha informacin pueden COMPETIR por el cache. Esto hace
difcil predecir el servicio a cada hilo ya que depende de patrones de memoria, carga total del sistema,
etc.
Los caches privados son una solucin fcil para aislar el desempeo y garantizar un servicio
predecible.

Hay una opcin ms flexible: el diseo hibrido. Diferentes nmeros de bancos de cache que
pueden ser COMPARTIDOS o PRIVADOS, dependiendo de las necesidades de los hilos corriendo en
el momento en el sistema. Este diseo soporta hilos que comparten informacin y que no.

Recursos compartidos vs. Recursos privados


A diferencia de los diseos multinucleos que tienden a replicar la mayor cantidad de recursos,
COMPARTIR RECURSOS es la opcin predominante en el multithreading de hardware.
De todos modos, algn nivel de replicacin y particin es necesario. Replicacin es esencial
para unidades de ejecucin que puedan ser sujetas a altas contenciones. Particin esttica o dinmica
de recursos para garantizar a cada hilo acceso exclusivo a su parte. Es una solucin para proveer
progreso justo e independiente a la ejecucin de cada hilo.
Compartir permite ms flexibilidad en el uso de recursos.
Tolerancia a fallas
Fallas:

Ruido Elctrico.
Defectos menores permanentes en el silicio (Fallas en componentes
individuales) que se expanden provocando la falla del chip entero.

Soluciones:
Particionamiento de unidades replicadas y separables.
Mltiples interconexiones dentro del chip.
Controladores de memoria.
Mltiples bancos de cache.
Esto lleva a soportar diferentes grados de aislacin contra comparticin y separacin de
componentes que funcionan de los que no funcionan.
Estas soluciones incrementan mucho la tolerancia a fallos.
Interconexiones
Otro rasgo importante que impacta en el performance de los chips multincleos es la
comunicacin entre los diferentes componentes sobre el chip: ncleos, cache, y -si estn integradoscontroladores de memoria y controladores de red. Los primeros diseos usaban un bus como en los
sistemas tradiciones de mltiples CPU. La tendencia ahora cambio a una Crossbar u otros mecanismos
avanzados para reducir latencias y contencin. Por ejemplo, los CPUS de AMD emplean una Crossbar,
y el TileraTILE64 implementa Non-blocking multilink mesh.
La interconexin se puede volver cara. Una Crossbar de 8x8 sobre el chip puede consumir tanta
rea como cinco ncleos y tanta energa como dos ncleos.
En caches privados en el chip, el intercambio de datos entre hilos corriendo en diferentes
ncleos necesit usar la conexin fuera del chip. Caches compartidos sobre el chip naturalmente
soportan intercambio de informacin entre hilos corriendo en diferentes ncleos. As, introduciendo un

nivel de cache compartido en el chip (comnmente L2, o en las tendencias mas recientes L3) ayudaron
a reducir trafico fuera del chip.
A medida que el procesamiento de datos aumenta con mas hilos paralelos, demanda adems un
incremento en la comunicacin fuera del chip para: acceso a memoria, entrada/salido o comunicacin
CPU-a-CPU. Para direccionar estos requerimientos, la comunicacin fuera del chip esta tendiendo de
basada-en-bus a basada-en-paquetes, interconexiones punto-a-punto. AMD implemento este
concepto por primera vez como HyperTransport, seguido por las interconexiones de Intel's QuickPath.
Diseos especializados
Algunos procesadores multinucleos estn hechos para cargas de trabajo muy especficas. La
serie Blue Vega de aplicacin de cmputo usa chips multinucleos con hasta 48 ncleos, cada uno
incluyendo unidades especiales de ejecucin diseadas para incrementar el desempeo de operaciones
Java. El Tilera TILE64 para procesamiento de informacin usa 64 ncleos simples de bajo consumo,
su capacidad de dataflow lo hace una buena eleccin para sistemas embebidos.
Los GPUS (graphic processing units) representan el ejemplo extremo de diseo multinucleo
especializado. Los GPUS modernos tienen 10 o mas ncleos, cada uno optimizado para procesamiento
de data SIMD (Single Instruction-Multiple Data), hecho va cientos o miles de hilos simplificados por
ncleo. Esto los hace tiles para complicados procesos numricos como rendering de video, estudios
de gentica, modelado cientfico o criptografa.
Complejidad de ncleos vs. Numero de ncleos

Optimizacin
Tradicional

Incrementar velocidad de
Ejecucin serie de un nico hilo

Ejecucin fuera de orden


Relojes ms rpidos
Prediccin dinmica de lazos

La disponibilidad del paralelismo a nivel de hilo e instruccin es la decisin ms importante


para simplificar diseos tradicionales de CPUs y permitir mayor parte del circuito a la concurrencia.
Otros chips incrementan la complejidad para maximizar el desempeo por ncleo.
Los CPUS que se concentran en desempeo por hilo generalmente tienen relojes de ms alta
frecuencia que aquellos que se concentran en soporte para muchos hilos.
El uso del espacio extra del chip para mejorar el desempeo de cada hilo produce ganancias no
lineales (El desempeo se duplica cuando la complejidad se cuadruplica).
Desempeo
Por aplicacin

Los programas secuenciales no pueden explotar la concurrencia del chip.


En programas paralelos, algunas partes del algoritmo se deben correr
secuencialmente.

Conclusiones:
Mayor nmero de ncleos simples es preferible mientras la parte secuencial de la
aplicacin sea pequea, sino son ms beneficiosos los ncleos ms complejos.
Debido a la demanda de espacio en el chip para interconexiones entre gran numero de
ncleos y a la escalabilidad limitada de aplicaciones puede resultar ms beneficioso
utilizar ncleos ms complejos.
Las aplicaciones que pueden explotar mucho del pico terico de desempeo (intensivas
en punto flotante, alto paralelismo de instrucciones en aplicaciones numricas) pueden
tener mejores resultados si se usan ncleos ms complejos.

Una mejora para el desempeo por hilo seria colocar ms recursos del chip dinmicamente,
como ejecucin especulativa.
Esto beneficia aplicaciones con mucha dependencia de datos y errores de cache.
Una implementacin ya aplicada en algunos CPUs multihilos coloca recursos particionados a
un hilo si se corre en modo nica Tarea.
La investigacin indica que los procesadores que poseen muchos ncleos simples y unos pocos
ncleos de alto rendimiento pueden proveer el mayor poder de procesamiento para un dado espacio de
chip y presupuesto energtico. Pero esto tiene como desventaja que dichos procesadores no se obtienen
comercialmente, y adems, son difciles de disear y programar.
Costo y consumo de energa
La performance no domina ms los objetivos de diseo: Los costos de fabricacin de chips y la
tolerancia a falla, consumo de energa y disipacin de calor se volvieron consideraciones crticas.
A medida que los ncleos se simplifican, el consumo de energa disminuye linealmente, lo cual
es una gran ventaja en CPUS multincleos. Una mejor eficiencia de energa y una generacin de calor
reducida permiten integraciones de ms ncleos en un nico CPU, con el cambio (tradeoff) que el
presupuesto de energa para las interconexiones incrementa con el nmero de ncleos. El uso de
energa afecta la eleccin entre diseos multincleos y diseos de un ncleo Multihilo. Los primeros
son eficientes con respecto a la energa, pero diseos hbridos con mltiples ncleos SMT logran casi
el mismo performance por watt como diseos puro CMP (Chip-level MultiProcessing).
A pesar de que el CPU consume el 25 a 45% de la energa que consume un servidor, los costos
proyectados de electricidad para un trmino de cuatros aos se acercan al precio del sistema entero.
En el caso de maquinas de alto-performance de computo, construyendo soluciones de
enfriamiento personalizadas puede costar tanto como la computadora misma. Adems, la reduccin de
consumo de energa permite mayor densidad de racks en habitaciones de servidores.

El desafo del software


En el futuro, la tendencia dice que habr CPUS de cada vez ms hilos y ms ncleos. Sin
embargo, la concurrencia de hardware solo puede ser explotada con mltiples programas seriales o con
aplicaciones en paralelos.
Hay limites para mejorar el desempeo por hilo ya que las instrucciones seriales deben
ejecutarse una tras otra, por lo tanto el cdigo serial debe ser cuidadosamente optimizado.
La mayor parte de los softwares no esta preparado para la concurrencia. Las posibilidades para
extraer paralelismo automticamente estn limitadas y el paralelismo debe ser expresado
explcitamente.
Herb Sutter considera que cambiar hacia programacin paralela sea la prxima revolucin
despus de la introduccin de programacin orientada a objetos.
Escribiendo correcta y eficientemente programas paralelos es un gran desafo que requiere
mejores herramientas y modelos de programacin ms abstractos para hacer la programacin de hilos
ms segura y conveniente.
Incluso si la informacin puede ser compartida, muchos programadores usan exclusivamente
procesos sin que importen los beneficios de usar softwares multithreaded en memoria compartida de
nodos simtricos multiprocesales.
Los clusters HPC con nodos de muchos ncleos pueden requerir el uso de programacin de
hilos/modelos de procesos hbridos para mayor eficiencia y escalabilidad.
Las aplicaciones HPC van a necesitar mostrar un grado mayor de paralelismo que antes para explotar
la concurrencia de hardware ofrecidos por los CPUS multinucleos.
Un factor limitante es que el desempeo de ncleos adicionales es menor que el de CPUS
adicionales, excepto cuando los hilos comparten informacin.
Sobre los sistemas operativos: los organizadores (schedulers) de los CPUS tradicionales
necesitaron modificaciones para acomodar la heterogeneidad y diferencias de desempeo en la
jerarqua de CPUS, ncleos e hilos de hardware.
Schedulin con el objetivo de minimizar la contencin de recursos es importante si la maquina
esta con carga total.
Direccin propuesta para CPUs multihilos y multinucleos.
Segn la ley de Moore, los diseos de chips van a crecer a grandes nmeros de ncleos e hilos
de hardware. Sin embargo las comunicaciones fuera del chip y los lmites de pines ponen restricciones
significantes en la escalabilidad y programabilidad de los chips, ya que impactan en la tasa de
transferencia de datos desde y hacia los ncleos.
Para computacin comn se opta por diseos hbridos. Un bajo n de hilos sobre un chip puede
aadirse por relativamente poca circuitera adicional y pueden incrementar significativamente el
Througput. As el espacio del chip es generalmente mejor explotado para ms ncleos, cache u otros
componentes.
Con respecto a los lmites de software, pocas aplicaciones pueden usar muy alta concurrencia
para incrementos en el performance.
El xito de diseos de multinucleos depende altamente de que existan las herramientas de
programacin correcta, libreras y modelos.

Los cpus actuales en el mercado, ofrecen diferentes opciones de acuerdo a su diseo y uso del
espacio del chip.
Consideraciones de diseo NO solo incluyen el nmero de ncleos e hilos sino tambin la
complejidad de los ncleos, interconexiones, tamaos de cache y el grado en que los componentes se
comparten.
Ya que las decisiones de diseo incluyen cambios (algo por algo, no puedo mejorar algo sin
descuidar otra cosa) son necesarios diseos que se concentren en la relacin funcional entre las partes
y el todo, llevados por las aplicaciones de destino y criterios adicionales de optimizacin como la
consumicin de energa, la disipacin de calor, tolerancia a falla y costo
NOTA: Se llama throughput al volumen de informacin que fluye a travs de un sistema.

También podría gustarte