Está en la página 1de 46

COMPUTACIN DE ALTA

PERFORMANCE
Curso 2010
Sergio Nesmachnow (sergion@fing.edu.uy)
Gerardo Ares (gares@fing.edu.uy)
Grupo de Procesamiento Paralelo Aplicado
Centro de Clculo
COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

TEMA 4
EVALUACIN DE DESEMPEO

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

CONTENIDO
TEMA 4: EVALUACIN DE DESEMPEO
1.
2.
3.
4.

Modelo de performance.
Medidas: speedup, eficiencia, paralelicibilidad.
Ley de Amdahl.
Scheduling y balance de cargas.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

MEDIDAS DE PERFORMANCE
4.1: MODELO DE PERFORMANCE

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

EVALUACIN DE DESEMPEO
Objetivos:
Estimacin de desempeo de algoritmos paralelos.
Comparacin con algoritmos seriales.
Factores intuitivos para evaluar la performance:
Tiempo de ejecucin.
Utilizacin de los recursos disponibles.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

EVALUACIN DE DESEMPEO
El desempeo es un concepto complejo y polifactico.
El tiempo de ejecucin es la medida tradicionalmente utilizada para
evaluar la eficiencia computacional de un programa.
El almacenamiento de datos en dispositivos y la transmisin de datos
entre procesos influyen en el tiempo de ejecucin de una aplicacin
paralela.
La utilizacin de recursos disponibles y la capacidad de utilizar mayor
poder de cmputo para resolver problemas ms complejos o de
mayor dimensin, son las caractersticas ms deseables para
aplicaciones paralelas.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

EVALUACIN DE DESEMPEO
TIEMPO DE EJECUCIN
El tiempo total de ejecucin se utiliza habitualmente como medida
del desempeo:
Es simple de medir.
Es til para evaluar el esfuerzo computacional requerido para resolver
un problema.

El modelo de performance que se utilizar en el curso considera


como medida fundamental el tiempo de ejecucin.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

MODELO DE PERFORMACE
Mtricas como funcin del tamao del problema (n), procesadores
disponibles (p), nmero de procesos (U), y otras variables
dependientes del algoritmo y/o de caractersticas del hardware
sobre el que se ejecuta.

T = f ( n, p, U , K)

Tiempo de ejecucin de un programa paralelo


Tiempo que transcurre entre el inicio de la ejecucin del primer proceso
hasta el fin de ejecucin del ltimo proceso.
Diferentes estados: procesamiento efectivo, comunicacin y ocioso.

T = TPROC + TCOM + TIDLE


p tareas ejecutando en p procesadores, tiempos del procesador i en la
etapa correspondiente (estadsticas sobre utilizacin de recursos).
P
P

1 P i
i
i
T = TPROC + TCOM + TIDLE
P i =1
i =1
i =1

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

TIEMPO DE EJECUCIN
El tiempo de cmputo depende de complejidad y dimensin del
problema, del nmero de tareas utilizadas y de las caractersticas de
los elementos de procesamiento (hardware, heterogeneidad, no
dedicacin).
El tiempo de comunicacin depende de localidad de procesos y datos
(comunicacin inter e intra-procesador, canal de comunicacin).
Costo de comunicacin interprocesador: tiempo necesario para el
establecimiento de la conexin (latencia) y tiempo de transferencia
de informacin (dado por ancho de banda del canal fsico).
Para enviar un mensaje de L bits, se requiere un tiempo

T = latencia + L . TTR
(siendo TTR el tiempo necesario para transferir un bit).

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

TIEMPO DE EJECUCIN
El tiempo en estado ocioso es consecuencia del no determinismo en
la ejecucin, minimizarlo debe ser un objetivo del diseo.
Motivos: ausencia de recursos de cmputo disponibles o ausencia de
datos sobre los cuales operar.
Soluciones: aplicar tcnicas de balance de carga para distribuir los
requerimientos de cmputo o redisear el programa para distribuir
los datos adecuadamente.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

MEJORA DE DESEMPEO
SPEEDUP
Es una medida de la mejora de rendimiento (performance) de una
aplicacin al aumentar la cantidad de procesadores (comparado con
el rendimiento al utilizar un solo procesador).

