Tema 1 multiprocesadores

52
3º del Grado en Ingeniería Informática MULTIPROCESADORES MULTIPROCESADORES Bloque 1:Introducci Bloque 1:Introducci ó ó n a las arquitecturas Paralelas n a las arquitecturas Paralelas

Transcript of Tema 1 multiprocesadores

Page 1: Tema 1 multiprocesadores

3º del Grado en Ingeniería Informática

MULTIPROCESADORESMULTIPROCESADORES

Bloque 1:IntroducciBloque 1:Introduccióón a las arquitecturas Paralelasn a las arquitecturas Paralelas

Page 2: Tema 1 multiprocesadores

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

Page 3: Tema 1 multiprocesadores

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

Page 4: Tema 1 multiprocesadores

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.

Page 5: Tema 1 multiprocesadores

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

Page 6: Tema 1 multiprocesadores

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

Page 7: Tema 1 multiprocesadores

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

Page 8: Tema 1 multiprocesadores

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

Page 9: Tema 1 multiprocesadores

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.

Page 10: Tema 1 multiprocesadores

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)

Page 11: Tema 1 multiprocesadores

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

Page 12: Tema 1 multiprocesadores

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

Page 13: Tema 1 multiprocesadores

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

Page 14: Tema 1 multiprocesadores

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

Page 15: Tema 1 multiprocesadores

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

Page 16: Tema 1 multiprocesadores

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

Page 17: Tema 1 multiprocesadores

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

Page 18: Tema 1 multiprocesadores

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.

Page 19: Tema 1 multiprocesadores

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

Page 20: Tema 1 multiprocesadores

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)

Page 21: Tema 1 multiprocesadores

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

Page 22: Tema 1 multiprocesadores

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.

Page 23: Tema 1 multiprocesadores

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.

Page 24: Tema 1 multiprocesadores

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

Page 25: Tema 1 multiprocesadores

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

Page 26: Tema 1 multiprocesadores

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

Page 27: Tema 1 multiprocesadores

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

Page 28: Tema 1 multiprocesadores

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

Page 29: Tema 1 multiprocesadores

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).

Page 30: Tema 1 multiprocesadores

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

Page 31: Tema 1 multiprocesadores

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

Page 32: Tema 1 multiprocesadores

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

Spuzi
Nota adhesiva
puede haber diferentes tipos dependiendo del tipo de computador, En la realidad usan limpack:http://es.wikipedia.org/wiki/Linpack
Page 33: Tema 1 multiprocesadores

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

Spuzi
Nota adhesiva
Para medir una caracteristica en concreta
Spuzi
Nota adhesiva
se una en redes
Spuzi
Nota adhesiva
kernel con potencia de calculo muy fuerte, se usan para determinados aspectos del procesamiento:
Spuzi
Nota adhesiva
no realizan ningun tipo de operacion, no da ningun resultado. Se desarrollan especificamente ara medir algo
Spuzi
Nota adhesiva
prediccion del tiempo, simulaicon de terremotos, oceanos, etc... nos miden si el ordenador itnee capacidad para ello
Page 34: Tema 1 multiprocesadores

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

Spuzi
Nota adhesiva
se usa este para multicomputadores
Spuzi
Nota adhesiva
para temas de comercio eléctronico.
Page 35: Tema 1 multiprocesadores

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

Spuzi
Nota adhesiva
lo usaremos para cualquier algoritmo o cualquier modelo de arquitectura
Page 36: Tema 1 multiprocesadores

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...)

Spuzi
Nota adhesiva
tenemos un progrma secuencias, al ejecutarlo en una arquitectura paralela, ¿Que se añade con respecto al procesamiento secuencial?
Spuzi
Nota adhesiva
La parte Tcomp tiene k ser muy pekeña por que al añadir el overhead (t interact = comunicaciones) Tpar Y Tinteract => overhead el que mas interesa es el tiempo de comunicacion => Tinteract, normalmente el Tiempo paralelismo se supone a 0
Page 37: Tema 1 multiprocesadores

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)

Page 38: Tema 1 multiprocesadores

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

Spuzi
Nota adhesiva
como un desplazamiento circular
Spuzi
Nota adhesiva
la propia operacion de suma se puede hacer en la red e interconexion
Spuzi
Nota adhesiva
m bites t0 overhead dle inicio r ancho de banda asintótico= el maximo ancho de banda k puede tener, aunke normalmente no se consigue el maximo
Spuzi
Nota adhesiva
e tiempo no solo depende de la longitud del mensaje si no tambien de cuantos nodos vamos a comunicar (n)
Page 39: Tema 1 multiprocesadores

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

