AL Lab1a
ARQUITECTURA DE COMPUTADORES
102775
Departamento de Arquitectura de Computadores y
Sistemas Operativos (DACSO)
PRÁCTICA nº 1
Medida y Optimización del Rendimiento del Procesador
en programas single-thread
Enunciado y Documentación
Arquitectura de Computadores
Documentación de Prácticas
Medir y Optimizar el Rendimiento del ProcesadorENUNCIADO: La práctica analiza algunos de los factores que determinan el tiempo de ejecución de un
programa: el algoritmo, los datos de entrada y su tamaño, el compilador y la frecuencia del procesador. Se
trata de determinar numéricamente el tiempo de ejecución a partir de ejecuciones instrumentadas para
medir tiempo o el número de instrucciones ejecutadas.
OBJETIVOS:
Analizar el códigoensamblador para estimar el recuento de instrucciones totales, y para evaluar las optimizaciones
realizadas por el compilador al trasladar el código fuente a código ensamblador.
Aprender a usar los contadores H/W de rendimiento usando el comando perf, para medir el recuento de
instrucciones totales y el recuento de ciclos de ejecución consumidos.
Cuantificar teóricamente y empíricamente elefecto que tienen los datos de entrada al programa (y el tamaño del
problema) en el número total de instrucciones ejecutadas (complejidad del programa). Generar gráficas adecuadas
para representar esta complejidad.
Aprender a medir el tiempo de ejecución de los programas mediante la técnica de cuenta de Intervalos: usando el
comando time, o instrumentando el programa automáticamente con lasherramientas gprof.
Determinar empíricamente el CPI de la ejecución.
MATERIAL y PREPARACIÓN PREVIA
Equipos de sobremesa con entornos GNU/Linux, y herramientas de desarrollo en lenguaje C.
Antes de asistir a la sesión de laboratorio, se debe leer con detenimiento este documento, y se debe intentar contestar las
preguntas previas a partir de los datos presentados. Las respuestas se debenentregar en una hoja con el nombre de los
alumnos y el turno de prácticas (escritas en papel o sobre un documento electrónico).
Preparar los experimentos para realizar en el laboratorio: es decir, leer lo que hay que hacer para identificar las posibles dudas
y aprovechar mejor el tiempo durante la sesión.
CONCEPTOS BÁSICOS
Compilador
En los computadores de sobremesa del laboratorio estáinstalado el sistema operativo Linux, y el compilador gnu gcc, en dos
de sus versiones: 4.4.5 y 4.7.2. Por defecto se usa la versión más antigua (4.4.5). Para instalar la versión nueva se debe usar el
comando module add gcc/4.7.2, y para volver al estado inicial hay que ejecutar module rm gcc/4.7.2. Se puede
usar el comando gcc –v para verificar la versión del compilador. La opción más importantees, probablemente, la que controla
el nivel de optimización que realiza el compilador: -On, donde n es un número del 0 al 3, y cuanto mayor es el número mayor
es la cantidad de tipos de optimización que utiliza el compilador. La opción gcc –-help=optimizers nos muestra por
separado cada una de las opciones de optimización.
Medida de Rendimiento en el Procesador
Para realizar medidas derendimiento hay dos técnicas básicas: (1) instrumentar el programa fuente con instrucciones o
funciones que midan ciertas métricas, o (2) usar herramientas que interrumpen la ejecución del programa y toman muestras de
estas métricas, para luego correlacionarlas con el programa. Ejemplos de esta segunda técnica son los comandos time y
perf de Linux, y las herramientas gráficas VTune (intel) yCodeAnalyst (AMD).
Contadores H/W de Rendimiento y PERF
Los procesadores del laboratorio (y todos los procesadores actuales) disponen de contadores H/W internos que se van
incrementando durante la ejecución de los programas, y que permiten medir diferentes métricas de rendimiento (ciclos de reloj
consumidos, instrucciones ejecutadas de diferente tipo, fallos en las diferentes memorias caché del...
Regístrate para leer el documento completo.