SPEEDUP ABSOLUTO SN = T0 / TN
Siendo:
T0 el tiempo del mejor algoritmo secuencial que resuelve el
problema (considerando el tiempo de ejecucin, o sea el algoritmo
ms rpido que lo resuelve).
TN el tiempo del algoritmo paralelo ejecutado sobre N procesadores.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

SPEEDUP
Siendo TK el tiempo total de ejecucin de una aplicacin utilizando
K procesadores.
Se define el SPEEDUP ALGORTMICO como

SN = T1 / TN
Siendo T1 el tiempo en un procesador (serial) y TN el tiempo paralelo.

El speedup algortmico es el ms utilizado frecuentemente en la


prctica para evaluar la mejora de desempeo (considerando el
tiempo de ejecucin) de programas paralelos.
El speedup absoluto es difcil de calcular, porque no es sencillo
conocer el mejor algoritmo serial que resuelve un problema
determinado.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

SPEEDUP
Al medir los tiempos de ejecucin, debe considerarse la configuracin
de la mquina paralela utilizada.
Comparacin justa:
Para calcular speedup absoluto utilizar el mejor algoritmo serial
disponible (o el mejor conocido, en caso de no existir una cota inferior
para su complejidad).
Debe analizarse el hardware disponible.
Coeficientes (pesos) asignados a los equipos en mquinas
heterogneas.
Tomar en cuenta el asincronismo: medidas estadsticas.
Existen algoritmos diseados para la comprobacin (benchmarks).

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

SPEEDUP
La situacin ideal es lograr el speedup lineal.
Al utilizar p procesadores obtener una mejora de factor p.

La realidad indica que es habitual obtener speedup sublineal.


Utilizar p procesadores no garantiza una mejora de factor p.
Causas: procesamiento no paralelizable, demoras en las
comunicaciones y sincronizaciones, tiempos ociosos, etc.

En ciertos casos es posible obtener valores de speedup superlineal.


Tomando partido de ciertas caractersticas especiales del problema o
del hardware disponible.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

SPEEDUP
Speedup
5

lineal
sublineal

supralineal

Nmero de procesadores

Speedup lineal, sublineal y supralineal.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

SPEEDUP
Motivos que impiden el crecimiento lineal del SPEEDUP:
Demoras introducidas por las comunicaciones.
Overhead en intercambio de datos.
Overhead en trabajo de sincronizacin.
Existencia de tareas no paralelizables.
Cuellos de botella en el acceso a recursos de hardware
necesarios.
Los factores mencionados incluso pueden producir que el uso de
ms procesadores sea contraproducente para la performance de
la aplicacin.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

EFICIENCIA COMPUTACIONAL
La eficiencia computacional se define mediante:

EN = T1/(N
TN)
Es decir, EN = SN / N.

Corresponde a un valor normalizado del speedup (entre 0 y 1),


respecto a la cantidad de procesadores utilizados.
Es una medida relativa que permite la comparacin de desempeo
en diferentes entornos de computacin paralela.
Valores de eficiencia cercanos a uno identificarn situaciones casi
ideales de mejora de performance.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

PARALELICIBILIDAD
La paralelicibilidad de un algoritmo paralelo se define como:

P = TP1 / TPN
Siendo:
TP1 el tiempo que toma a un computador paralelo
ejecutar un algoritmo paralelo en un nico procesador.
TPN el tiempo que toma al mismo computador paralelo
ejecutar el mismo algoritmo paralelo en N procesadores.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

PARALELICIBILIDAD
Diferencias con el speedup
El speedup considera el tiempo de un algoritmo secuencial (el mejor
existente o conocido) para la comparacin.
La paralelicibilidad toma en cuenta el tiempo de ejecucin de un
algoritmo paralelo en un nico procesador.
El speedup evala la mejora de desempeo al utilizar tcnicas de
programacin paralela.
La paralelicibilidad da una medida de cun paralelizable o escalable
resulta el algoritmo paralelo utilizado.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