Spuzi
Nota adhesiva
para un algoritmo divide y venceras, el grado de paralelismo, durante 2 segudnos (1 proce) durante 7 egundos (4 proce) Parte que no se peude paralelizar => alfa Paralelismo medio, hay que ver la carga de trabajo que hay, y calcular el paralelismo medio. (Ejercicio resuelto en apuntes)
Page 40: Tema 1 multiprocesadores

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

Spuzi
Nota adhesiva
se distingue con un progrma que diferencia entre fase de computo y fase de comunicación. W= carga de trabajo GDP = grado de paralelismo
Spuzi
Nota adhesiva
la sumatoria de todas las fases
Spuzi
Nota adhesiva
T(i)= tiempo en un procesador DOP= grado de paralelismo si solo peudo usar 8 procesadores, pero n=16 pero k ai mas procesadores Se puede dar k DOP sea uno (este s el caso secuencial)
Spuzi
Nota adhesiva
Tiempo en el caso ideal, tenemos tanto procesadores como grado de paralelismoq ue tiene el algoritmo, y no hay ni overhead de comunicacion ni tiempo de paralelismo
Spuzi
Nota adhesiva
en un programa la granualidad media alta = signific que hay mucho computo en relacion al overhead, nos interesa k la granularidad media sea alta
Page 41: Tema 1 multiprocesadores

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

Page 42: Tema 1 multiprocesadores

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

Spuzi
Nota adhesiva
supoinemos que hay una carga fija, esto interesa en progrmas de tiempo critico, aplicaciones que el computador paralelo lo usemos para disminuir elt iempo
Page 43: Tema 1 multiprocesadores

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:

Spuzi
Nota adhesiva
parte secuencial = alfa
Page 44: Tema 1 multiprocesadores

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

Spuzi
Nota adhesiva
si la expresion la dividimos por W Si solo ai k trabajar con el numero de procesadores, y alfa alfa sera el cuello de botella
Spuzi
Nota adhesiva
segun podamos paralelizar el coigo yo no , asi tendremos la ganancia, La carga W no varia
Spuzi
Nota adhesiva
si la parte secuencial es muy alta, no sera paralelizable
Spuzi
Nota adhesiva
granularidad o overhead medio
Page 45: Tema 1 multiprocesadores

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

Spuzi
Nota adhesiva
si lo vemos desde l punto de vista d ela carga no cambia, pero si lo vemos desde el punto de vista del itempod e ejecución va reduciendo
Page 46: Tema 1 multiprocesadores

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

Spuzi
Nota adhesiva
se desarrolla para poder ser usada en progrmas parlelos que andal= mas procesadores para resolver la misma carga( carga fija) gustafson=mas procesadores par aresolver un problem amas grande (carga escalada)
Spuzi
Nota adhesiva
sin overhead
Spuzi
Nota adhesiva
con overhead En esta expresión se ve k depende menos del overhead
Page 47: Tema 1 multiprocesadores

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

Spuzi
Nota adhesiva
no aumentamos el los procesadores para resolverlo e menos tiempo, si no para que el mismo tiempo resolver una carga de trabajo mas grande
Page 48: Tema 1 multiprocesadores

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

Spuzi
Nota adhesiva
caso mas generico k pilla los dos anteriores, ahora se supone k la carga escalada esta al maximo, se tiene en cuenta la capacidad de memoria k tiene cada nodo
Page 49: Tema 1 multiprocesadores

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

Spuzi
Nota adhesiva
vamos aumentando mas la carga, pero el tiempo de ejecución no es constante Aki se ve k el factor GDN se puede generalizar para compararlo co otros metodos GDN = 1 => Amdal GDN = n => Gustafson GDN > n => la carga computacional se aumenta mas que la capacidad de memoria
Page 50: Tema 1 multiprocesadores

Consolación Gil Bloque 1: Introducción a las Arquitecturas Paralelas 50

Modelos del Modelos del SpeedupSpeedup

Medidas de rendimientoMedidas de rendimiento

Spuzi
Nota adhesiva
el modelo de carga fija limitado por las comunicaciones
Page 51: Tema 1 multiprocesadores

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)

Spuzi
Nota adhesiva
mide como debe de crecer la carga en un computador paralelo par mantener una eficiencia constante. en el caso de k keramos matener la eficiencia a 0.5 ai k ir hacienod una etrapolacion
Page 52: Tema 1 multiprocesadores

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.