tema 1 multiprocesadores
TRANSCRIPT
3º del Grado en Ingeniería Informática
MULTIPROCESADORESMULTIPROCESADORES
Bloque 1:IntroducciBloque 1:Introduccióón a las arquitecturas Paralelasn a las arquitecturas Paralelas
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 2
IntroducciIntroduccióón a las Arquitecturas Paralelasn a las Arquitecturas Paralelas
Introducción a las arquitecturas paralelas
Aspectos software del procesamiento paralelo
Medidas de rendimiento
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 3
RelaciRelacióón entre contenidos y objetivosn entre contenidos y objetivos
Introducción a las arquitecturas paralelas– Situar los computadores paralelos en el contexto de las arquitecturas
paralelas
– Conocer la estructura general de un Computador Paralelo
– Conocer y distinguir las denominaciones de Computadores Paralelos usuales comercialmente y en docencia/investigación
Aspectos software del procesamiento paralelo – Conocer las diferentes alternativas para obtener un programa paralelo
– Ser capaz de abordar la paralelización de una aplicación
Medidas de rendimiento– Conocer cómo evaluar un computador paralelo
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 4
BibliografBibliografííaaC. GIL, A. FLORES, M.D. GILArquitecturas Paralelas, Servicio de Publicaciones, Universidad de Almería 2002.
J. ORTEGA, M. ANGUITA y A. PRIETO.Arquitectura de Computadores,Thomson, 2005.
Hwang, Z. Xu.Scalable Parallel Computing: Technology, Architecture, Programming,McGraw-Hill, 1998.
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 5
Move to multi-processor
RISC
IntroducciIntroduccióón a las Arquitecturas Paralelasn a las Arquitecturas Paralelas
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 6
Introducción a las arquitecturas paralelas– ¿Qué son los computadores paralelos?
– Clasificación de las arquitecturas
Aspectos software del procesamiento paralelo
Medidas de rendimiento
IntroducciIntroduccióón a las Arquitecturas Paralelasn a las Arquitecturas Paralelas
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 7
QuQuéé son las arquitecturas paralelasson las arquitecturas paralelasUn computador paralelo es una colección de elementos de procesamiento que cooperan para resolver un gran problema de manera rápida
Las facetas de diseño son:
– Nodo de cómputo
– Sistema de memoria
– Sistema de comunicación
– Sistema de entrada/salida
Los principales aspectos a tratar son:
– Asignación de recursos
– Acceso a los datos, comunicación y sincronización
– Rendimiento y escalabilidad
Red de Interconexión
PO P1 P2 P3
MemoriaPrincipal E/S
Nodos de cómputo
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 8
Introducción a las arquitecturas paralelas– ¿Qué son los computadores paralelos?
– Clasificación de las arquitecturas
Aspectos software del procesamiento paralelo
Medidas de rendimiento
IntroducciIntroduccióón a las Arquitecturas Paralelasn a las Arquitecturas Paralelas
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 9
ClasificaciClasificacióón de las arquitecturasn de las arquitecturasTerminología de Flynn
– SISD (Simple Instrucción Simple dato)
– SIMD (Simple Instrucción Múltiples datos)
– MISD (Múltiples Instrucciones Múltiples datos)
– MIMD (Múltiples Instrucciones Múltiples Datos)
Atendiendo al sistema de memoria de los MIMD
– Multiprocesadores: todos los procesadores comparten el mismo espacio de direcciones. El programador NO necesita conocer dónde están almacenados los datos.
– Multicomputadores: cada procesador tiene su espacio de direcciones propio. El programador necesita conocer dónde están almacenados los datos.
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 10
Multiprocesadores
Arquitecturas Paralelas
Arquitecturas vectoriales
PD
Arquitecturas neuronales
Arquitecturas sistólicas
SIMD
Arquitecturas de Arquitecturas de paralelismo de datosparalelismo de datos
Procesadores segmentados
Procesadores superescalares
VLIW
ILP
Nivel de instrucción
Multicompu-tadores
Multiproce-sadores
MIMD
Nivel de proceso
Arquitecturas de Arquitecturas de paralelismo funcionalparalelismo funcional
Nivel de hebra
Arquit.
Multihebra
MIMD
ClasificaciClasificacióón de las arquitecturas (Sima)n de las arquitecturas (Sima)
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 11
ClasificaciClasificacióón de las arquitecturasn de las arquitecturas
– Mayor latencia => Poco escalable– Comunicación mediante variables
compartidas.– Datos no duplicados en memoria
principal.– Necesita implementar primitivas de
sincronización.– No necesita distribuir código y datos.– La programación, generalmente, es
más sencilla.
− Menor latencia => Escalable− Comunicación mediante paso de
mensajes (send/receive). Datos duplicados en memoria principal, copia datos.
− Sincronización mediante los mecanismos de comunicación.
− Hay que distribuir código y datos (carga de trabajo) entre procesadores.
− La programación generalmente es más difícil.
Red de Interconexión
P
M E/S
P P P
M M
Multiprocesador de memoria centralizada
Red de Interconexión
PME/S
PME/S
P
ME/S
P
ME/S
Multicomputador
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 12
ClasificaciClasificacióón de las arquitecturasn de las arquitecturas ((HwangHwang))
MulticomputadoresMemoria no compartidaMultiples espacios de direcciones
MultiprocesadoresMemoria compartidaÚnico espacio de Direcciones
Blue Gene/L
HP AlphaServer SC45 (cluster de SMP)
NUMA(Non-UniformMemoryAccess)
UMA(UniformMemoryAccess)
NUMA
CC-NUMA
COMA
PVP
SMP
Cray T3E, Cray X1
Origin 3000HP 9000 Supedome
KSR-1
Cray T90Earth Simulator
WSServidores básicos
Memoriafísicamentedistribuida
Escalables
Memoriafísicamentecentralizada
+ Escalabilidad -
En base al modelo de memoria de las MIMDEn base al modelo de memoria de las MIMDNORMA(Non-RemoteMemoryAccess)
MPP
Cluster
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 13
Introducción a las arquitecturas paralelas
Aspectos software del procesamiento paralelo
Medidas de rendimiento
IntroducciIntroduccióón a las arquitecturas paralelasn a las arquitecturas paralelas
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 14
Unidades de ejecuciUnidades de ejecucióón: Instrucciones, hebras, procesosn: Instrucciones, hebras, procesos• Hardware (procesador): gestiona la ejecución de instrucciones• Software (sistema operativo): gestiona la ejecución de procesos y hebras
Aspectos software del procesamiento paraleloAspectos software del procesamiento paralelo
Proceso-hebras
IPPila
Hebra
IPPila
Hebra
Código
Heap
Ficheros
Tablas-páginas
Heap
Ficheros
Tablas-páginas
Código
Pila
IP
Proceso− Cada proceso tiene su propio espacio de direcciones virtuales− Las hebras de un proceso comparten direcciones virtuales− Las hebras se crean y se destruyen más rápido que los procesos− La comunicación y conmutación entre hebras es más rápida
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 15
Paralelismo implParalelismo implíícito, explcito, explíícito y arquitecturas paralelascito y arquitecturas paralelas
Aspectos software del procesamiento paraleloAspectos software del procesamiento paralelo
Programa1 Programa2 ……
Func1() {…}
Func2() {…}
Func3() {…}
for( ) {…}
while( ) {…}
* + /
MulticomputadorMultiprocesador
Procesos
MultiprocesadorMultihebra
Hebras
SIMDVectorial
Intrainstruc.
ILP Instrucciones
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 16
Aspectos software del procesamiento paraleloAspectos software del procesamiento paralelo• Fuentes de Paralelismo
– Fuentes: Paralelismo funcional o de tareas y Paralelismo de datos
• Modos de programación paralela:– SPMD, MPMD, mixto
Herramientas para obtener programas paralelos:– Bibliotecas de funciones, directivas del compilador, lenguajes
paralelos, compiladores paralelos
Estilos de programación paralela:– Paso de mensajes, variables compartidas, paralelismo de datos
Alternativas de comunicación.– Uno-a-uno, uno-a-muchos, muchos-a-uno, muchos-a-muchos
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 17
Paralelismo funcional. Niveles de Paralelismo en una Paralelismo funcional. Niveles de Paralelismo en una aplicaciaplicacióónn
Aspectos software del procesamiento paraleloAspectos software del procesamiento paralelo
Programa1 Programa2 ……
Func1() {…}
Func2() {…}
Func3() {…}
for( ) {…}
while( ) {…}
* + /
Granularidad
Grano Grueso
Grano Medio
Grano Medio-Fino
Grano Fino
Granularidad
Programas
Funciones
Bucle(bloques)
Operaciones
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 18
Aspectos software del procesamiento paraleloAspectos software del procesamiento paralelo
• Fuentes de Paralelismo• Modos de programación paralela:
– SPMD – MPMD– mixto
Herramientas para obtener programas paralelos
Estilos de programación paralela
Alternativas de comunicación.
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 19
Aspectos software del procesamiento paraleloAspectos software del procesamiento paralelo
SPMD (Single-Program Multiple Data)
Red de Interconexión
PME/S
PME/S
P
ME/S
P
ME/S
Programa
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 20
Aspectos software del procesamiento paraleloAspectos software del procesamiento paralelo
MPMD (Multiple-Program Multiple Data)
Red de Interconexión
PME/S
PME/S
P
ME/S
P
ME/S
P1P2
P3P4
P1P2
P3P4
Código
(Ejercicio Fortran)
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 21
Aspectos software del procesamiento paraleloAspectos software del procesamiento paralelo
• Fuentes de Paralelismo• Modos de programación paralela
Herramientas para obtener programas paralelos:– Bibliotecas de funciones – Directivas del compilador– Lenguajes paralelos – Compiladores paralelos
Alternativas de comunicación.Estilos de programación paralela
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 22
Aspectos software del procesamiento paraleloAspectos software del procesamiento paraleloCompiladores paralelos: extracción automática del paralelismo. Paralelismo ImplícitoDirectivas del compilador (OpenMP): lenguaje secuencial+directivas;
Lenguajes paralelos (HPF, Occam, java, Ada): construcciones del lenguaje.Bibliotecas de funciones (Pthread, MPI, PVM): lenguaje secuencial + funciones de biblioteca como interfaces.
Tareas que permiten de forma implícita o explícita (el programador):– Crear y terminar procesos/hebras.– Localizar paralelismo.– Distribuir la carga de trabajo entre procesos/hebras.– Comunicación y sincronización entre procesos/hebras.– Asignación de procesos/hebras a procesadores.
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 23
Aspectos software del procesamiento paraleloAspectos software del procesamiento paralelo
• Fuentes de Paralelismo• Modos de programación paralela
Herramientas para obtener programas paralelosEstilos de programación paralela:– Paralelismo de datos (procesadores matriciales)– Paso de mensajes (multicomputadores) – Variables compartidas (multiprocesadores)
Alternativas de comunicación.
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 24
SUMATION Begin
for i←l-1 downto 1 do for all Pj,i where 1<=j<=l do tj,i⇐aj,i+1
aj,i←aj,i+tj,i endfor endfor for i←l-1 downto 1 do for all Pi,1 do ti,1⇐ai+1,1
ai,1←ai,1+ti,1 endfor endfor
End
Numeros de procesadores
0 1 2 34 5 6 7
8 9 10 11
12 13 14 15
Valores a sumar
6 -4 19 2
-9 0 3 -5
10 -3 -8 1
7 -2 4 5
Despues de la 1ª iteracion
6 -4 21
-9 0 -2
10 -3 -7
7 -2 9Despues de la 3ª iteracion
23
-11
0
14Despues de la 2ª iteracion
6 17
-9 -2
10 -10
7 7
26
Despues de la 6ª iteracionDespues de la 5ª iteracion
23
3
Despues de la 4ª iteracion
23
-11
14
Modelo de paralelismo de datosModelo de paralelismo de datosAspectos software del procesamiento paraleloAspectos software del procesamiento paralelo
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 25
Modelo de paso de mensajesModelo de paso de mensajes#define N 1000000main() { double local,pi,w; long i, taskid, numtask; w=1.0/N; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD, &taskid); MPI_Comm_size(MPI_COMM_WORLD, &numtask); for(i=taskid; i<N; i=i+numtask){ local=(i+0.5)*w; local=4.0/(1.0+local*local); } MPI_Reduce(&local,&pi,1,MPI_Double, MPI_MAX, 0, MPI_COMM_WORLD); if(taskid==0) printf("pi es %f\n",pi*w); MPI_finalize();}/*main*/
Aspectos software del procesamiento paraleloAspectos software del procesamiento paralelo
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 26
Modelo de variables compartidasModelo de variables compartidas#define N 1000000main() { double local,pi=0.0,w; long i; w=1.0/N; #pragma parallel #pragma shared(pi,w) #pragma local(i,local) { #pragma pfor iterate(i=0; N;1) for(i=0; i<N; i++){ local=(i+0.5)*w; local=4.0/(1.0+local*local); } #pragma critical pi=pi+local; } printf("pi es %f\n",pi*w);}/*main*/
Aspectos software del procesamiento paraleloAspectos software del procesamiento paralelo
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 27
Aspectos software del procesamiento paraleloAspectos software del procesamiento paralelo
• Fuentes de Paralelismo• Modos de programación paralela
Herramientas para obtener programas paralelosEstilos de programación paralelaAlternativas de comunicación.– Uno a uno – Uno a todos– Todos a uno– Todos a todos– Múltiple uno a uno
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 28
P1P2P3
135
P1P2P3
135,1
(a) Punto a Punto: P1 envia 1 a P3
P1P2P3
135
P1P2P3
1,13,15,1
(b) Broadcast: P1 envia 1 a todos
P1P2P3
1,3,5 P1P2P3
1,3,535
(c) Scatter: P1 envia un valor a cada nodo
P1P2P3
135
P1P2P3
1,3,535
(d) Gather: P1 coge un valor de cada nodo
P1P2P3
1,2,34,5,67,8,9
P1P2P3
1,4,72,5,83,6,9
(e) Intercambio total: Cada nodo envia un mensaje distinto a cada nodo
P1P2P3
135
P1P2P3
1,53,15,3
(f) Desplazamiento: Cada nodo envia un valor al siguiente y recibe un valor del siguiente nodo.
P1P2P3
1 P1P2P3
1,935
(g) Reduccion:P1 coge la suma 1+3+5=9
P1P2P3
135
P1P2P3
1,13,45,9
(h) Scan: P1 coge 1, P2 coge 1+3=4 y P3 coge 1+3+5=9
35
Diferentes tipos de comunicaciones
Aspectos software del procesamiento paraleloAspectos software del procesamiento paralelo
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 29
Aspectos software del procesamiento paraleloAspectos software del procesamiento paralelo
• Redactar código paralelo depende del:− Estilo de programación: paso de mensajes, variables compartidas,
paralelismo de datos.− Modo de programación: MPMD, SPMD, mixto.− Herramienta para hacer explícito el paralelismo: librería, directivas,
lenguaje.− Estructura del programa (depende de la aplicación).
• El programa paralelo incluirá (con un mayor o menor nivel de abstracción) funciones para:− Crear y terminar procesos-hebras, o enrolar y desenrolar procesos en
el grupo que coopera en el cálculo.− Localizar paralelismo− Asignar la carga de trabajo− Comunicar y sincronizar los diferentes procesos (hebras).
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 30
Introducción a las arquitecturas paralelas
Aspectos software del procesamiento paralelo
Medidas de rendimiento
IntroducciIntroduccióón a las Arquitecturas Paralelasn a las Arquitecturas Paralelas
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 31
Introducción a las arquitecturas paralelas
Aspectos software del procesamiento paralelo
Medidas de rendimiento
– Benchmarks
– Factores de rendimiento en programas paralelos
– Modelos del speedup
IntroducciIntroduccióón a las Arquitecturas Paralelasn a las Arquitecturas Paralelas
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 32
Propiedades exigidas a medidas de prestaciones:– Fiabilidad => Representativas, evaluar diferentes
componentes del sistema y reproducibles– Permitir comparar diferentes realizaciones => Aceptadas por
todos los interesados (usuarios, fabricantes, vendedores)
Interesados:– Vendedores y fabricantes de hardware o software.– Investigadores sobre hardware o software.– Compradores de hardware o software.
Medidas de rendimientoMedidas de rendimientoBenchmarksBenchmarks
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 33
De bajo nivel o microbenchmark.– test ping-pong
Kernels.– resolución de sistemas de ecuaciones, multiplicación de
matrices, FFT, descomposición LUSintéticos.– Dhrystone, Whetstone.
Programas reales.– SPEC CPU2000: enteros (gcc, gzip, perlbmk).
Aplicaciones diseñadas.– Predicción de tiempo, simulación de terremotos.
Medidas de rendimientoMedidas de rendimientoTipos de BenchmarksTipos de Benchmarks
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 34
Benchmark: ScaLAPACK (Scalable Linear Algebra PACKage)– Dirección: www.netlib.org– Aplicación: Científico.– Estilo: Paso de mensajes.– Tipo: núcleos de álgebra lineal LAPACK
Benchmark: TPC (Transaction Processing Performance Council)– Dirección: www.tpc.org– Aplicación: Procesamiento de transacciones o OLTP (TPC-C);
sistemas de soporte de decisiones o DSS (TPCR, TPC-H); comercio electrónico o e-commerce (TPC-W).
– Tipo: entradas software comercial (bases de datos, servidores de información de Internet)
Medidas de rendimientoMedidas de rendimiento
Tipos de BenchmarksTipos de Benchmarks
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 35
Introducción a las arquitecturas paralelas
Aspectos software del procesamiento paralelo
Medidas de rendimiento
– Benchmarks
– Factores de rendimiento en programas paralelos
– Modelos del speedup
IntroducciIntroduccióón a las Arquitecturas Paralelasn a las Arquitecturas Paralelas
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 36
FactoresFactores de rendimiento en los programas paralelosde rendimiento en los programas paralelos
Penalización por paralelismo
T= Tcomp+Tpar+Tinteract
Medidas de rendimientoMedidas de rendimiento
-Manejo de procesos (creación, terminación…)
-Operaciones de agrupación (crear grupos…)
-Operaciones de identificación (rango, grupo,
tamaño...)
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 37
FactoresFactores de rendimiento en los programas paralelosde rendimiento en los programas paralelos
Penalización por interacción
T= Tcomp+Tpar+Tinteract
Medidas de rendimientoMedidas de rendimiento
- Sincronización (barreras, cerrojos, sec. Críticas..)
- Agregación (reducción, scan)
- Comunicación (com. punto a punto, com. colectivas,
lecturas/escrituras variables compartidas)
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 38
FactoresFactores de rendimiento en los programas paralelosde rendimiento en los programas paralelos
Com. punto a punto
t(m)=t0+ m/r∝
Com. Colectivas
T(m,n)=t0(n)+ m/r∝(n)
P1P2P3
135
P1P2P3
135,1
(a) Punto a Punto: P1 envia 1 a P3
P1P2P3
135
P1P2P3
1,13,15,1
(b) Broadcast: P1 envia 1 a todos
P1P2P3
1,3,5 P1P2P3
1,3,535
(c) Scatter: P1 envia un valor a cada nodo
P1P2P3
135
P1P2P3
1,3,535
(d) Gather: P1 coge un valor de cada nodo
P1P2P3
1,2,34,5,67,8,9
P1P2P3
1,4,72,5,83,6,9
(e) Intercambio total: Cada nodo envia un mensaje distinto a cada nodo
P1P2P3
135
P1P2P3
1,53,15,3
(f) Desplazamiento: Cada nodo envia un valor al siguiente y recibe un valor del siguiente nodo.
P1P2P3
1 P1P2P3
1,935
(g) Reduccion:P1 coge la suma 1+3+5=9
P1P2P3
135
P1P2P3
1,13,45,9
(h) Scan: P1 coge 1, P2 coge 1+3=4 y P3 coge 1+3+5=9
35
Medidas de rendimientoMedidas de rendimiento
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 39
Perfil del paralelismo Perfil del paralelismo (Ejercicio 10)(Ejercicio 10)
Medidas de rendimientoMedidas de rendimiento
Medidas de rendimiento. Grado de paralelismoMedidas de rendimiento. Grado de paralelismo
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 40
MMéétricas en tricas en el el modelo de fases paralelasmodelo de fases paralelasFase C1:W1
T1(1)GDP1
Fase Ci:Wi
T1(i)GDPi
Fase Ck:Wk
T1(k)GDPk
… …......
......
...
Interacción Interacción
∑≤≤
=ki
iTT1
11 )(Tiempo secuencial ∑≤≤
++=ki
eractpari
n TTnDOP
iTT1
int1
),min()(
Tiempo paralelo
∑≤≤
∞ =ki iDOP
iTT1
1 )(Camino crítico
nn T
WP =Velocidad con n nodos
nn T
TS 1=Speedup n nodosn
nn nT
TnSE 1==Eficiencia n nodos
peak
nn nP
PU =Utilización n nodos eractpar TTT int0 +=Overhead total
∞TT1
Paralelismo medio WT0
Overhead medio 0TW
Granularidad media
Medidas de rendimientoMedidas de rendimiento
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 41
Introducción a las arquitecturas paralelas
Aspectos software del procesamiento paralelo
Medidas de rendimiento
– Benchmarks
– Factores de rendimiento en programas paralelos
– Modelos del speedup
IntroducciIntroduccióón a las Arquitecturas Paralelasn a las Arquitecturas Paralelas
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 42
Modelos del Modelos del SpeedupSpeedup
Carga de trabajo fija (Ley de Amdahl)
Tiempo de ejecución fijo (Ley de Gustafson)
Tamaño de memoria fijo (Ley de Sun y Ni)
Medidas de rendimientoMedidas de rendimiento
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 43
Carga de trabajo fija (Ley de Amdahl)Carga de trabajo fija (Ley de Amdahl)
WWW )1( αα −+=
)/)(1( nWWWSn αα −+
=
Medidas de rendimiento. Modelos del Medidas de rendimiento. Modelos del speedupspeedup
Supones carga fija W (en sg o Mflops)La carga W se puede dividir en dos partes:
Si se ignoran las pensalizaciones, Speedup carga fija se define como:
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 44
Carga de trabajo fija (Ley de Amdahl)Carga de trabajo fija (Ley de Amdahl)
∞→ncuandoα1
α−+=
)1(1 nnSn
WnTn
nS n0)1(1 +α−+
=
Speedup con overhead
∞→+
ncuando
WT0
1
α
Speedup sin overhead
Medidas de rendimiento. Modelos del Medidas de rendimiento. Modelos del speedupspeedup
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 45
Carga de trabajo fija (Ley de Amdahl)Carga de trabajo fija (Ley de Amdahl)
Medidas de rendimiento. Modelos del Medidas de rendimiento. Modelos del speedupspeedup
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 46
Tiempo fijo (Ley de Tiempo fijo (Ley de GustafsonGustafson ))
escaladaacunaparaparaleloTiempoescaladaacunaparauencialTiempoS n arg
argsec' =
nW
nWWS n )1()1(' αααα−+=
−+=
WTnS n /1
)1('0+α−+α
= Speedup con overhead
Speedup sin overhead
Medidas de rendimiento. Modelos del Medidas de rendimiento. Modelos del speedupspeedup
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 47
Tiempo fijo (Ley de Tiempo fijo (Ley de GustafsonGustafson ))Medidas de rendimiento. Modelos del Medidas de rendimiento. Modelos del speedupspeedup
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 48
TamaTamañño de memoria fijo (Ley de Sun y Ni)o de memoria fijo (Ley de Sun y Ni)
escaladaacunaparaparaleloTiempoescaladaacunaparauencialTiempoS n arg
argsec* =
nnGnGSn /)()1(
)()1(*
α−+αα−+α
=
WTnnGnGSn //)()1(
)()1(
0
*
+α−+αα−+α
=
Speedup sin overhead
Speedup con overhead
nWnGWWnGWS n /)()1(
)()1(*αααα
−+−+
=
Medidas de rendimiento. Modelos del Medidas de rendimiento. Modelos del speedupspeedup
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 49
TamaTamañño de memoria fijo (ley de Sun y Ni)o de memoria fijo (ley de Sun y Ni)
Medidas de rendimiento. Modelos del Medidas de rendimiento. Modelos del speedupspeedup
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 50
Modelos del Modelos del SpeedupSpeedup
Medidas de rendimientoMedidas de rendimiento
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 51
Función de Isoeficiencia
Medidas de rendimiento. EscalabilidadMedidas de rendimiento. Escalabilidad
Las curvas de isoeficiencia corresponden a los valores que debe tener el tamaño del problema para conseguir un valor de eficiencia dado (cte) en un multiprocesador con n procesadores
Para E=0.5, W=1.4 n2 (Ejercicio Isoeficiencia)
Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 52
Para ampliarPara ampliar ……Páginas Web:
– http://nscp01.physics.upenn.edu/parallel/– WWW Computer Architecture Page: http://www.cs.wisc.edu/arch/www/
Libros:– Wilkinson, Barry ,“Parallel programming : techniques and
applications using networked workstations and parallel computer”, 2005.
– A. Grama, A. Gupta, G. Karypis, V. Kumar. “Introduction to Parallel Computing”. Addison-wesley, 2003.
Artículos de Revistas:– STEEN, A. VAN DER; DONGARRA, J.J.:”Overview of Recent
Supercomputers”. http://www.top500.org/ORSC/2002/– KONIGES, A.E.: “Industrial Strength Parallel Computing”.
Morgan Kaufmann, 2000.