03print.pdf

35
university-logo Análisis de desempeño Paralelismo Tarea Computación Científica en Paralelo Luis Miguel de la Cruz [email protected] www.dci.dgsca.unam.mx/lmcs Unidad de Investigación en Cómputo Aplicado DGSCA-UNAM. Posgrado en Ciencia e Ingeniería de la Computación LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 1 / 35

Transcript of 03print.pdf

Page 1: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Computación Científica en Paralelo

Luis Miguel de la [email protected]

www.dci.dgsca.unam.mx/lmcs

Unidad de Investigación en Cómputo AplicadoDGSCA-UNAM.

Posgrado en Ciencia e Ingeniería de la Computación

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 1 / 35

Page 2: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Contenido

1 Análisis de desempeñoPerformanceMidiendo el desempeñoEfectos del acceso a la memoriaAnálisis asintótico

2 ParalelismoDefinicionesEjemplo : Números primos

3 Tarea

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 2 / 35

Page 3: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

1 Análisis de desempeñoPerformanceMidiendo el desempeñoEfectos del acceso a la memoriaAnálisis asintótico

2 ParalelismoDefinicionesEjemplo : Números primos

3 Tarea

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 3 / 35

Page 4: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

FLOPSFLoating point Operations Per Second, es una medida del desempeñode una computadura, usada especialmente en el área de cómputocientífico donde se requieren de muchos cálculos de punto flotante.Similar a instrucciones por segundo (MIPS). La S significa segundo, aveces se considera FLOPS como plural y/o singular.

FLOPAlgunas veces se usa FLOP como una abreviación de Floating-pointOPeration y es una cuenta de las operaciones de punto flotanterequeridas por un algoritmo. En este contexto FLOPS es el plural y nouna medida de velocidad. Para distinguir usaremos FLOP’s comoplural de FLOP.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 4 / 35

Page 5: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Desempeño o Rendimiento (Performance)El desempeño (de punto flotante) de un código computacional es elnúmero de operaciones de punto flotante que puede ejecutar en unaunidad de tiempo. Se usan FLOPS para medir dicho desempeño.

Cálculo de π

π

4= 1− 1

3+

15− 1

7+

19− 1

11+

113− 1

15Esta serie se puede escribir como:

A =N∑

i=1

ai

El cálculo de A requiere N − 1 sumas y N + 1 referencias a memoria.Si el cálculo toma TN segundos para un ciero código entonces eldesempeño es (N − 1)/TN FLOPS.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 5 / 35

Page 6: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Es importante conocer la precisión con la que se mide el tiempoen una computadora.

Tiempo de ejecuciónTiempo que transcurre desde que se lanza una tarea hasta que éstafinaliza.

Tiempo de CPUTiempo durante el cual la tarea se ejecuta en un procesador.

I Tiempo de usuario: El CPU se dedica a la ejecución de las operacionesdel programa.

I Tiempo de sistema: El CPU se dedica a las tareas que el sistemaoperativo debe realizar para se ejecute el programa.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 6 / 35

Page 7: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Dado que la precisión del reloj de una computadora es finita, lasmediciones del tiempo pueden ser confusas.En el ejemplo de la suma es posible obtener TN = 0 para N < Ncdonde Nc depende de la resolución con que se mide el tiempo.Para obtener una medida razonable en cálculos cortos, serecomienda:

I hacer muchas repeticiones de tal manera que el tiempo sea losuficientemente grande comparado con el tiempo medible máspequeño y

I dividir el resultado por el número de repeticiones.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 7 / 35

Page 8: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Se puede definir un principio de incertidumbre en cómputo: unono puede medir el desempeño con precisión arbitraria de unacomputadora, dado que usualmente se usa la mismacomputadora para hacer esta medición.La introducción de código para analizar el tiempo altera el tiempoque se requiere para completar la tarea que se está midiendo.En un programa en paralelo es importante asignar costo entiempo a secciones del programa, las cuales son importantes enla solución de un problema dado.Es importante separar los costos de cálculo de los de acceso adatos remotos (I/O).

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 8 / 35

Page 9: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

1 Análisis de desempeñoPerformanceMidiendo el desempeñoEfectos del acceso a la memoriaAnálisis asintótico

2 ParalelismoDefinicionesEjemplo : Números primos

3 Tarea

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 9 / 35

Page 10: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Performance analysis o profilingEs la investigación del comportamiento de un programa usandoinformación obtenida conforme el programa se ejecuta.

