DesempeñO

45 %
55 %
Information about DesempeñO

Published on August 5, 2007

Author: stefanosalvatori

Source: slideshare.net

Desempeño Cecilia Hernández

Desempeño en un sistema computacional Factores? Tecnología Velocidad a nivel de circuitos, reloj del sistema, buses, etc Proceso, cuántos transistores en un chip Organización Tipo de procesador (RISC, CISC) Microarquitectura del procesador Ejemplo: Ejecución paralela de instrucciones en la CPU Jerarquía de Memoria Ejemplo: Memorias Cache, Memoria Principal Tipos de dispositivos E/S Ejemplo: Discos, tarjetas de red, etc Número de procesadores en el sistema Software Sistemas operativos, compiladores, drivers, bases de datos

Factores?

Tecnología

Velocidad a nivel de circuitos, reloj del sistema, buses, etc

Proceso, cuántos transistores en un chip

Organización

Tipo de procesador (RISC, CISC)

Microarquitectura del procesador

Ejemplo: Ejecución paralela de instrucciones en la CPU

Jerarquía de Memoria

Ejemplo: Memorias Cache, Memoria Principal

Tipos de dispositivos E/S

Ejemplo: Discos, tarjetas de red, etc

Número de procesadores en el sistema

Software

Sistemas operativos, compiladores, drivers, bases de datos

Tecnología Evoluciona rápidamente Ley de Moore Número de transistores por pulgada cuadrada se duplica cada 18 meses Velocidad del reloj aumenta ~30% cada año Capacidad de memoria aumenta ~60% al año Capacidad de almacenamiento en disco aumenta ~60% al año Sin embargo cada vez se hace más grande la brecha entre la velocidad de reloj y la velocidad de acceso a memoria

Evoluciona rápidamente

Ley de Moore

Número de transistores por pulgada cuadrada se duplica cada 18 meses

Velocidad del reloj aumenta ~30% cada año

Capacidad de memoria aumenta ~60% al año

Capacidad de almacenamiento en disco aumenta ~60% al año

Sin embargo cada vez se hace más grande la brecha entre la velocidad de reloj y la velocidad de acceso a memoria

Referencia: Intel 2005 Tendencia en tecnología

Referencia: Intel 2005

Brecha entre CPU y memoria 10 100 1000 1 89 91 93 95 97 99 01 x x x x x x o o o o o 386 Pentium Pentium Pro Pentium III Pentium IV velocidad de CPU (100x en 10 años) brecha de memoria velocidad de memoria RAM (10x en 8 años)

Buenas métricas de desempeño Tiempo de ejecución (o tiempo de respuesta) Tiempo requerido para ejecutar un programa o un conjunto de programas (suite) de principio a fin Benchmarks (suite de programas destinados a integrar programas con operaciones numéricas o científicos, interfaces gráficas, multimedia, aplicaciones de escritorio,etc) Tiempo de ejecución de proceso compuesta por user CPU time (tiempo de CPU ejecutando instrucciones de proceso) y system CPU time (tiempo usado por sistema para realizar tareas en favor de proceso de usuario) Elapsed Time : tiempo de respuesta que experimenta el usuario, incluye tiempo de sistema y tiempo que espera proceso en colas Productividad (throughput) Cantidad de trabajo por unidad de tiempo Mide utilización de recursos Se usa cuando múltiples usuarios ejecutan una aplicación, bases de datos, servidores webs, etc

Tiempo de ejecución (o tiempo de respuesta)

Tiempo requerido para ejecutar un programa o un conjunto de programas (suite) de principio a fin

Benchmarks (suite de programas destinados a integrar programas con operaciones numéricas o científicos, interfaces gráficas, multimedia, aplicaciones de escritorio,etc)

Tiempo de ejecución de proceso compuesta por user CPU time (tiempo de CPU ejecutando instrucciones de proceso) y system CPU time (tiempo usado por sistema para realizar tareas en favor de proceso de usuario)

Elapsed Time : tiempo de respuesta que experimenta el usuario, incluye tiempo de sistema y tiempo que espera proceso en colas

