introduccion a las arquitecturas paralelas
Post on 18-Oct-2015
22 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
Introduccin a las Arquitecturas Paralelas
Arquitectura de Computadoras IIFac. Cs. Exactas
UNCPBAProf. Marcelo Tosini
2011
-
2Procesamiento Paralelo
Uso de muchas unidades de proceso independientes para ejecutar distintas partes de una tarea en simultneo
Principal objetivo: Aumento del RENDIMIENTO. Aumento de la capacidad para resolver problemas computacionales grandes
Cmo? Divisin del trabajo en tareas mas pequeas e independientes Asignacin de las tareas a distintas unidades de proceso Resolucin de las tareas en simultaneo.
Problemas: Sincronizacin de las tareas. control de ejecucin simultanea conflictos debidos a dependencias
-
3Procesamiento Paralelo
Limitaciones:
En algunos problemas el incremento del nmero de procesadores nomejora el rendimiento global, incluso empeora la eficiencia del sistema.
La eficiencia se mejora cuando:
se logra un balance de carga entre procesadores: igual numero de tareas de igual tamao
Se minimiza la interaccin entre tareas: se minimiza la comunicacin o, al menos, se mejoran los canales de comunicacin
elementos de proceso
e
f
i
c
i
e
n
c
i
a
-
4Sistema paralelo
Conjunto de elementos de proceso que, operando juntos, permiten resolver problemas computacionales complejos de forma eficiente
Caractersticas de un sistema paralelo:
Cantidad y potencia de los elementos de proceso
Tipo y Tamao de la memoria
Forma de comunicacin entre los elementos de proceso
Rendimiento
Escalabilidad del sistema
Recursos de potencia requeridos
-
5Niveles de paralelismoEl paralelismo puede estudiarse a varios niveles:
Trabajo: Dos programas distintos pueden ejecutarse en paralelo Tarea: En este nivel se consideran varias tareas independientes
entre si formando parte de un programa determinado. Esposible la interaccin de las tareas
Proceso: Varios procesos componen una tarea. Son bloques confuncionalidad bien definida.
Variable: El paralelismo puede darse a nivel de variables ya quevarias instrucciones pueden ser ejecutadas en paralelosiendo el punto de conflicto las variables en comn
Bit: Todos los computadores usan paralelismo a nivel de bit
-
6Arquitecturas de procesadores
Complejidad del procesador:Complejidad del procesador:
Arquitectura caracterstica y estructura de cada procesador del sistema.
ntimamente ligado con la funcionalidad (variedad de operaciones y cantidad de instrucciones)
Arreglos sistlicos homogneos complejidad bajaMIMD Heterogneos complejidad alta
-
7Arquitecturas de procesadores
Modo de operaciModo de operacin:n:Forma de controlar la secuencia de operaciones a realizar parallevar adelante la ejecucin de una tarea
Control flowLas instrucciones se ejecutan en el orden dispuesto porel algoritmo
Data flowLas operaciones se realizan segn la disponibilidad dedatos
Demand flowLos resultados parciales se calculan por demanda, o seacuando se los necesita
-
8Arquitecturas de procesadores
OrganizaciOrganizacin de la memoria:n de la memoria:Tipo de memoria utilizada en el sistema
DireccionableAccedida por referencias a los datos
AsociativaAccedida por contenido
InterconectadaAccedida por cualidades de los datos (redes neuronales)
-
9Arquitecturas de procesadores
Red de interconexiRed de interconexin:n:Conexionado de hardware entre procesadores y entre procesadores y memorias
La arquitectura de conexionado debe ajustarse lo mejorposible a la topologa de un algoritmo para mejorar laperformance
-
10
Arquitecturas de procesadores
NNmero de procesadores y tamamero de procesadores y tamao de la memoria:o de la memoria:Potencia de clculo del sistema y capacidad de almacenamientode datos del mismo
Clasificacin:Sistemas grandes: ms de 1000 procesadores
Sistemas medios: de 100 a 1000 procesadores
Sistemas chicos: hasta 100 procesadores
-
11
Organizacin de las arquitecturas
Nivel de trabajo Distribuido Redes de computadoras
Nivel de tarea Multicomputadoras Pasaje de mensajesNivel de procesoNivel de instruccin paralelo Memoria compartidaNivel de variable multiprocesadoresNivel de bit
HARDWARE
GRANULARIDADDEL ALGORITMO
GRADO DEACOPLAMIENTO
MODO DECOMUNICACION
-
12
mbitos de uso de la computacin paralela
Simulacin de modelos complejos
Diseo y automatizacin de proyectos de ingeniera
Exploracin petrolera y minera
Medicina
rea militar
Cine: efectos visuales, animacin 3D
Realidad Virtual
Comercio electrnico
Mega bases de datos (google, youtube, rapidshare)
-
13
Evolucin del rendimiento
1950 1960 1970 1980 1990 2000
1 Kflop/s
1 Mflop/s
1 Gflop/s
1 Tflop/s
EDSAC 1
UNIVAC 1
IBM 7090
CDC 6600CDC 7600 IBM 360
Cray i
Cray X-MPCray 2
TMC CM-2
TMC CM-5Cray T3D
ASCI Red
-
14
Incremento de velocidad
89 90 91 92 93 94 95 96 97 98 99 00 01 02 03
100 MHz
500 MHz
1000 MHz
2000 MHz
3000 MHz
486 DX33
486 DX100
P II 400
ATHLON 600
PIII 1 GHz
ATHLON GHz
PIII 1,3 GHz
XEON 3 GHz
Bus CPU: 6 veces mas rpido
reloj CPU: 100 veces mas rpido
-
15
Lmites tecnolgicos
El feature size (d) determina el tamao de las compuertas en latecnologa CMOS de manera que:
Un aumento de la velocidad de reloj es proporcional a =1/d Un aumento del nmero de transistores es proporcional a 2
Hasta cuanto puede disminuir d??
1400
1500
385
1.7G
40M
1.2-1.5
0.15
2001
1600
2100
430
4.29G
76M
1.2-1.5
0.13
2003
2000
3500
520
17.2G
200M
0.9-1.2
0.10
2006
0.5-0.60.6-0.91.5-1.81.8-2.5Voltaje
1000060001250750Frecuencia local de reloj (MHz)750620340300Tamao Die (mm2)
2012200919991997caracterstica / ao
275G68.7G1.07G167MDRAM bits/chip
300025001200750Frecuencia global de reloj (MHz)
1.4B520M21M11MN transistores
0.050.070.180.25Feature Size (mm)
-
16
Evolucin de las arquitecturas
Procesadores escalares
Procesadores vectoriales
Multiprocesadores
1 Mflop/s
1 Gflop/s
1 Tflop/s
1975 1990
Ct
IPCPNT *1*=
tc IPC P
tc IPC>1 P
tc IPC1 P=1
-
17
Medidas de performance
Tiempo promedio de ejecuciTiempo promedio de ejecucinn Instrucciones por segundo
til en SISD y en MIMD, pero no en SIMD Operaciones por segundo
No considera tamao de palabra Punto flotante por segundo
No es til en compiladores y en AI Inferencias por segundo
til en inteligencia artificial
-
18
Medidas de performance
SpeedupSpeedup ((SSpp -- para P procesadores)para P procesadores)
Sp = T1Tp
Promedio entre el tiempo deproceso secuencial y paralelo enP procesadores
T1 : tiempo en 1 procesador
Tp : tiempo en P procesadoresSp < P
-
19
Medidas de performance
Eficiencia (Eficiencia (EEpp -- para P procesadores)para P procesadores)
Ep = SpP
Cociente entre Sp y P.Medida de la relacin costo/efectividadde la computacin
P : nmero de procesadores
Sp : Speedup con P procesadores0 < Ep < 1
-
20
Medidas de performance
Redundancia (Redundancia (RRpp -- para P procesadores)para P procesadores)
Rp = OpO1
Promedio entre el nmero total deoperaciones ejecutadas con P proc.y el nmero de operacionesnecesarias en 1 procesador
Op : nmero de operaciones enP procesadores
O1 : Nmero de operaciones enun procesador
Rp > 1
-
21
Medidas de performance
UtilizaciUtilizacin (Un (Upp -- para P procesadores)para P procesadores)
Up = Op
P.TP
Nmero de operaciones totalesejecutadas con P procesadoresponderada por la eficiencia detrabajo en esos P procesadores
Op : nmero de operaciones enP procesadores
Up < 1
Rp * Ep=
-
22
Medidas de performance
Calidad del paralelismo (Calidad del paralelismo (QQpp -- para P procesadores)para P procesadores)
Qp = RP
La calidad de paralelismo esproporcional al Spedup y a laEficiencia.
La calidad de paralelismo decreceal aumentar la Redundancia
Qp < 1
Sp * Ep
-
23
Espacio Publicitario
Optativa para el rea de Hardware y Control
"Diseo con Lgica Programable: FPGAs, Herramientas EDA y VHDL"
Comienza la ltima semana de abril.
Ver afiches o consultar por email a:
Elias Todorovich : etodorov@uam.es
Lucas Leiva : lleiva@exa.unicen.edu.ar
-
24
Lmites de la computacin paralela
La idea es modelar lo mLa idea es modelar lo ms aproximadamente la operacis aproximadamente la operacin en unn en unentorno multiprocesadorentorno multiprocesador
Premisas:Un programa paralelo es una serie de instancias de tareasde sincronizacin seguidas de clculos reales (programa)distribuidos entre los procesadores.
Debido al overhead el tiempo total de ejecucin de lastareas distribuidas en los procesadores es mayor que si sehubiese ejecutado en un nico procesador
-
25
Lmites de la computacin paralelaVariables de clculo:
ts = tiempo de sincronizacin
t = granularidad de tarea (tiempo de ejecucin promedio de las tareas)
to = overhead de tareas causado por la ejecucin paralela
N = cantidad de tareas entre puntos de sincronizacin
P = nmero de procesadores
-
26
Lmites de la computacin paralela
El tiempo de ejecucin secuencial de N tareas de tiempo t ser
T1 = N.tEn un ambiente paralelo cada tarea requiere (t + to) unidades de tiempoSi hay N tareas en P procesadores, entonces el nmero de pasos paralelos ser N/P . Entonces el tiempo de ejecucin paralelo ser:
TN,P = ts + N/P . (t + to)Si N en mltiplo de P no hay penalizaciones de balance de carga al final de
cada computacin
-
27
Lmites de la computacin paralela
El Speedup del sistema ser:
SN,p = T1
TN,p=
N . t
ts + N/P . (t + to)
=
1
ts/(N.t) + (1/N) N/P . (1 + to/t)
-
28
Lmites de la computacin paralela
La eficiencia del sistema ser:
EN,p = P
=
N . t
ts + N/P . (t + to)
=
1
ts/(N.t) + (1/N) N/P . (1 + to/t)
SN,p / P
/ P
-
29
Lmites de la computacin paralela
Mtrica P , N fijo N , P fijo
SN,p N/(1 + (ts + to)/t) P/(1 + to/t)
EN,p 0 1/(1 + to/t)
-
30
Lmites de la computacin paralela
Conclusiones:Conclusiones:
La primera columna muestra que el speedup resultante deincrementar el nmero de procesadores est limitado por el nmero de tareas N, mientras que la eficiencia tiende a0.
La segunda columna muestra que un Speedup igual a lacantidad de procesadores puede ser logrado realizando un gran nmero de tareas, siempre y cuando el overhead seanfimo respecto a la granularidad de tareas
-
31
Clasificacin de las arquitecturas de computadoras
Pipeline PLP(Process Level Paralelism)
TLP(Tread Level Paralelism)
DLP(Data Level Paralelism)
ILP(Instruction Level Paralelism)
Formas de paralelismo
Superescalar
VLIW
EPIC
TTA
Dataflow
Short vector processing(SIMD)
Vector processors(SIMD)
Coarse grain
Fine Grain
SMT(Simultaneousmultithreading)
Multi coreprocessors
Multi processorsystems (MIMD)
Multi computer(MIMD)
Locked
Notlocked(MIPSMultiprocessorwithout InterlockPipeline Stages)
-
32
PLP - Process level paralelismDistintos procesos se ejecutan en diferentes procesadores paralelos o en diferentes cores de un mismo procesador
Modelo que permite clasificar a todas las computadoras basndose en el estudio del paralelismo de los flujos de instrucciones y datos exigidos por las instrucciones en los componentes ms restringidos
de la mquina Flujo nico de instrucciones, flujo nico de datos.(SISD) Flujo nico de instrucciones, flujo mltiple de datos.(SIMD) Flujo mltiple de instrucciones, flujo nico de datos.(MISD) Flujo mltiple de instrucciones, flujo mltiple de datos.(MIMD)
Clasificados de acuerdo al modelo de Flynn
-
33
SISD. Flujo nico de instrucciones y datos
La CPU controla todas las operaciones que se realizan en la mquina extrayendo secuencialmente las instrucciones de programa desde la memoria.
CPUCPU: Unidad de control: ejecuta una a
una las instrucciones de programa Unidad lgico/aritmtica: realiza las
operaciones sobre los datos Registros internos: se almacenan
datos parciales y direcciones.
UCALU
registros
Memoria
I/O
-
34
SIMD. Flujo nico de instrucciones, flujo mltiple de datos
for (i = 1 ; i < MaxElem ; i ++)A[i] = 2 * a[i-1];
for (i = 1 ; i < MaxElem ; i ++)A[i] = 2 * b[i];
A[1] = 2 * a[0];A[2] = 2 * a[1];
.
.
A[n-1] = 2 * a[n-2];A[n] = 2 * a[n-1];
A[1] = 2 * b[1];A[2] = 2 * b[2];
.
.
A[n-1] = 2 * b[n-1];A[n] = 2 * b[n];
Distintas operacionessobre
distintos datos
Mismas operacionessobre
distintos datos
-
35
Arquitectura SIMD
Unidadde
control
Unidadfuncional
1
Unidadfuncional
2
Unidadfuncional
k
Memoria
Flujo dedatos 1
Flujo dedatos 2
Flujo dedatos k
Flujo deinstrucciones
-
36
Arquitectura SIMD
for (i = 1 ; i < MaxElem ; i ++)A[i] = 2 * a[i-1];
A[1]=2*A[0] A[2]=2*A[1] A[3]=2*A[2] A[4]=2*A[3] A[5]=2*A[4]Unidad funcional 1idle idle idle idle idleUnidad funcional 2
idle idle idle idle idleUnidad funcional k
. . . . . . . . . . . . . . .
Ciclo 0 1 2 3 4
-
37
Arquitectura SIMD
for (i = 1 ; i < MaxElem ; i ++)A[i] = 2 * a[i];
A[1]=2*A[1] A[k+1]=2*A[k+1] A[2k+1]=2*A[2k+1] A[3k+1]=2*A[3k+1] A[n]=2*A[n]Unidad funcional 1Unidad funcional 2
Unidad funcional k
. . . . . . . . . . . . . . .
A[2]=2*A[2] A[k+2]=2*A[k+2] A[2k+2]=2*A[2k+2] A[3k+2]=2*A[3k+2] idle
A[k]=2*A[k] A[2k]=2*A[2k] A[3k]=2*A[3k] A[4k]=2*A[4k] idle
Ciclo 0 1 2 3 4
-
38
MISD. Flujo mltiple de instrucciones, flujo nico de datos
Arquitecturas desacopladas y los arreglos sistlicosFuncionan con el principio de bombear los datos a travs de una hilera de procesadores escalares donde en cada uno de ellos se realizan paralelamente operaciones sobre distintos datos. Desde el punto de vista de cada dato, ste pasa de un procesador al siguiente para transformarse de acuerdo a la operacin que realice cada procesador.
Conceptualmente, varias instrucciones ejecutConceptualmente, varias instrucciones ejecutndosendoseparalelamente sobre un paralelamente sobre un nico dato.nico dato.
-
39
Arquitecturas clsicas MISD La informacin circula entre las celdas como en un pipeline La comunicacin con el exterior se produce en las celdas frontera
PE PE PE PE PE PE PE
Memoria
Entradade datos
Salidade datos
-
40
Arquitecturas clsicas MISDEjemploM[i] = ((((M[i] * 256 + 70) mod 512 - 5) and 0x7f) or 0x80) shl 2
Shl 2 or0x80and0x7f -5
mod512 +70 *256
Memoria
Entradade datos
Salidade datos
-
41
MIMD. Flujo mltiple de instrucciones, flujo mltiple de datos
Es la mejor estrategia de diseo orientada a obtener el ms altorendimiento y la mejor relacin costo/rendimiento.
Idea general: conectar varios procesadores para obtener un rendimiento global lo ms cercano a la suma de rendimientosde cada procesador por separado.
La filosofa de trabajo plantea la divisin de un problema en varias tareas independientes y asignar a cada procesador laresolucin de cada una de estas tareas.
-
42
MIMD. Flujo mltiple de instrucciones, flujo mltiple de datos
int suma (int x, int y){
return x + y;}
int prom (int x, int y){
return (x + y) >> 2;}........................
........................
a = Func (suma(Oper1, Oper2) , prom(10, Oper1));
Procesador1
Procesador2
Procesador3
memoria
-
43
TLP Thread level paralelism
En TLP las unidades de ejecucin de un procesador se comparten entre los threadsIndependientes de un proceso (o threads de diferentes procesos)
COARSE GRAIN: En coarse grain multi-threading los threads son desalojados del procesador con baja frecuencia, usualmente cuando el thread realiza alguna I/O, o ante un fallo de cache.
FINE GRAIN: En fine grain multi-threading el thread en ejecucin es cambiado (thread swaping) en cada ciclo de reloj
SMT: Simultaneous multi-threading es similar a fine grain, pero permite ejecutarmltiples threads en cada ciclo de reloj. SMT permite concurrencia fsica, a diferencia de los anteriores que solo manejanConcurrencia virtual (multiplexado por divisin de tiempo)
-
44
TLP Thread level paralelism
D
DDD
DDDD
DD
C
CCC
CCCC
BB
B
BBB
AA
A
AAA
AAAA
D
AA
DDD
C
BB
A
DDDD
CCC
B
AAA
DD
CCCC
BBB
AAAA
DDDA
ABD
BDDD
CCC
CAAB
DBDA
DCCC
CBBA
AAAA
Coarse grain Fine grainSMT
-
45
DLP Data level paralelism
La operacin se aplica a varios tems de dato en lugar de uno
Implementado con rutas de datos divisibles
Por ejemplo: una ruta de 64 bits permite realizar 1 operacin de 64 bits;2 de 32 bits; 4 de 16 bits; etc.
Tipos: Short vector processing: uso de operadores de M bits para realizar N
operaciones de M/N bits.
Vector processors: la ruta de datos se multiplexa en tiempo entre loselementos del vector de operandos. No ahorra tiempo de proceso, solo permite disminuir el tamao del cdigo por el uso de instrucciones vectoriales.
-
46
ILP instruction level paralelism
Ejecucin paralela e instrucciones completas u operaciones
Aproximaciones: SuperescalarVLIW (Very Long Instruction Word)EPIC (Explicit parallel Instruction Computer)TTA (Transport Triggered Architecture)DataFlow
Si bien todas se basan en la paralelizacin de instrucciones para su ejecucindifieren en la forma de emisin de las mismas
-
47
ILP - Superescalar
Los procesadores superescalares leen varias instrucciones a la vez en su cola de instrucciones y dinmicamente emiten cierto nmero de ellas en cada ciclo de reloj.El nmero y tipo de instrucciones emitidas depende de cada arquitectura.
fetching
buffer deinstrucciones
emisin
unidadfuncional
unidadfuncional
unidadfuncional
Ventaja: Ejecucin masiva en paralelo
Desventajas: Perdida de orden secuencial Problemas de dependencias Problemas con los saltos
-
48
ILP - Dataflow
Controlada por el flujo de los datos en lugar del orden de las instrucciones Las operaciones se almacenan en un buffer a la espera de los datos para operar Los resultados viajan en paquetes (tags) que contienen el valor y la lista de
operaciones destino (que usan ese valor como operando) Cuando una operacin tiene todos sus operandos, se dispara y ejecuta.
memoria de operaciones unidad funcional
unidad funcional
unidad funcional
tags
-
49
ILP - VLIWEjecuta grupos de operaciones empaquetadas en instrucciones compuestas
Las instrucciones dentro de cada paquete son independientes entre si.
Todas las instrucciones de un paquete se ejecutan en paralelo y las ms rpidas deben esperar la
finalizacin de las ms lentas.
La seleccin de instrucciones de cada paquete la realiza el compilador.
fetching
despacho
unidadfuncional
unidadfuncional
unidadfuncional
instruccin VLIW (de 3 operaciones)
Desventajas: Mayor ancho del bus de datos desde memoria de instrucciones. Banco de registros con varios puertos de lectura/escritura. Desperdicio de espacio de memoria por instrucciones VLIW
incompletas debido a dependencias.
-
50
ILP - EPICMejora de VLIW para evitar el desperdicio de espacio debido a dependencias
Los paquetes siempre estn completos (no hay NOOPs)
Las operaciones dentro de un paquetetienen informacin adicional de dependencia entre ellas
Hay una unidad de emisin que decide que instrucciones se emiten y aque unidades
fetching
emisin
unidadfuncional
unidadfuncional
unidadfuncional
instruccin VLIW (de 3 operaciones)
Desventajas: Mayor ancho del bus de datos desde memoria de instrucciones. Banco de registros con varios puertos de lectura/escritura. La planificacin se realiza en el compilador (como en VLIW)
-
51
ILP - TTA
La idea bsica de TTA es permitir a los programas el control total de los caminosinternos de movimiento de datos dentro del procesador.
La arquitectura se compone bsicamente de unidades funcionales, buses y registros.
Las entradas de las unidades funcionales tienen puertos disparables (triggering ports)que permiten activar una operacin determinada cuando todos los puertos tienendatos vlidos para la instruccin a realizar.
Una palabra de instruccin TTA esta compuesta de mltiples slots, uno por bus.
TTA es similar a VLIW pero con mayor control sobre el hardware.
-
52
ILP - TTA
ejemplo:
En RISC
add r3, r1, r2
En TTA
r1 -> ALU.operand1r2 -> ALU.add.triggerALU.result -> r3
top related