Objetivos del análisis de desempeño:I Determinar las secciones que se deben optimizar en un programa.I Entender las razones por las que dichas secciones no son

eficientes en una primera instancia.I Entender las razones de por que no se alcanza el rendimiento pico.

Maneras de hacer este análisis:I El programador agrega instrucciones para calcular tiempos de

ciertas partes del código.I Agregar banderas de compilación (gcc -pg→ gprof).I Otras (Binary translation, Runtime instrumentation, Runtime

injection).

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 10 / 35

Page 11: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

BenchmarkEs un punto de referencia que se usa para medir y comparar unacosa con otra.En cómputo, es la acción de ejecutar un programa, un conjuntode programas u otras operaciones para obtener el desempeño deun cierto hardware.Proveen de métodos para comparar el desempeño de varios tiposde hardware.

LINPACKEs una colección de subrutinas en Fortran que analizan yresuelven problemas de mínimos cuadrados y sistemas deecuaciones lineales. Fue diseñado para usarse ensupercomputadoras en los 70s y 80s, por Jack Dongarra, JimBunch, Cleve Moler, y Pete Stewart. En la práctica se usaLAPACK.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 11 / 35

Page 12: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

LINPACK hace uso de BLAS para operaciones básicas entrematrices y vectores.Los benchmarks de LINPACK son una medida del poder decálculo de punto flotante de una computadora, el resultado se daen FLOPS.En sistemas grandes se usa la version High-PerformanceLINPACK (HPL).

Rmax

Desempeño máximo de punto flotante alcanzado con los benchmarksde LINPACK.

Rpeak

Desempeño máximo de punto flotante que teóricamente unacomputadora puede alcanzar. Cualquier código ejecutado en dichacomputadora no puede sobrepasar esta cota.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 12 / 35

Page 13: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Standard Performance Evaluation Corporation (SPEC) es ungrupo formado para establecer, mantener y promocionaer unconjunto de benchmarks relevantes y estandarizados que sepueden usar para medir el desempeño de arquitecturas decómputo actuales.SPEC desarrolla benchmarks, revisa y publica resultadosobtenidos por sus miembros.

I CPUI Graphics/WorkstationsI MPI/OMPI Java Client/ServerI Mail ServersI Network File SystemI PowerI SIP (Session Initiation Protocol)I VirtualizationI Web Servers

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 13 / 35

Page 14: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

1 Análisis de desempeñoPerformanceMidiendo el desempeñoEfectos del acceso a la memoriaAnálisis asintótico

2 ParalelismoDefinicionesEjemplo : Números primos

3 Tarea

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 14 / 35

Page 15: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

ρWM

La razón ρWM = trabajo(Work) / Memoria de un algoritmo es el númerode operaciones de punto flotante dividido por el número de localidadesde memoria a las que se hace referencia.

En ρWM el denominador cuenta el número de localidades dememoria usadas en el algoritmo, L, y no el número de referenciasa memoria, R, realizadas.

Loopfor(i=0; i<1000; i++)

j = i;=⇒ R >> L

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 15 / 35

Page 16: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Ejercicio 3.1Encontrar ρWM para la suma de N términos:

A =N∑

i=1

ai

Esta suma requiere (N − 1) sumas y (N + 1) localidades de memoria:

ρWM =(N − 1)

(N + 1)≈ 1 para N grande

Comúnmente ρWM crece conforme el tamaño de los datos crece.Nuestro objetivo será encontrar y diseñar algoritmos con ρWM

grande.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 16 / 35

Page 17: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

El desempeño de una computadora depende de su habilidad paraacceder a la memoria.

µ (ancho de banda del bus de memoria)La velocidad máxima de acceso a la memoria µ, se conoce comoancho de banda de acceso a la memoria y mide el número depalabras obtenidas por unidad de tiempo.

TheoremSupongamos que un algoritmo tiene una cierta ρWM y es ejecutado enuna computadora con una cierta µ. Entonces el desempeño máximoque se puede obtener es µρWM FLOPS.

Este teorema es válido para computadoras tipo von Neumann.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 17 / 35

Page 18: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Ejercicio 3.2Considere el cálculo del producto de una matriz cuadrada A = (aij)por un vector V = (vj):

(AV)i =n∑

j=1

aijvj para i = 1, ...,n

Calcular ρWM .Esta operación requiere de: 2n2 − n FLOP’s.Localidades de memoria: n2 + 2nPor lo tanto:

