Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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.
MEDIDAS DE PERFORMANCE
MEDIDAS DE PERFORMANCE
4.1: MODELO DE PERFORMANCE
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.
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.
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.
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)
1 P i
i
i
T = TPROC + TCOM + TIDLE
P i =1
i =1
i =1
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).
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.
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.
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.
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).
MEDIDAS DE PERFORMANCE
SPEEDUP
La situacin ideal es lograr el speedup lineal.
Al utilizar p procesadores obtener una mejora de factor p.
MEDIDAS DE PERFORMANCE
SPEEDUP
Speedup
5
lineal
sublineal
supralineal
Nmero de procesadores
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.
MEDIDAS DE PERFORMANCE
EFICIENCIA COMPUTACIONAL
La eficiencia computacional se define mediante:
EN = T1/(N
TN)
Es decir, EN = SN / N.
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.
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.
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.
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.
MEDIDAS DE PERFORMANCE
MEDIDAS DE PERFORMANCE
MEDIDAS DE PERFORMANCE
4.2: LEY DE AMDAHL
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
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).
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).
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.
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).
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.
MEDIDAS DE PERFORMANCE
TAREA
GRANULARIDAD
una instruccin
un proceso
Aumentar la granularidad:
Disminuye el overhead de control y comunicaciones.
Disminuye el grado de paralelismo.
COMPUTACIN DE ALTA PERFORMANCE 2010
MEDIDAS DE PERFORMANCE
Thoughput
(bit/s)
latencia
tiempo
MEDIDAS DE PERFORMANCE
MEDIDAS DE PERFORMANCE
MEDIDAS DE PERFORMANCE
4.3: SCHEDULING Y BALANCE DE CARGA
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.
MEDIDAS DE PERFORMANCE
SCHEDULING
El algoritmo de planificacin relaciona el algoritmo (grafo de
tareas) con el hardware disponible (procesador, tiempo).
tiempo
P1
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.
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.
MEDIDAS DE PERFORMANCE
BALANCE DE CARGA
poco cargadas
moderadamente cargada
red de comunicaciones
muy cargadas
moderadamente cargada
MEDIDAS DE PERFORMANCE
MEDIDAS DE PERFORMANCE
MEDIDAS DE PERFORMANCE
MEDIDAS DE PERFORMANCE
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.
MEDIDAS DE PERFORMANCE
MEDIDAS DE PERFORMANCE
MEDIDAS DE PERFORMANCE
MEDIDAS DE PERFORMANCE