ESCALABILIDAD
Capacidad de mejorar el desempeo al utilizar recursos de
cmputo adicionales para la ejecucin de aplicaciones
paralelas.
Eventualmente, para resolver instancias ms complejas de un
determinado problema.

Constituye una de las principales caractersticas deseables de


los algoritmos paralelos y distribuidos.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

EJEMPLO
Si el mejor algoritmo secuencial para resolver un problema requiere 8
unidades de tiempo para ejecutar en uno de los nodos de un
computador paralelo homogneo y 2 unidades al utilizar 5 procesadores.
El speedup obtenido al paralelizar la solucin es:
S5 = T1 / T5 = 8 / 2 = 4.
La eficiencia toma en cuenta la cantidad de procesadores utilizados:
E5 = S5 / 5 = 4 / 5 = 0,8.
Corresponde a un speedup sublineal.

La paralelicibilidad toma en cuenta al mismo algoritmo paralelo para la


medicin de tiempos. Suponiendo que el algoritmo paralelo toma
ventajas de la estructura del problema y ejecuta en un nico procesador
en 6 unidades de tiempo, se tendr :
P5 = TP1 / TP5 = 6 / 2 = 3.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

OTROS MODELOS DE DESEMPEO


EVALUANDO la UTILIZACIN de RECURSOS DISPONIBLES
UTILIZACIN
Mide el porcentaje de tiempo que un procesador es utilizado
durante la ejecucin de una aplicacin paralela.
USO = tiempo ocupado/ (tiempo ocioso + tiempo ocupado)

Lo ideal es mantener valores equitativos de utilizacin entre


todos los procesadores de una mquina paralela.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

MEDIDAS DE PERFORMANCE
4.2: LEY DE AMDAHL

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

LEY DE AMDAHL
LEY DE AMDAHL (1967):
La parte serial de un programa determina una cota
inferior para el tiempo de ejecucin, an cuando se
utilicen al mximo tcnicas de paralelismo.
Gene Amdahl

Ejecucin en un
procesador

TS

Ejecucin en un
multiprocesador

TS

TP

TP/n

tiempo

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

LEY DE AMDAHL
Sea P la fraccin de un programa que es paralelizable, y sea S = 1 P
la parte secuencial restante, entonces el speedup al trabajar con N
procesadores estar acotado por:
SN 1 / (S + P / N)
El valor asinttico para SN es 1/S.
Ejemplo:
Si solo el 50% de un programa es paralelizable, S = P = , se tiene que
SN = 2 / (1 + 1/N) que ser 2 (valor asinttico), independientemente
de N (cantidad de procesadores utilizados).

Visin sombra del procesamiento paralelo (conjetura de Minsky)


La cota inferior del tiempo de ejecucin de un programa paralelo es
O(log2 N), y funciona como valor asinttico para la mejora de tiempos
de ejecucin.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

LEY DE AMDAHL
UNA VISIN MS OPTIMISTA
Asumiendo que:
el tamao (o la complejidad) del problema (n) crece con el numero de
procesadores a usar.
la parte secuencial del programa (Ts) se mantiene constante.
la parte paralela del programa (Tp) crece segn el tamao del problema
(n Tp, n2 Tp, etc).

Entonces las fracciones de tiempo de ejecucin de las partes


secuencial y paralela del programa resultan:
S = Ts / ( Ts + n Tp)
P = n Tp / ( Ts + n Tp)

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

LEY DE
LEY
DE AMDAHL
AMDAHL
UNA
VISIN MSms
OPTIMISTA
Una
interpretacin
optimista
Del razonamiento anterior es posible deducir que:
SN N ( 1 + n u ) / ( N + n u )
siendo u = Tp/Ts.
Se concluye que dado un nmero de recursos de cmputo N,
existirn problemas de complejidad n cuyas partes serial y paralela
cumplan que n u N y entonces la cota terica corresponde al
speedup lineal: SN N.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