Productividad (throughput)

Cantidad de trabajo por unidad de tiempo

Mide utilización de recursos

Se usa cuando múltiples usuarios ejecutan una aplicación, bases de datos, servidores webs, etc

Malas métricas de desempeño Velocidad de reloj Ej. Pentium 4 versus Pentium-M Índices de medición de desempeño máximo Millones de instrucciones por segundo (MIPS) Millones de instrucciones de punto flotante por segundo (MFLOPS) Rara vez se alcanzan en programas reales Programas sintéticos de evaluación Pequeños programas con una combinación de instrucciones “representativa” Fácil optimizar CPU o compilador para la métrica Optimización no se traslada a programas reales

Velocidad de reloj

Ej. Pentium 4 versus Pentium-M

Índices de medición de desempeño máximo

Millones de instrucciones por segundo (MIPS)

Millones de instrucciones de punto flotante por segundo (MFLOPS)

Rara vez se alcanzan en programas reales

Programas sintéticos de evaluación

Pequeños programas con una combinación de instrucciones “representativa”

Fácil optimizar CPU o compilador para la métrica

Optimización no se traslada a programas reales

Tiempo de ejecución de la CPU Tiempo que la CPU demora en ejecutar un programa No incluye tiempo de espera introducido por SO o E/S Incluye tiempo en ejecutar instrucciones, incluyendo espera por acceso a memoria Desempeño se define inversamente al tiempo de ejecución Desempeño A= 1/(Tpo ejecución A) Un procesador A tiene mayor desempeño que un procesador B si Tpo ejecucion A < Tpo ejecución B Desempeños relativos Desempeño A/ Desempeño B = Tpo ejecución B/ Tpo Ejecución A

Tiempo que la CPU demora en ejecutar un programa

No incluye tiempo de espera introducido por SO o E/S

Incluye tiempo en ejecutar instrucciones, incluyendo espera por acceso a memoria

Desempeño se define inversamente al tiempo de ejecución

Desempeño A= 1/(Tpo ejecución A)

Un procesador A tiene mayor desempeño que un procesador B si

Tpo ejecucion A < Tpo ejecución B

Desempeños relativos

Desempeño A/ Desempeño B = Tpo ejecución B/ Tpo Ejecución A

Definición tiempo de ejecución Tpo de ejecución = #ciclos_reloj * tpo_ciclo_reloj Tpo_ciclo_reloj del procesador depende del procesador # ciclos de reloj depende del programa Por lo tanto, tiempo de ejecución depende del programa Normalmente tpo de ciclo de un procesador está dado en GHz, 1 GHz, medida de frecuencia Frecuencia = 1/tpo ciclo reloj Tpo ciclo reloj = 1/10exp9 = 1ns Luego, una definición alternativa de tiempo de ejecución es en base a la frecuencia Tpo de ejecución = #ciclos_reloj / frecuencia_reloj

Tpo de ejecución = #ciclos_reloj * tpo_ciclo_reloj

Tpo_ciclo_reloj del procesador depende del procesador

# ciclos de reloj depende del programa

Por lo tanto, tiempo de ejecución depende del programa

Normalmente tpo de ciclo de un procesador está dado en GHz,

1 GHz, medida de frecuencia

Frecuencia = 1/tpo ciclo reloj

Tpo ciclo reloj = 1/10exp9 = 1ns

Luego, una definición alternativa de tiempo de ejecución es en base a la frecuencia

Tpo de ejecución = #ciclos_reloj / frecuencia_reloj

CPI: Ciclos por instrucción Definición: número promedio de ciclos de reloj por instrucción: representa tiempo promedio de ejecución de una instrucción (en ciclos de reloj) CPI = #ciclos_reloj / #instrucciones #ciclos_reloj = CPI * #instrucciones #ciclos_reloj = CPI * #instrucciones … amplificar por tpo_ciclo Tpo ejecución CPU = #instruciones*CPI*tpo_ciclo_reloj Arquitectos de computadores tratan de disminuir CPI o maximizar inverso (IPC, número de instrucciones por ciclo) CPI aisladamente no es métrica de desempeño Es dependiente del programa o compilador Bueno como método de comparación midiendo diferencias en arquitectura con los mismos programas y compiladores CPI condensa información de ISA, implementación y programa medido CPI es útil para comparar el desempeño de dos máquinas con la misma ISA ejecutando el mismo programa