ρWM =2n2 − nn2 + 2n

≈ 2

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 18 / 35

Page 19: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

1 Análisis de desempeñoPerformanceMidiendo el desempeñoEfectos del acceso a la memoriaAnálisis asintótico

2 ParalelismoDefinicionesEjemplo : Números primos

3 Tarea

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 19 / 35

Page 20: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Cuando se mide el desempeño, se busca el orden de crecimientode una función, excluyendo constantes y términos de bajo orden.Considerando la función f (n), nos preocupamos por sucrecimiento asintótico en el límite cuando n→∞Para estos propósitos se usa la notación O.

Notación OPara una función f (n) la cota asintótica superior O(g(n)) implica queexiste una constante c1 que satisface 0 < c1 <∞ y un entero n0 ≥ 0tal que f (n) ≤ c1g(n) para toda n ≥ n0. Se dice que f (n) = O(g(n))

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 20 / 35

Page 21: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Ejercicio 3.3

Mostrar que la cota superior de la función an2 + bn es O(n2), de talmanera que existe una constante c1 tal que se satisface ladesigualdad an2 + bn ≤ c1n2. ¿Cual es el valor mínimo de n para queesto se cumpla?.

Ejercicio 3.4Escribir ρWM del ejercicio 3.1 en términos la notación O.

Ejercicio 3.5Suponga que se tienen 2 algoritmos para resolver un problema: elalgoritmo F cuyo tiempo de ejecución es f (n) = an2 = O(n2) y elalgoritmo G cuyo tiempo es g(n) = bn = O(n). ¿Bajo que condicionesse tiene que f (n) < g(n)?.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 21 / 35

Page 22: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

1 Análisis de desempeñoPerformanceMidiendo el desempeñoEfectos del acceso a la memoriaAnálisis asintótico

2 ParalelismoDefinicionesEjemplo : Números primos

3 Tarea

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 22 / 35

Page 23: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Suma de N números : A =∑N

i=1 ai

Es un tipo de operación conocida como reducción (reduction):reduce un vector a un escalar.Supóngase que N es un múltiplo entero de P, es decir: N = kP.Entonces se puede dividir la operación de reducción en P sumasparciales:

Aj =

jk∑i=(j−1)k+1

ai para j = 1, ...,P.

Entonces:

Aj =P∑

i=1

Ai

Se han creado P tareas independientes.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 23 / 35

Page 24: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

TareaEs una parte del cálculo que puede realizarse independiente de otraspartes del mismo cálculo. Una tarea es algo que puede ser cálculadopor un procedimiento (subrutina, función, método) separado delproceso principal (main).

La razón k = N/P se conoce como granularidad.

GranularidadLa granularidad de un conjunto de tareas paralelas es la cantidad detrabajo (de la tarea más pequeña) que se puede hacer de formaindependiente de otros cálculos.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 24 / 35

Page 25: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

La paralelización de un código consiste en descubrir y/o crearcálculos que se pueden realizar de manera independiente con unmínimo de comunicación.

Paralelismo trivial (embarrassingly parallel)Tareas que se pueden realizar de manera independiente de cualquierotro cálculo, sin ninguna comunicación entre ellas.

La mayoría de los código científicos consisten de ciclos (loop),por lo que es importante el concepto de espacio de iteración.

Espacio de iteración (iteration space)Es un subconjunto del producto Cartesiano de los arreglos de enterosque contienen todos los posibles valores de los índices de los ciclos.La dimensión de este producto es el número de ciclos anidados.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 25 / 35

Page 26: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Descomposición del espacio de iteraciónConsiste de una colección de subconjuntos disjuntos del espacio deiteración cuya unión es todo el espacio de iteración.

Paralelismo de datosConsiste en descomponer un conjunto grande de datos ensubconjuntos y y realizar la misma tarea (o una similar) sobre cadasubconjunto.

El punto clave es la homogeneidad de las tareas, lo cual permitedividir en formas arbitrarias los datos y aplicar el mismoprocedimiento.Cuando se trata de ciclos, en general cada tarea opera sobre unaporción del espacio de iteración, (loop parallelism).

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 26 / 35

Page 27: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Un requerimiento en la descomposición es que el trabajo estébalanceado entre las tareas, las cuales generalmente se llevan acabo en procesadores independientes.Si el trabajo no está igualmente distribuido, un procesador puedetardar más que otro.