LEY DE AMDAHL
ARGUMENTO DE GUSTAFFSON-BARSIS
La idea detrs del argumento optimista tiene el valor de tomar en
cuenta la COMPLEJIDAD de las tareas realizadas.
Habitualmente las tareas no paralelizables son de complejidad lineal
(O(n)), como las lecturas de datos de entrada, mientras que los
algoritmos paralelizables tienen una complejidad mayor.
Si se logra reducir el orden de complejidad del algoritmo mediante el
uso de mltiples procesadores, el speedup ideal sera O(n).
speedup = O(n)+O(n3) / (O(n)+O(n2))
cuyo valor asinttico es O(n) (
O(N))
Gustaffson (1988): Es posible alcanzar valores de speedup de O(N).

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

LEY DE AMDAHL
CONCLUSIN
CONCLUSIN de la LEY de AMDAHL:
La razn para utilizar un nmero mayor de procesadores debe
ser resolver problemas ms grandes o ms complejos, y no
para resolver ms rpido un problema de tamao fijo.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

FACTORES QUE AFECTAN EL DESEMPEO


GRANULARIDAD
Cantidad de trabajo
que realiza cada nodo

TAREA

GRANULARIDAD

operacin sobre bits

super fino (extremely fine grain)

una instruccin

grano fino (fine grain)

un proceso

grano grueso (large grain)

Aumentar la granularidad:
Disminuye el overhead de control y comunicaciones.
Disminuye el grado de paralelismo.
COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

FACTORES QUE AFECTAN EL DESEMPEO


LATENCIA
Bits
transferidos

Thoughput
(bit/s)
latencia
tiempo

Los tiempos de comunicacin entre procesadores dependen del


ancho de banda disponible y de la LATENCIA del canal.
Latencias altas implicarn utilizar alta granularidad (comunicaciones
menos frecuentes, mensajes mas largos, etc.).

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

DESEMPEO DE ALGORITMOS PARALELOS


El OBJETIVO del diseo de aplicaciones paralelas es lograr un
compromiso entre:
El grado de paralelismo obtenido.
El overhead introducido por las tareas de sincronizacin y
comunicacin.

Las tcnicas de scheduling y de balance de carga son tiles para


mejorar el desempeo de aplicaciones paralelas.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

MEDIDAS DE PERFORMANCE
4.3: SCHEDULING Y BALANCE DE CARGA

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

SCHEDULING (MAPEO)
Refiere a la etapa de asignacin de recursos a los mltiples
procesos que ejecutarn en paralelo.
El mapeo determina dnde y cundo se ejecutar una tarea.
Las dependencias entre tareas definen pautas para la asignacin.
Usualmente se utilizan tcnicas de investigacin operativa para
planificar la asignacin de recursos de modo de optimizar un
determinado criterio.
Tiempo total de ejecucin.
Utilizacin de los recursos.
Balance de cargas entre recursos.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

SCHEDULING
El algoritmo de planificacin relaciona el algoritmo (grafo de
tareas) con el hardware disponible (procesador, tiempo).
tiempo

P1

COMPUTACIN DE ALTA PERFORMANCE 2010

P2

P3 procesador

MEDIDAS DE PERFORMANCE

SCHEDULING
Debe tomarse en cuenta la topologa de la red, conjuntamente
con las dependencias de datos y las comunicaciones, de modo
de no afectar los costos de comunicaciones.
Aprovechar la localidad de datos.
Reducir las comunicaciones.

Estrategias
Procesos que pueden ejecutar concurrentemente se colocan en
procesadores diferentes.
Procesos que se comunican con alta frecuencia se colocan en el
mismo procesador, o en procesadores cercanos.

Existen mecanismos tericos de asignacin de recursos para los


diferentes modelos de descomposicin en tareas y
arquitecturas paralelas estudiadas.
Ejemplo: los grafos de algoritmos (rboles, anillos, mallas) sobre
mallas 2D, hipercubos, etc.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

BALANCE DE CARGA
La distribucin de la carga de trabajo es un factor relevante
sobre el desempeo de aplicaciones paralelas y distribuidas
ejecutando en un computador paralelo.
El objetivo consiste en evitar que la performance global del
sistema se degrade a causa de la demora en tareas individuales.
Muy importante en entornos de cmputo no dedicados.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

BALANCE DE CARGA
poco cargadas

moderadamente cargada

red de comunicaciones

muy cargadas

moderadamente cargada

Situacin en un ambiente donde no se aplican tcnicas de balance de carga.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