Definición: número promedio de ciclos de reloj por instrucción: representa tiempo promedio de ejecución de una instrucción (en ciclos de reloj)

CPI = #ciclos_reloj / #instrucciones

#ciclos_reloj = CPI * #instrucciones

#ciclos_reloj = CPI * #instrucciones … amplificar por tpo_ciclo

Tpo ejecución CPU = #instruciones*CPI*tpo_ciclo_reloj

Arquitectos de computadores tratan de disminuir CPI o maximizar inverso (IPC, número de instrucciones por ciclo)

CPI aisladamente no es métrica de desempeño

Es dependiente del programa o compilador

Bueno como método de comparación midiendo diferencias en arquitectura con los mismos programas y compiladores

CPI condensa información de ISA, implementación y programa medido

CPI es útil para comparar el desempeño de dos máquinas con la misma ISA ejecutando el mismo programa

Cálculo de CPI Si conocemos el número de ciclos para la ejecución de cada tipo o clase de instrucción y sabemos composición del programa (mezcla de instrucciones) f i = frecuencia relativa de ejecución de tipo i CPI i = CPI de instrucción de tipo i ¿Cómo obtener esta información? Simuladores Profilers Contadores hardware Incluídos en procesadores modernos, aunque funcionalidad es limitada

Si conocemos el número de ciclos para la ejecución de cada tipo o clase de instrucción y sabemos composición del programa (mezcla de instrucciones)

f i = frecuencia relativa de ejecución de tipo i

CPI i = CPI de instrucción de tipo i

¿Cómo obtener esta información?

Simuladores

Profilers

Contadores hardware

Incluídos en procesadores modernos, aunque funcionalidad es limitada

Como medir el CPI promedio Tpo ejecución CPU = #instruciones*CPI*tpo_ciclo_reloj Contar instrucciones ejecutadas en cada clase Por ejemplo, de sus programas escritos en lenguaje ensamblador En tiempo de ejecución contar las instrucciones de máquina para cada clase en el simulador SPIM y luego calcular #instrucciones totales y frecuencia por clase En un programa escrito en alto nivel Usar un profiler (en Linux gprof) Compilar con opción –pg (g++ -o ejemplo ejemplo.c –pg) Ejecutar aplicación, se genera gmon.out Ejecutar gprof con gmon.out como entrada y genera Gprof ejemplo gmon.out > profile_ejemplo Descubrir las porciones de código mas usadas e instrumentarlas

Tpo ejecución CPU = #instruciones*CPI*tpo_ciclo_reloj

Contar instrucciones ejecutadas en cada clase

Por ejemplo, de sus programas escritos en lenguaje ensamblador

En tiempo de ejecución contar las instrucciones de máquina para cada clase en el simulador SPIM y luego calcular #instrucciones totales y frecuencia por clase

En un programa escrito en alto nivel

Usar un profiler (en Linux gprof)

Compilar con opción –pg (g++ -o ejemplo ejemplo.c –pg)

Ejecutar aplicación, se genera gmon.out

Ejecutar gprof con gmon.out como entrada y genera

Gprof ejemplo gmon.out > profile_ejemplo

Descubrir las porciones de código mas usadas e instrumentarlas

Ejemplo 5 1 2 2 2 multiplicación ALU load store branch

Ejemplo ¿Cómo se gasta el tiempo en la ejecución del programa? Asumir ejecución de 100 instrucciones

¿Cómo se gasta el tiempo en la ejecución del programa?

Asumir ejecución de 100 instrucciones

