Вы находитесь на странице: 1из 30

Universidad Nacional de Ingeniería

Facultad de Ciencias

Arquitectura de computadores

Prof.: Lic. César Martín Cruz S.


ccruz@uni.edu.pe

2015 – I
Introducción
 Objetivo: Conectar múltiples computadoras para obtener un
rendimiento más alto.
 Multiprocesadores
 Escalabilidad, disponibilidad, eficiencia de energía.
 Programa de procesamiento paralelo
 Se ejecuta un único programa sobre múltiples procesadores.

 Microprocesadores multinúcleos
 Microprocesador que contiene varios procesadores (núcleos)
en el mismo circuito integrado.
 Clúster, es un conjunto de computadores conectados con una
red de área local(LAN) que opera como un único
multiprocesador.
Lic. Martín Cruz Arquitectura de computadores - CC212
1
Hadware y Software
 Hardware
 Serie: Por ejemplo, Pentium 4
 Paralelo: Por ejemplo, quad-core Xeon E5345
 Software
 Secuencial: Por ejemplo, multiplicación de matrices en Matlab
 Concurrente: Por ejemplo, sistema operativo Windows Vista
 Software secuencial/concurrente puede correr sobre hardware
serie/paralelo
 Desafío: hacer un uso efectivo de hardware en paralelo

Lic. Martín Cruz Arquitectura de computadores - CC212


2
Programación Paralela
• La dificultad del paralelismo no está en el hardware. El
software paralelo es el problema
• Se necesita obtener una mejora de rendimiento significativo
en el software
• De otra manera, sólo se utiliza un monoprocesador más
rápido desde que es más fácil!
• Dificultades
• Particionamiento
• Coordinación (tiempo de sincronización )
• Sobrecarga de las comunicaciones entre colaboradores

Lic. Martín Cruz Arquitectura de computadores - CC212


3
Ley de Amdahl
 Evalúa como cambia el rendimiento al mejorar una parte de la
computadora.
 Define el speedup (aceleración) que se puede alcanzar al usar
cierta mejora.

Tiempo de ejecución sin la mejora


Speedup 
Tiempo de ejecución con la mejora

 El speedup global es:


Tiempo de ejecución original
Speedupglobal 
Tiempo de ejecución mejora
Lic. Martín Cruz Arquitectura de computadores - CC212
4
Ley de Amdahl
Supongamos que la mejora acelera una fracción
“FracciónMejora” (FracciónMejora <1) de la tarea por un factor
SpeedupMejora (SpeedupMejora>1) y el resto de la tarea no es
afectado.
Entonces:

1
Speedupglobal 
Fracción mejora
(1 - Fracción mejora) 
Speedupmejora

Lic. Martín Cruz Arquitectura de computadores - CC212


5
Speedup global
 Fracciónmejora 
Tiempode ejecuciónmejora  Tiempode ejecuciónoriginal   (1 - Fracciónmejora)  
 Speedup mejora 

Ejemplo:
1. La fracción del proceso original que puede ser mejorado.
Si la mejora afecta 20 segundos de un proceso que tarda 60
segundos, entonces Fracciónmejora = 20/60 = 0.333
2. Aceleración de la fracción que puede ser mejorada.
Si la mejora hace que la parte que tardaba 20 segundos ahora
tarde 12, Speedupmejora = 20/12 = 1.677

Lic. Martín Cruz Arquitectura de computadores - CC212


6
Ley de Amdahl - ejemplo
• Tiempo de ejecución con la mejora:
60 x ((1 – 0.333) + 0.333/1.667) =
60 x (0.667 + 0.2) =
60 x (0.867) =
52
• Tiempo de ejecución original: 60 segundos.
• Tiempo de ejecución con la mejora: 52 segundos.
• Speedupglobal = 60 / 52 = 1.15.

Lic. Martín Cruz Arquitectura de computadores - CC212


7
Ley de Amdahl
• La parte secuencial puede limitar la rapidez

• Ejemplo: ¿Qué parte secuencial es necesario si queremos un


programa 90 veces más rápido con 100 procesadores?
1
Speedup   90
(1 Fparallelizable )  Fparallelizable/100

• Resolviendo: Fparallelizable = 0.999


• Se concluye que se necesita una parte secuencial que
corresponde al 0.1% del programa original
Lic. Martín Cruz Arquitectura de computadores - CC212
8
Memoria compartida
• SMP: Multiprocesador de memoria compartida
• El hardware suministra un espacio único de direcciones físicas
para todos los procesadores
• Sincroniza variables compartidas usando bloqueos
• Tiempo de acceso de memoria
• UMA(uniforme) vs. NUMA(nounifome)

Lic. Martín Cruz Arquitectura de computadores - CC212