Balance de cargaSupongamos que un conjunto de tareas paralelas se ejecutan en untiempo ti para i = 1, ...,P. El tiempo promedio de ejecución es:

ave{ti : 1 ≤ i ≤ P} =1P

∑1≤i≤P

ti .

El balance de carga β de este conjunto de tareas es:

β =ave{ti : 1 ≤ i ≤ P}max{ti : 1 ≤ i ≤ P}

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 27 / 35

Page 28: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

En el caso ideal se tiene β = 1.Cuando β difiere de 1, podemos medir la diferencia entre la tareamas lenta de el promedio:

1− β =max{ti : 1 ≤ i ≤ P} − ave{ti : 1 ≤ i ≤ P}

max{ti : 1 ≤ i ≤ P}

Si esta diferencia es despreciable, entonces se dice que elconjunto de tareas está balanceado.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 28 / 35

Page 29: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

1 Análisis de desempeñoPerformanceMidiendo el desempeñoEfectos del acceso a la memoriaAnálisis asintótico

2 ParalelismoDefinicionesEjemplo : Números primos

3 Tarea

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 29 / 35

Page 30: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Para un entero k se define el conjunto S(k) de números primosmenores que k (S(16) = {2,3,5,7,11,13})Podemos checar la “primalidad” de enteros menores que k2

probando si hay divisores de n en S(k), donde k ≤ n ≤ k2.Si n = j ∗ i < k2 entonces ya sea i o j debe ser menor que k .

For n = k , k + 1, ..., k2 − 1For π ∈ S(k)

I f (π d i v i d e a n ) E x i tEndI f ( se completa e l c i c l o )

Agregar n a S(k2)End

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 30 / 35

Page 31: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Observe que el espacio de iteración en este caso es unsubespacio del producto cartesiano y no se conoce de antemano.Los ciclos en el algoritmo anterior se pueden paralelizar(descomponer) de diferentes maneras:

I Dividir el ciclo sobre n en P diferentes tareas.I Dividir el ciclo sobre π en P diferentes tareas.

Strip or Slab decompositionUna descomposición de este tipo corresponde a la subdivisión de solouna de las dimensiones, usualmente en segmentos de igual longitud yque consiste de elementos contiguos en el espacio de iteración. Estocorresponde a subdividir uno de los ciclos anidados.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 31 / 35

Page 32: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Dividir el ciclo sobre n

b = (k2 − k)/PFor p = 1, ...,P

For n = k + (p − 1)b, ..., k + pbFor π ∈ S(k)

I f (π d i v i d e a n ) E x i tEndI f ( se completa e l c i c l o )

Agregar n a Sp(k2)End

EndCombinar : S(k2) = ∪P

p=1Sp(k2)

La variable p identifica el proceso o procesador.Sp(k2) son los primos encontrados por el procesador p.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 32 / 35

Page 33: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Dividir el ciclo sobre π

En este caso cada procesadorusa un conjunto de primos ensus pruebas, pero checa todoslos n ∈ [k , k2 − 1].Algunos n serán dividos pormás primos que en el casoanterior (más trabajoaritmético).Esto no implica que el tiempototal será mayor.Combinar :S(k2) = ∩P

p=1Sp(k2)

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 33 / 35

Page 34: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Tarea 1

1 Calcular ρW M para el producto de dos matrices de n × n. Escribir elresultado en notación O y explicar el resultado.

(AB)ij) =n∑

k=1

aijbkj para j = 1, ...,n

2 Escribir un programa para calcular el valor de pi usando la suma:

π =N∑

i=1

(−1)i+1/(2i − 1)

I Determinar el desempeño como función de N, escribirlo en notaciónO y explicar su resultado.

I Un modelo esperado para este cálculo es tN = a + bN. Usar sustiempos para estimar los valores de a y b. Graficar sus resultados.

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 34 / 35

Page 35: 03print.pdf

university-logo

Análisis de desempeño Paralelismo Tarea

Tarea 1

2 Escribir un programa para calcular primos usando el algoritmo vistoen clase.

I Comenzar con S(5) = {2,3}.I El programa debe determinar los primos en el intervalo [5,25].I Luego hacer k = 25 y calcular los primos en el intervalo [25,125].I Continuar con este proceso hasta una cota superior dada por el

usuario.I Medir tiempos y graficarlos. ¿Cual es el desempeño de su código ?

LMCS (UNAM) Comp. Científica en Paralelo IIMAS–Semestre 2009–II 35 / 35