Otro ejemplo CPI = 0.5+0.4+0.2+0.4 CPI = 1.5 Mejora en el sistema de memoria reduce tiempo de ejecución de load y store a la mitad ¿Cuál es el nuevo CPI? CPI = 0.5+0.2+0.1+0.4 CPI = 1.2 27% 0.4 2 20% Branch 13% 0.2 2 10% Store 27% 0.4 2 20% Load 33% 0.5 1 50% ALU %Tiempo CPI i * f Ciclos Frecuencia Operación 33% 0.4 2 20% Branch 8% 0.1 1 10% Store 17% 0.2 1 20% Load 42% 0.5 1 50% ALU %Tiempo CPI i * f Ciclos Frecuencia Operación

Aceleración (speedup) Razón entre el desempeño de dos sistemas Desempeño = 1/(tiempo de ejecución) Aceleración al agregar una mejora M: Si programa, ISA, reloj no cambian Ej. En ejemplo anterior, optimización de load/store Mejora de 25% en el desempeño

Razón entre el desempeño de dos sistemas

Desempeño = 1/(tiempo de ejecución)

Aceleración al agregar una mejora M:

Si programa, ISA, reloj no cambian

Ej. En ejemplo anterior, optimización de load/store

Ley de Amdahl Predice mejora en desempeño global producto de una optimización local Limitado por impacto de sección optimizada en tiempo de ejecución global F: fracción del tiempo de CPU (antes de la mejora) atribuido a sección a mejorar S: Aceleración conseguida para la sección mejorada A mayor aceleración, menor impacto porcentual en tiempo de ejecución

Predice mejora en desempeño global producto de una optimización local

Limitado por impacto de sección optimizada en tiempo de ejecución global

F: fracción del tiempo de CPU (antes de la mejora) atribuido a sección a mejorar

S: Aceleración conseguida para la sección mejorada

A mayor aceleración, menor impacto porcentual en tiempo de ejecución

Ejemplo M: reducción de tiempo de ejecución de load y store a la mitad 27% 0.4 2 20% Branch 13% 0.2 2 10% Store 27% 0.4 2 20% Load 33% 0.5 1 50% ALU %Tiempo CPI * f Ciclos Frecuencia Operación

Ejemplo: Ley de Amdahl en acción Programa ocupa el 70% del tiempo ejecutando código fácilmente paralelizable, y un 30% en código completamente secuencial (no paralelizable). ¿Cúal es la aceleración al ejecutar este programa en un computador paralelo con 2, 3, 4 y 5 CPUs? ¿Cuál es la máxima aceleración posible de alcanzar a través de paralelismo? 3.3 2.3 2.1 1.85 1.54 S inf. 5 4 3 2 N

Otras métricas de desempeño populares MIPS (millones de instrucciones por segundo) En forma aislada, MIPS no es mejor que CPI para comparar desempeño Depende del compilador y los programas No considera diferencias en ISA Puede llevar a comparaciones erróneas MFLOPS: millones de operaciones de punto flotante por segundo Similar a MIPS, pero utilizado para aplicaciones científicas Similares limitaciones: por ejemplo, no considera desempeño del sistema de memoria ni paralelismo disponible en la aplicación, ambos de gran importancia en aplicaciones científicas

MIPS (millones de instrucciones por segundo)

En forma aislada, MIPS no es mejor que CPI para comparar desempeño

Depende del compilador y los programas

No considera diferencias en ISA

Puede llevar a comparaciones erróneas

MFLOPS: millones de operaciones de punto flotante por segundo

Similar a MIPS, pero utilizado para aplicaciones científicas

Similares limitaciones: por ejemplo, no considera desempeño del sistema de memoria ni paralelismo disponible en la aplicación, ambos de gran importancia en aplicaciones científicas

