Tema 1: Introducción al paralelismo

Anuncio
Departamento de Automática
Arquitectura e Ingeniería de Computadores
Tema 1
Introducción al paralelismo
Prof.
Dr. José Antonio de Frutos Redondo
Dr. Raúl Durán Díaz
Curso 2010-2011
Arquitectura e Ingeniería de Computadores
Tema 1: Introducción
„
„
„
„
„
„
Necesidad del paralelismo
Rendimiento de computadores
Taxonomía de Flynn
Ley de Amdahl
Procesamiento paralelo
Entornos de programación paralela
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 2
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Necesidad del paralelismo
„
Necesidad de potencia de cálculo
„
„
„
„
Procesos complejos en tiempo real (control de centrales, de viajes
espaciales, control de tráfico, etc.)
Simulación (de moléculas, de poblaciones, predicción
meteorológica, modelos mecánicos, etc.)
Problemas hasta ahora no atacables (salvo por procesos
heurísticos) pero resolubles.
Realimentación entre los avances tecnológicos y la potencia de
cálculo solicitada.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 3
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Necesidad del paralelismo
„
Limitación de las posibilidades de la arquitectura clásica
„
Presencia de múltiples cuellos de botella:
„
„
„
memoria,
unidades funcionales.
Limitaciones físicas:
„
„
„
„
límites en la capacidad de integración,
crecimiento incontrolado de la disipación de calor al aumentar la
frecuencia,
límites en la frecuencia: (suponiendo velocidades de transición en el
silicio 3·109cm/s y distancias de 1cm)
fmáx = 1/1cm/3·109cm/s = 3 GHz
dificultades de manejo de altas frecuencias en circuitos.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 4
Arquitectura e Ingeniería de Computadores
1. Introducción
„
La computación paralela es inevitable
„
Demanda de las aplicaciones: Insaciable necesidad de
potencia de cálculo.
„
„
„
Tendencias tecnológicas:
„
„
„
De propósito general: video, gráficos, CAD, bases de datos...
Científica: Biología, Química, Física, ...
El número de transistores en un CI crece rápidamente.
Se esperan crecimientos lentos de la frecuencia de reloj.
Tendencias en arquitectura:
„
„
Límites del paralelismo a nivel de instrucción (superescalares).
Paralelismo a nivel de tareas la vía más adecuada.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 5
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Tendencias actuales:
„
„
„
„
Los microprocesadores actuales tienen soporte para multiproceso.
Aparición de estaciones de trabajo multiprocesador : Sun, SGI,
HP,…
Los microprocesadores del mañana serán multiprocesadores.
Tendencia en las aplicaciones:
„
„
„
Realimentación entre la demanda de potencia y la complejidad de
las aplicaciones.
Amplio rango de prestaciones demandadas.
Progresiva potencia con coste progresivo.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 6
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Objetivo en la aplicación del paralelismo:
aumentar el speedup.
Speedup (p procesadores) =
„
Rendimiento (p procesadores)
Rendimiento (1 procesador)
Para un problema determinado, el rendimiento es la inversa
del tiempo:
Speedup (p procesadores) =
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
Tiempo (1 procesador)
Tiempo (p procesadores)
1. Introducción al paralelismo 7
Arquitectura e Ingeniería de Computadores
1. Introducción
Demanda científica
Fuente: Parallel Computer Architecture, Culler et al, Morgan Kauffman, 1999
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 8
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Demanda de la Ingeniería
„
Las grandes máquinas paralelas tienen especial aplicación en
industrias tales como:
„
„
„
„
„
„
Petróleo (análisis de reservas).
Automóvil (simulación de choques, análisis aerodinámicos,
eficiencia de la combustión).
Aeronáutica (análisis de flujos de aire, eficiencia en motores,
mecánica estructural, electromagnetismo).
Diseño asistido por ordenador.
Farmacia (modelos moleculares).
Visualización (GUI, entretenimiento, representaciones virtuales).
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 9
Arquitectura e Ingeniería de Computadores
1. Introducción
„
¿Qué es un computador paralelo?
„
Es un conjunto de elementos de proceso que cooperan para
resolver rápidamente grandes problemas.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 10
Arquitectura e Ingeniería de Computadores
1. Introducción
„
¿Cómo es un computador paralelo?
„
Algunas características generales:
„
Asignación de recursos:
„
„
„
„
Acceso a los datos, comunicación y sincronización:
„
„
„
„
¿Cuántos elementos?
¿De qué potencia?
¿Cuánta memoria?
¿Cómo cooperan los elementos y se comunican?
¿Cómo están los datos que se transmiten?
¿Cuáles son las funciones disponibles para la cooperación?
Rendimiento y expansión:
„
„
¿Cómo influyen estas características en el rendimiento?
¿Cómo se puede ampliar el sistema?
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 11
Arquitectura e Ingeniería de Computadores
1. Introducción
Evolución en la computación paralela
„
AMBER programa de simulación de dinámica molecular.
„
Punto de partida: código vectorial para Cray-1.
„
Las gráficas corresponden a la ejecución en un Intel Paragon.
„
145 MFLOP en Cray90, 406 para la versión final en 128-processor Paragon, 891 en 128-processor
Cray T3D.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 12
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Computación Comercial
„
También confía en el paralelismo para aumentar sus
prestaciones:
„
„
Menor grado de paralelismo, pero más extendido.
La potencia del computador determina el nivel de negocio que se
puede manejar.
„
„
Ejemplos: Bases de datos, procesos de transacciones online, apoyo a
la toma de decisiones, data mining, almacenamiento de datos...
TPC benchmarks (TPC-C, TPC-D)
„
„
Se tienen en cuenta los criterios de escalabilidad.
Rendimiento medido en transacciones por minuto (tpm).
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 13
„
Tendencias en Tecnología
100
Supercomputers
10
Performance
Arquitectura e Ingeniería de Computadores
1. Introducción
Mainframes
Microprocessors
Minicomputers
1
0.1
1965
1970
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1975
1980
1985
1990
1995
1. Introducción al paralelismo 14
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Tendencias en Tecnología
„
„
„
„
La potencia de los microprocesadores crece 50% - 100% por
año.
El número de transistores se duplica cada 2 años.
El tamaño de la DRAM se cuadruplica cada 3 años.
La gran actividad del mercado genera grandes inversiones en
investigación.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 15
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Tendencias en Tecnología
180
160
140
DEC
120
alpha
100
IBM
80
RS6000
60
540
40
Sun 4
20
260
MIPS
M/120
MIPS
Integer
HP 9000
750
M2000
0
1987
1988
1989
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1990
1991
1992
1. Introducción al paralelismo 16
FP
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Tecnología:
„
Avance básico: decremento del tamaño de separación.
„
„
„
Circuitos más rápidos y con menor disipación de potencia.
Crecimiento del tamaño de los dados.
¿Cómo utilizar más transistores?
„
Paralelismo en el procesamiento:
„
„
„
„
Elimina latencias y reduce CPI.
Aumenta la utilización del procesador.
$
Interconnect
Ambos necesitan recursos: hay que buscar un compromiso.
Tarea fundamental es la distribución de recursos, como en
uniprocesadores.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
Proc
Localidad en el acceso a datos:
„
„
Múltiples operaciones por ciclo para
reducir el CPI.
1. Introducción al paralelismo 17
„
Aumento de la frecuencia de reloj en un 30% al año.
1,000
Clock rate (MHz)
Arquitectura e Ingeniería de Computadores
1. Introducción
100
‹
‹
‹
‹
‹
‹
‹
R10000
‹
‹
‹
‹
‹
‹
‹‹‹
‹‹
‹
‹‹Pentium100
‹
‹
‹
‹
‹
‹
‹
‹
‹
‹‹
‹
‹‹
‹‹
‹
‹‹
‹‹
‹
‹
‹
‹‹ ‹
‹
‹
‹‹
‹i80386
‹‹
‹i80286
10
i8086 ‹
‹
‹
1
i8080
‹
‹
‹ i8008
i4004
0.1
1970
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1975
1980
1985
1990
1995
2000
2005
1. Introducción al paralelismo 18
„
Incremento en el nº de transistores:
„
„
100 millones en el año 2000.
Crecimiento más rápido que la frecuencia de reloj: 40% por año.
100,000,000
‹
10,000,000
Transistors
Arquitectura e Ingeniería de Computadores
1. Introducción
1,000,000
i80286 ‹
100,000
‹
‹
‹‹ ‹
‹R10000
‹
‹‹
‹
‹‹
‹ ‹Pentium
‹‹
‹
‹
‹
‹
‹
‹
‹
‹
‹‹
‹
‹
‹‹
‹‹
‹
‹
‹
‹
‹
‹ ‹
i80386
‹ ‹ R3000
‹R2000
‹ i8086
10,000
‹
‹
‹ i8080
‹ i8008
i4004
1,000
1970
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1975
1980
1985
1990
1995
2000
2005
1. Introducción al paralelismo 19
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Evolución en la memoria:
„
Mayor divergencia entre capacidad de memoria y velocidad.
„
„
„
Las grandes memorias son lentas, mientras que los
procesadores son más rápidos.
„
„
„
„
Capacidad 1000x entre 1980-95, velocidad sólo 2x.
Gigabit DRAM por CI. 2000, pero gap con la velocidad del
procesador mucho mayor.
Necesidad de transferir datos en paralelo.
Necesidad de profundizar en la jerarquía de cache.
¿Cómo organizar las caches?
El paralelismo aumenta el tamaño efectivo de cada nivel sin
incrementar el tiempo de acceso.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 20
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Tendencias Arquitectónicas
„
„
La arquitectura traslada los avances tecnológicos al rendimiento
y a la capacidad.
Resuelve los compromisos entre paralelismo y localidad.
„
„
„
Microprocesadores actuales: 1/3 computación, 1/3 cache, 1/3
conexiones off-chip.
Los compromisos pueden cambiar con los avances en la escala de
integración y la tecnología.
Entender las tendencias arquitectónicas en microprocesadores
„
„
ayuda a entender las cuestiones de diseño de máquinas paralelas,
muestra la integración del proceso paralelo incluso en máquinas
secuenciales.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 21
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Tendencias Arquitectónicas
„
La mayor tendencia en la generación VLSI consiste en
incrementar el paralelismo
„
Hasta 1985, paralelismo a nivel de bit: 4 bits → 8 bits → 16 bits.
„
„
„
Desaceleración hasta 32 bits.
Adopción de 64 bits actualmente; 128 bits lejano (no influye
demasiado en el rendimiento).
Punto de inflexión: unión de microprocesador de 32 bits y cache en un
único chip.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 22
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Tendencias Arquitectónicas
„
La mayor tendencia en la generación VLSI consiste en
incrementar el paralelismo
„
Mediados de los 80 a mediados de los 90: paralelismo a nivel de
instrucción.
„
„
„
„
„
Segmentación y conjunto de instrucciones reducido (RISC), junto con
avances en compiladores.
Múltiples unidades funcionales y caches en único chip => ejecución
superescalar.
Mayor sofisticación: ejecución fuera de orden, especulación,
predicción.
Para tratar con problemas de transferencia de control y latencia.
Siguiente paso: paralelismo a nivel de hebras.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 23
„
Fases en la generación VLSI
Bit-level parallelism
100,000,000
Instruction-level
Thread-level (?)
‹
10,000,000
‹‹
‹
‹
‹
‹‹
1,000,000
‹
‹
‹
R10000
‹‹
‹‹
‹‹
‹
‹ ‹‹‹
‹
‹
‹
‹‹
‹
‹
‹
‹
‹ ‹
‹
Pentium
‹
Transistors
Arquitectura e Ingeniería de Computadores
1. Introducción
‹
‹
i80386
‹
i80286 ‹
100,000
‹
‹
‹
‹
‹ R3000
‹ R2000
‹
‹ i8086
10,000
‹ i8080
‹ i8008
‹
‹ i4004
1,000
1970
1975
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1980
1985
1990
1995
2000
2005
1. Introducción al paralelismo 24
„
Rendimiento de ILP
3
30
25
2.5
20
2
Speedup
Fraction of total cycles (%)
Arquitectura e Ingeniería de Computadores
1. Introducción
15
1.5
1
5
0.5
0
1
2
3
4
5
Number of instructions issued
„
„
„
6+
0
z
0
5
10
15
Instructions issued per cycle
Recursos y ancho de banda infinitos para fetch.
Renombrado y perfecta predicción de saltos.
Caches reales (incluye fallos en accesos).
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
z
10
0
z
z
z
1. Introducción al paralelismo 25
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Resultados de estudios de ILP
„ Maquinas paralelas que pueden emitir 4 instrucciones por ciclo.
perfect branch prediction
4x
1 branch unit/real prediction
3x
2x
1x
Jouppi_89
„
Smith_89
Chang_91
Butler_91
Melvin_91
Estudios reales muestran un speedup de tan solo igual a 2.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
Murakami_89
1. Introducción al paralelismo 26
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Rendimiento de computadores
T = I c × CPI × τ
„
Ic
CPI
„
τ
„
„
número de instrucciones del programa
ciclos por instrucción
ciclo de reloj
Desarrollando el término de ciclos por instrucción
T = Ic × ( p + m × k ) × τ
„
„
„
p
m
k
número de ciclos del procesador para la ejecución de la
instrucción (decodificación, ejecución, etc.)
número de referencias a memoria.
relación en ciclos que existe entre las operaciones del
procesador y las operaciones de acceso a memoria.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 27
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Rendimiento de computadores
CPI
Ic
Instrucciones por
programa
p
ciclos de
procesador
Repertorio de
instrucciones
x
x
Tecnología del
compilador
x
x
Implementación del
computador y control
Cache y jerarquía de
memoria
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
m
Referencias a
memoria
k
Latencia de la
memoria
τ
Ciclo de reloj
x
x
x
x
x
1. Introducción al paralelismo 28
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Rendimiento de computadores
„
Clasificación del rendimiento:
„
Rendimiento teórico.
„
„
Rendimiento real.
„
„
Es el máximo rendimiento que se puede alcanzar (rendimiento de
pico).
Es el que se obtiene en un programa determinado.
Rendimiento sostenido.
„
Es el más indicativo, representa la media de rendimiento para
diversas tareas.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 29
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Rendimiento de computadores
„ Cálculo del rendimiento (en MIPS):
Ic
MIPS =
T × 106
f
f × Ic
MIPS =
=
6
6
CPI × 10
C × 10
C
CPI =
Ic
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 30
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Rendimiento de computadores
Nombre
Valor
Rango
MFLOPS
megaFLOPS = 106
Rango de las workstations
actuales
GFLOPS
gigaFLOPS = 109
Rango de los actuales
supercomputadores
TFLOPS
teraFLOPS = 1012
Rango de los
supercomputadores que
están apareciendo en la
actualidad
PFLOPS
petaFLOPS = 1015
El sueño, los ingenieros se
preguntan qué problemas se
podrán resolver con esta
potencia
EFLOPS
exaFLOPS = 1018
Probablemente necesite una
tecnología nueva
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 31
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Productividad (throughput)
„ Indica el número de programas que el sistema puede ejecutar por
unidad de tiempo:
MIPS × 10
f
Wp =
=
Ic
I c × CPI
6
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 32
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Ejemplo de productividad
Computador
f
Rendimiento
Tiempo de CPU
VAX 11/780
5 MHz
1 MIPS
12x
IBM RS/6000
25 MHz
18 MIPS
x
Wp =
VAX 11/780
IBM RS/6000
CPI = 5/1 = 5
CPI = 25/18 = 1.3
I c = MIPS × T × 10 6
18 × 1 × 10 6
= 1. 5
r=
1 × 12 × 10 6
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
MIPS × 106
f
=
Ic
I c × CPI
Relación entre la longitud de los programas:
el programa ejecutado en el IBM es 1,5 veces mayor que
el ejecutado en el VAX.
1. Introducción al paralelismo 33
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Taxonomía de Flynn:
„
SISD:
„
„
SIMD:
„
„
un flujo de instrucciones único trabaja sobre un flujo de datos
múltiple (computadores matriciales).
MISD:
„
„
un flujo de instrucciones único trabaja sobre flujo de datos único
(arquitectura clásica, superescalares).
un flujo de instrucciones múltiple trabaja sobre un flujo de datos
único (clase no implementada, resultado de la clasificación).
MIMD:
„
un flujo de instrucciones múltiple trabaja sobre un flujo de datos
múltiple (multiprocesadores).
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 34
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Taxonomía de Flynn
UC
UP
Dato
SISD
UC
UP
UC
UP
UC
UP
Dato
MISD
UC
UP
Dato
UC
UP
Dato
UP
Dato
UC
UP
Dato
UP
Dato
UC
UP
Dato
SIMD
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
MIMD
1. Introducción al paralelismo 35
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Ley de Amdahl
W +Wn
Sn = l
W +Wn n
l
Sn:
Wl:
Wn:
n:
mejora del rendimiento (speedup)
parte no paralelizable
parte paralelizable
número de procesadores
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 36
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Ley de Amdahl
8%
Wl
Porcentaje de la parte no paralelizable
sobre el total de la carga
Carga
Wn
Nº EPs
14%
Wl 20%
Wl 25% 29% 33%
Wl
Wn
Wl
Wl
Wn W
Wn W
n
n
1
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
2
3
4
5
6
1. Introducción al paralelismo 37
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Paralelismo:
„
„
Conjunto de tareas independientes entre sí susceptibles de ser
llevadas a cabo de forma simultánea.
Tipos de paralelismo:
„
en cuanto al hardware:
„
Monoprocesadores
Segmentación
„División funcional
„
„
Multiprocesadores
SIMD
„MIMD
„Acoplo fuerte
„Acoplo moderado
„Acoplo débil
„
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
„
en cuanto al software:
„
SPMD: El mismo programa es
cargado en múltiples
procesadores y se ejecuta sobre
conjuntos de datos distintos.
„
MPMD: Cada procesador
ejecuta programas distintos. Esta
estructura suele ser del tipo
maestro-esclavo en la que un
procesador coordina el trabajo del
resto.
1. Introducción al paralelismo 38
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Niveles de paralelismo en un programa
Aumento
de la
necesidad
de comunicación
y planificación
Programa,
trabajo (job)
Módulo,
proceso
Función,
rutina,
tarea (task)
Mayor
grado de
paralelismo
Paralelismo de
grano medio
Puede ser necesario
el programador, con
ayuda del compilador
Bucle
Instrucción,
sentencia
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
Paralelismo de
grano grueso
Explotado por el
diseñador del
algoritmo o el
programador
Paralelismo de
grano fino
Explotado por el
compilador o el
hardware
1. Introducción al paralelismo 39
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Entornos de programación paralela
„
El aprovechamiento de un computador paralelo depende, en
gran medida, del entorno de programación en dos facetas:
„
„
Las herramientas de programación.
El sistema operativo.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 40
Arquitectura e Ingeniería de Computadores
1. Introducción
„
Enfoques del paralelismo en computadores paralelos:
„
Paralelismo implícito: se programa en lenguaje secuencial y el
compilador se encarga de paralelizar y asignar recursos.
„
„
„
„
Pequeño aprovechamiento (depende de la inteligencia del
compilador).
El trabajo del programador es fácil.
Aprovecha todo el código secuencial existente.
Paralelismo explícito: se usan dialectos paralelos de
programación.
„
„
Mejor aprovechamiento de las posibilidades paralelas de la
máquina.
Más trabajo para el programador.
© J. A. de Frutos Redondo, R. Durán 2005
V1.3
1. Introducción al paralelismo 41
Descargar