9
UMA vs. NUMA
Hay dos tipos de multiprocesadores con espacio de direcciones
único.
• UMA (Uniform Memory Access) Acceso a memoria uniforme
• Todos los accesos a memoria tardan el mismo tiempo.

• NUMA (Non-uniform Memory Access) Acceso a memoria no


uniforme
• Algunos accesos a memoria son más rápidos que otros,
dependiendo de qué procesador quiere acceder a que
palabra.

Lic. Martín Cruz Arquitectura de computadores - CC212


10
Ejemplo: Suma con reducción
• Se quiere sumar 100,000 números sobre 100 procesadores UMA
• Cada procesador tiene ID: 0<=Pn<=99
• Partición de 1000 números por procesador
• Suma inicial en cada procesador
sum[Pn] = 0;
for (i = 1000*Pn; i < 1000*(Pn+1); i = i + 1)
sum[Pn] = sum[Pn] + i;

• Ahora, necesitamos sumar estas sumas parciales. Esta acción se


llama reducción(divide y venceras)

Lic. Martín Cruz Arquitectura de computadores - CC212


11
Los clústeres
• Red de computadoras independientes
• Cada uno tiene memoria privada y un SO(Sistema Operativo)
• Conectado vía los puertos de E/S
• Por ejemplo, Ethernet/switch, Internet
• Apto para aplicaciones con tareas independientes
• Servidores Web, bases de datos, simulaciones, …
• Es escalable, asequible
• Problemas
• El costo de administración (se prefieren máquinas virtuales)
• Menor ancho de banda de interconexión.
Lic. Martín Cruz Arquitectura de computadores - CC212
12
Clústeres y otros de paso de
mensaje(memoria distribuida)
• Cada procesador tiene un espacio de direcciones físicas
privado.
• Envío/recepción de mensajes entre procesadores.

Lic. Martín Cruz Arquitectura de computadores - CC212


13
Procesador Superescalar
• El término “superescalar” (superscalar) fue acuñado a fines de los
80s.
• Todas las CPUs modernas son superescalares.
• Es un desarrollo de la arquitectura con pipeline(segmentación).
• Se generan nuevos peligros por dependencias.

Lic. Martín Cruz Arquitectura de computadores - CC212


14
Procesador Superescalar
• Este procesador emplea una técnica avanzada de segmentación
que le permite ejecutar más de una instrucción por ciclo de reloj.
Para alcanzar buenas prestaciones en este procesador, se requiere
que el compilador planifique las instrucciones de forma que se
eliminen dependencias y se mejore la frecuencia de ejecución.

Lic. Martín Cruz Arquitectura de computadores - CC212


15
Procesador Superescalar
 Al emitir varias instrucciones por ciclo el CPI (ciclos por
instrucción) es menor a 1.
 Una CPU de 6 GHz que emite 4 instrucciones a la vez puede
ejecutar hasta 24 mil millones de instrucciones por segundo
para un CPI de 0.25.
 En vez de CPI se usa IPC (instrucciones por ciclo de reloj) = 1
/ CPI.
 Un CPI de 0.25 es igual a un IPC de 4.

Lic. Martín Cruz Arquitectura de computadores - CC212


16
Procesador Superescalar
 El primer paso hacia una arquitectura superescalar fue agregar
otra unidad de ejecución al pipeline.
 Supercomputadoras como Control Data 6600 y 7600, Cray-1 y
algunas mainframes de IBM.

Lic. Martín Cruz Arquitectura de computadores - CC212


17
Procesador Superescalar
 El siguiente paso es duplicar el pipeline.

Lic. Martín Cruz Arquitectura de computadores - CC212


18
Multihilo en hardware
(Multithreading)
• Realización de múltiples hilos de ejecución en paralelo. Permite
que varios hilos(threads) compartan las unidades funcionales del
procesador y se ejecuten simultáneamente
• Cada hilo tiene una copia del banco de registros, el PC, etc.
• Rápida conmutación de la ejecución entre diferentes hilos
• Dos alternativas para la ejecución multihilo en hardware
• Ejecución multihilo de grano fino(FMT), se cambia de hilo en
cada instrucción, y como resultado se obtiene una ejecución
entrelazada de varios hilos.
• La ejecución multihilo de grano grueso(CMT),
Lic. Martín Cruz Arquitectura de computadores - CC212
19
Multihilo grano grueso
• La conmutación entre hilos se realiza sólo cuando hay paradas
largas, por ejemplo, en un fallo de la cache del segundo nivel(L2).
• Simplifica el hardware.
• Sin embargo tiene un importante inconveniente: su limitada
capacidad de reducir las pérdidas en las prestaciones debidas a las
paradas cortas.

Lic. Martín Cruz Arquitectura de computadores - CC212