Benchmarks A benchmark is &quot;a standard of measurement or evaluation&quot; (Webster’s II Dictionary). A computer benchmark is typically a computer program that performs a strictly defined set of operations - a workload - and returns some form of result - a metric - describing how the tested computer performed. Computer benchmark metrics usually measure speed : how fast was the workload completed; or throughput : how many workload units per unit time were completed. Running the same computer benchmark on multiple computers allows a comparison to be made. SPEC : www.spec.org The Standard Performance Evaluation Corporation (SPEC) is a non-profit corporation formed to establish, maintain and endorse a standardized set of relevant benchmarks that can be applied to the newest generation of high-performance computers. SPEC develops suites of benchmarks and also reviews and publishes submitted results from their member organizations and other benchmark licensees.

A benchmark is &quot;a standard of measurement or evaluation&quot; (Webster’s II Dictionary). A computer benchmark is typically a computer program that performs a strictly defined set of operations - a workload - and returns some form of result - a metric - describing how the tested computer performed. Computer benchmark metrics usually measure speed : how fast was the workload completed; or throughput : how many workload units per unit time were completed. Running the same computer benchmark on multiple computers allows a comparison to be made.

SPEC : www.spec.org

The Standard Performance Evaluation Corporation (SPEC) is a non-profit corporation formed to establish, maintain and endorse a standardized set of relevant benchmarks that can be applied to the newest generation of high-performance computers. SPEC develops suites of benchmarks and also reviews and publishes submitted results from their member organizations and other benchmark licensees.

Benchmarks Benchmark: conjunto de programas reales representativo del trabajo que el sistema computacional realizará en la práctica Benchmarks industriales SPEC CPU2006 Liberado recientemente. Agosto 2006 Al igual que SPEC CPU2000 includes suites para medir desempeño con enteros CINT2006 y punto flotante CFP2006 Mide CPU, Arquitectura de memoria y compiladores Linpack, NASA kernel: benchmarks científicos Mayor énfasis a trabajo con matrices y punto flotante TPC-A, TPC-B, TPC-C, TPC-D: procesamiento transaccional Para servidores de bases de datos Otras más especializadas Olden (procesamiento de listas), SPECweb (servidores Web), SPEC JVM (Java), etc. Benchmarks para computación de escritorios (PC) y computación móvil (laptops, PDAs) no estandarizadas Diferentes compañías utilizan su propio benchmark

Benchmark: conjunto de programas reales representativo del trabajo que el sistema computacional realizará en la práctica

Benchmarks industriales

SPEC CPU2006 Liberado recientemente. Agosto 2006

Al igual que SPEC CPU2000 includes suites para medir desempeño con enteros CINT2006 y punto flotante CFP2006

Mide CPU, Arquitectura de memoria y compiladores

Linpack, NASA kernel: benchmarks científicos

Mayor énfasis a trabajo con matrices y punto flotante

TPC-A, TPC-B, TPC-C, TPC-D: procesamiento transaccional

Para servidores de bases de datos

Otras más especializadas

Olden (procesamiento de listas), SPECweb (servidores Web), SPEC JVM (Java), etc.

Benchmarks para computación de escritorios (PC) y computación móvil (laptops, PDAs) no estandarizadas

Diferentes compañías utilizan su propio benchmark