TCNICAS DE BALANCE DE CARGA


Tambin conocidas como tcnicas de despacho.
Clasificacin:
Tcnicas estticas (planificacin).
Tcnicas dinmicas (al momento del despacho).
Tcnicas adaptativas.
Principales criterios utilizados:
Mantener los procesadores ocupados la mayor parte del
tiempo.
Minimizar las comunicaciones entre procesos.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

TCNICAS DE DESPACHO ESTTICAS


Se toman decisiones tempranas.
Se utilizan tcnicas de planificacin de investigacin operativa.
Requieren una estimacin (precisa) del tiempo de ejecucin de
cada tarea en cada recurso de cmputo.
La asignacin inicial se mantiene, independientemente de lo que
suceda.
Efectiva en ambientes de redes poco cargadas.
Falla en ambientes compartidos de carga variable.

NO TIENEN EN CUENTA FLUCTUACIONES


DE CARGA DE LA RED

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

TCNICAS DE DESPACHO DINMICAS


Involucran estrategias para determinar el procesador que se asigna
a una tarea durante la ejecucin de la aplicacin.
Usuales en modelo maestro-esclavo.
La asignacin se realiza en el momento de creacin de una nueva
tarea.
Usualmente consideran la situacin en el instante del despacho
exclusivamente.
Efectivas en ambientes compartidos de carga variable.

TRATAN DE APROVECHAR LAS FLUCTUACIONES


DE CARGA DE LA RED

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

TCNICAS DE DESPACHO ADAPTATIVAS


Realizan el despacho de acuerdo al estado actual de la red.
Pueden incorporar herramientas de prediccin del futuro.
Utilizan tcnicas de migracin de procesos como mecanismo de
eficiencia y para proveer tolerancia a fallos.

APROVECHAN COMPLETAMENTE LAS FLUCTUACIONES


DE CARGA DE LA RED

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

PARMETROS RELEVANTES EN LA
DETERMINACIN DE LA CARGA
Consumo de CPU
Porcentaje de uso u operaciones/segundo.

Uso de disco
Bloques transferidos del controlador al dispositivo.

Trfico de red
Paquetes transmitidos y recibidos.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

PROYECTOS DESARROLLADOS EN FING


Despacho mejorado de clculo cientfico distribuido en redes de
computadoras no dedicadas usando PVM.
Proyecto CSIC realizado en el CeCal (19971999).
Utilizacin de informacin histrica para predecir la carga de la red en
un futuro cercano.
Mtodos de prediccin:
Naive.
Mnimos Cuadrados.
Redes Neuronales.

Integracin a la biblioteca PVM.


Evaluacin de desempeo:
Mejora del 6%, correspondiente al 50% de la mejora ideal.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

PROYECTOS DESARROLLADOS EN FING


Algoritmos genticos incrementales
Proyecto realizado en el CeCal (2003).
Capacidad de utilizacin de entorno no dedicado.
Utilizacin de informacin del pasado para predecir la carga de la red
en un futuro cercano (mediante mnimos cuadrados).
Incorpor tcnicas de migracin de procesos.
Integracin a la biblioteca MALLBA (algoritmos evolutivos).
Evaluacin de desempeo

Permiti utilizar annimamente el entorno no dedicado del InCo.


Buenos resultados de eficiencia computacional.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

PROYECTOS DESARROLLADOS EN FING


Checkpoint y migracin de procesos en un ambiente de computacin
distribuido (CeCal, 1999).

Bajar a disco informacin de procesos (dumping).


Levantar proceso en equipo remoto.
Integracin a la biblioteca PVM.
Buenos resultados de eficiencia y utilizacin de equipamiento disponible.

Replicacin de carga en redes de computadoras (CeCal, 1998).


Replicar una serie temporal con informacin de carga de N estaciones de
trabajo conectadas en red.
til para experimentos de evaluacin de performance.
Utilizado en el proyecto Despacho mejorado de clculo cientfico
distribuido en redes de computadoras no dedicadas usando PVM.

COMPUTACIN DE ALTA PERFORMANCE 2010

MEDIDAS DE PERFORMANCE

También podría gustarte