20
Multihilo simultánea (SMT)
En los últimos años se propuso un nuevo esquema, que es en sí
mismo una variación del FMT, y que se llamó SMT
(Simultaneous Multithreading). La solución planteada consiste
en reducir los desperdicios de tiempo y uso de recursos. Para
evitar que el procesador permanezca ocioso, las instrucciones a
ejecutar se toman de varios flujos simultáneamente, de manera
tal que, ante el bloqueo de uno de ellos, se pueda continuar con
la ejecución de alguno de los otros.

Ejemplo: Intel Pentium 4 HyperThreading (HT)


• Dos hilos: registros duplicados, caches y unidades funcionales
compartidas.
Lic. Martín Cruz Arquitectura de computadores - CC212
21
Procesadores Vectoriales
• Es un procesador capaz de ejecutar operaciones matemáticas
sobre múltiples datos de forma simultánea, en contraste con
los procesadores escalares, capaces de manejar sólo un dato
cada vez. Los procesadores vectoriales proporcionan
operaciones de alto nivel que trabajan sobre vectores.
Segmentan las operaciones sobre los elementos de un vector,
tanto la operación aritmética como los accesos a memoria.

Lic. Martín Cruz Arquitectura de computadores - CC212


22
Procesadores Vectoriales
• Una característica clave es un conjunto de registros
vectoriales para sostener los operandos y resultados.
Recolecta los datos de memoria, los pone en orden en un
gran conjunto de registros, los opera secuencialmente en
registros, y luego escribe los resultados de regreso a
memoria.
• Ellos formaron la base de las supercomputadoras en los 80s
y los 90s.

Lic. Martín Cruz Arquitectura de computadores - CC212


23
Procesadores Vectoriales
• La extensión del conjunto de instrucciones de
MIPS(VMIPS) incluye instrucciones vectoriales, por
ejemplo:
• 32 registros de 64 elementos de 64 bits cada elemento
• Addv.d para sumar dos vectores de precisión doble.
• Addvs.d y mulvs.d para sumar(o multiplicar) un registro
escalar a cada elemento dentro de un registro vectorial.
• Lv y sv hacen carga vectorial y almacenaje vectorial de un
vector entero de doble precisión de datos.

Lic. Martín Cruz Arquitectura de computadores - CC212


24
Unidades de procesamiento
gráfico(GPUs)
• La industria de los juegos por computador, tanto en PCs como en
consolas como la Sony PlayStation, fue una fuerza motriz
decisiva para la mejora del procesamiento gráfico.
A medida que los procesadores gráficos aumentaban en potencia,
se ganaron el nombre de Unidades de procesamiento gráfico
(Graphics Processing Units) o GPUs, para distinguirse de las
CPUs.

Lic. Martín Cruz Arquitectura de computadores - CC212


25
Características de las GPUs
• Las GPUs son aceleradores que complementan a la CPU, no
realizan todas las funciones de la CPU. No importa esto ya que en
un sistema GPU y CPU, la CPU puede hacer todo lo que la GPU
no puede. Así, la combinación CPU-GPU es un ejemplo de
multiprocesamiento heterogéneo, donde los procesadores no
tienen por qué ser iguales
• La interfaz de programación de las GPUs que están libres de
restricciones de compatibilidad con versiones anteriores resultan
en una más rápida innovación en la GPU que en la CPU.
• Los tipos de datos de gráficos son vértices, que constan de las
coordenadas (x, y, z, w), y píxeles, que constan de componentes
de color (rojo, verde, azul, alfa).
Lic. Martín Cruz Arquitectura de computadores - CC212
26
Procesamiento gráfico en el
computador

Lic. Martín Cruz Arquitectura de computadores - CC212


27
Arquitectura de la GPU
• El procesamiento de datos es altamente paralelo
• Las GPU utilizan ejecución multihilos a gran escala
• Utiliza la conmutación a hilos para ocultar la latencia de
memoria
• Menos dependencia de los caches multinivel
• La memoria gráfica es amplia y de alto ancho de banda
• Tendencia hacia la GPU de propósito general
• CPU para el código secuencial, GPU para código paralelo
• Lenguajes de programación/APIs
• DirectX, OpenGL
• C para Gráficos (Cg), High Level Shader Language (HLSL)
• Compute Unified Device Architecture (CUDA) de NVIDIA
Lic. Martín Cruz Arquitectura de computadores - CC212
28
Conclusión
• Objetivo: Obtener mayor rendimiento mediante el uso de múltiples
procesadores
• Dificultades
• El desarrollo de software paralelo
• La elaboración de arquitecturas adecuadas
• Muchas razones para ser optimistas
• Evolución del entorno de software y aplicaciones
• Multiprocesadores a nivel de chip con menor latencia, mayor
ancho de banda de interconexión
• Es un desafío permanente para los arquitectos de computadores!

Lic. Martín Cruz Arquitectura de computadores - CC212


29

Вам также может понравиться