CINT2006 (spec.org) A modified version of Xalan-C++, which transforms XML documents to other document types. XML Processing C++ 483.xalancbmk Pathfinding library for 2D maps, including the well known A* algorithm. Path-finding Algorithms C++ 473.astar Uses the OMNet++ discrete event simulator to model a large Ethernet campus network. Discrete Event Simulation C++ 471.omnetpp A reference implementation of H.264/AVC, encodes a videostream using 2 parameter sets. The H.264/AVC standard is expected to replace MPEG2 Video Compression C 464.h264ref Simulates a quantum computer, running Shor's polynomial-time factorization algorithm. Physics / Quantum Computing C 462.libquantum A highly-ranked chess program that also plays several chess variants. Artificial Intelligence: chess C 458.sjeng Protein sequence analysis using profile hidden Markov models (profile HMMs) Search Gene Sequence C 456.hmmer Plays the game of Go, a simply described but deeply complex game. Artificial Intelligence: Go C 445.gobmk Vehicle scheduling. Uses a network simplex algorithm (which is also used in commercial products) to schedule public transport. Combinatorial Optimization C 429.mcf Based on gcc Version 3.2, generates code for Opteron. C Compiler C 403.gcc Julian Seward's bzip2 version 1.0.3, modified to do most work in memory, rather than doing I/O. Compression C 401.bzip2 Derived from Perl V5.8.7. The workload includes SpamAssassin, MHonArc (an email indexer), and specdiff (SPEC's tool that checks benchmark outputs). Programming Language C 400.perlbench Brief Description Application Area Benchmark

CFP2006 14 diferentes aplicaciones Disponible en http://www.spec.org/cpu2006/CFP2006/

14 diferentes aplicaciones

Disponible en http://www.spec.org/cpu2006/CFP2006/

Resumen: Métricas de desempeño

Evaluación de desempeño MIPS, MFLOPS Benchmarks Carga real (suite SPEC, otros benchmarks Windows) Recordar Única métrica consistente es tiempo de ejecución Desempeño aumenta al aumentar la frecuencia del reloj, disminuir el CPI, y optimizar los programas.

MIPS, MFLOPS

Benchmarks

Carga real (suite SPEC, otros benchmarks Windows)

Recordar

Única métrica consistente es tiempo de ejecución

Desempeño aumenta al aumentar la frecuencia del reloj, disminuir el CPI, y optimizar los programas.

Ejercicio Distribución de instrucciones en programa X sobre arquitectura Y Cuál es el CPI de Y ejecutando X? 1 0.5 A 2 0.2 C 3 0.3 B CPI instrucción Frecuencia Tipo de instrucción

Continuación ejercicio Para la arquitectura anterior, en cuánto se aceleraría el programa si una mejora en la implementación reduce el CPI de la instrucción B a 1 ciclo? Cuál es el nuevo CPI?

Continuación ejercicio Durante la implementación de la mejora, se descubre que ésta sólo es posible si se aumenta el período del reloj en un 20%. Cuál es la aceleración real?

Add a comment

Related presentations

Related pages

Desempeño - significado de desempeño diccionario

desempeño 1. s. m. Acción y resultado de desempeñar o desempeñarse. 2. OFICIOS Y PROFESIONES Realización de las actividades propias de un empleo ...
Read more

desempeño - Deutsch-Übersetzung - bab.la Spanisch-Deutsch ...

Übersetzung für 'desempeño' im kostenlosen Deutsch-Wörterbuch. Weitere Deutsch-Übersetzungen für: tener buen desempeño
Read more

desempeño - Definición - WordReference.com

desempeño - Significados en español y discusiones con el uso de 'desempeño'.
Read more

Indicadores de evaluación del desempeño y variables de ...

Indicadores de evaluación del desempeño y variables de comportamiento organizacional en el Complejo Provincial de Servicios de la Salud
Read more

Definición de Desempeño - Qué es y Concepto

Se denomina desempeño al grado de desenvoltura que una entidad cualquiera tiene con respecto a un fin esperado. Así, por ejemplo, un trabajador puede ...
Read more

Alto Desempeño: Desarrollo de Talento

Transformamos organizaciones a través de su gente mediante Coaching, Mentoring, Training y Assessments.
Read more

desempeño - Diccionario Inglés-Español WordReference.com

desempeño - Traduccion ingles de diccionario ingles ... Del verbo desempeñar: desempeño es: 1ª persona singular (yo) presente indicativo
Read more

Recomendaciones sobre desempeño - MoodleDocs

Puede lograrse que Moodle se desempeñe muy bien, en pequeña escala o escalándolo a varios miles de usuarios. Los factores involucrados en el desempeño ...
Read more

Definición de rendimiento académico - Qué es, Significado ...

Es de público conocimiento que Albert Einstein tenía un pobre desempeño escolar y que se llegó a dudar de su capacidad intelectual.
Read more

destacados - hyundai.com

Desempeño. Desempeño. POTENCIA Y DINAMISMO. La potencia del Nuevo Hyundai Elantra 2017 está diseñada para disfrutarse con un manejo suave y silencioso.
Read more