Práctica 1 - Rendimiento *

Documentos relacionados
Tema 1. Introducción a la arquitectura de computadores: diseño, coste y rendimiento

Ejercicios del tema 4. El procesador

Ejercicios de jerarquía de memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2

FUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre.

Tema 2 Introducción a la Programación en C.

Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador.

Análisis de rendimiento de algoritmos paralelos

Sesión 8- Práctica de Medida de Rendimiento

sumas = 58 = 48 = 73 = 59 =

Arquitectura de Computadores II Clase #9

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Tema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras

6. PROCESADORES SUPERESCALARES Y VLIW

lasmatemáticas.eu Pedro Castro Ortega materiales de matemáticas

Procesadores superescalares. Introducción

Arquitecturas vectoriales, SIMD y extensiones multimedia

Arquitectura de Computadores II Clase #11

Comparativas de CPUs. Pablo Sanz Mercado.

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO

Organización del Computador 1 Memoria Cache

Notas de Teórico. Evaluación de Rendimiento

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Fundamentos de Ordenadores. Depurar programas usando Nemiver

SISTEMAS OPERATIVOS Arquitectura de computadores

ARQUITECTURA DE COMPUTADORAS II. Propósito del curso : Ingeniería Ingeniería en Sistemas. Hardware. Clave de la materia: 413

Qué es un programa informático?

INEL 4206 Microprocesadores Texto: Barry B Brey, The Intel Microprocessors: 8va. Ed., Prentice Hall, 2009

Tema V Generación de Código

Unidad I: Organización del Computador. Ing. Marglorie Colina

Introducción a la arquitectura de computadores

Organización del Computador I. Introducción e Historia

Explotación del paralelismo a nivel de instrucción

Multiplicación de Matrices en Sistemas cc-numa Multicore. Autor: Jesús Cámara Moreno Director: Domingo Giménez Cánovas

1.- Para cada uno de los siguientes problemas escribir el diagrama de flujo y el pseudocódigo de un programa que lo resuelva:

Estructura de Computadores Tema 1. Introducción a los computadores

Ejercicios Jerarquía de Memoria

202 PROBLEMAS DE ARQUITECTURA DE COMPUTADORES

La eficiencia de los programas

FUNCIONAMIENTO DEL ORDENADOR

TEMA 4. ARQUITECTURA IA-64

Circuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores

Los siguientes cambios en un sistema de cómputo, incrementan la productividad, decrementan el tiempo de respuesta, o ambas?

Paralelismo en monoprocesadores. Procesadores VLIW

Diseño del procesador MIPS R2000

Arquitectura de Computadoras para Ingeniería

CAPITULO II ANÁLISIS DEL CRECIMIENTO POBLACIONAL Y CALCULO DE CAUDALES DE DISEÑO

EVOLUCIÓN DE LOS PROCESADORES

Procesador Segmentado

Introducción a la Operación de Computadoras Personales

Arquitectura de Computadores. Apellidos, Nombre:

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Tema 3: Multiplicación y división.

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria.

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

SIIGO Pyme. Procesos de Depreciación. Cartilla I

SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 3. PLANIFICACIÓN ESTÁTICA AVANZADA. TMS320C6713

Recopilación presentada por 1

Organización de Procesadores

Z i

Implementación de instrucciones para el procesador MIPS de ciclo único.

Trabajo Práctico N 5: ESPACIOS VECTORIALES. Ejercicio 1:

Distribución anual de saberes de Matemática para Segundo Ciclo según NAP CUARTO GRADO 1 TRIMESTRE. En relación con el número y las operaciones:

Tema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Inducción Matemática. Departamento de Matemáticas. Inducción Matemática p. 1/31

Metodología Dharma de Dirección de Proyectos (MDDP) sobre MS Project. I. Introducción

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:

M. C. Felipe Santiago Espinosa

Tema: Microprocesadores

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

Pipelining o Segmentación de Instrucciones

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

NOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo.

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Introducción a la programación

Taller de Programación Paralela

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

UNIVERSIDAD DE GUADALAJARA

Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones.

CICLOS DEL PROCESADOR

Programación. Test Autoevaluación Tema 3

Tema 2. Arquitectura de CPU avanzadas 15/03/2011

Arquitectura de Computadores II Clase #7

Tema 1. Introducción a los computadores

Métricas de Rendimiento

Ejemplo, generación de #s aleatorios

3 - Arquitectura interna de un up

DEFINICIÓN RAZONES PARA HACER UN MANTENIMIENTO AL PC

ARQUITECTURA DE COMPUTADORAS

SCUACAC026MT22-A16V1. SOLUCIONARIO Ejercitación Generalidades de números

MANUAL DE REFERENCIA DE INSTALACIÓN RÁPIDA SISTEMA DE CONTROL DE ASISTENCIAS DE PERSONAL ON THE MINUTE VERSION 4.0

Análisis de Algoritmos

Departamento de Matemáticas, CCIR/ITESM. 9 de febrero de 2011

PREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1

Tema 6: Fracciones. Fracciones

Concepto de fracción. Unidad fraccionaria. Concepto de fracción. Representación de fracciones

Estructuras Secuénciales

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Transcripción:

Práctica 1 - Rendimiento * Organización del Computador 1 Verano 2014 Subconjunto mínimo de ejercicios recomendado: 1 a 11 Ejercicio 1 Considere tres procesadores distintos P 1, P 2 y P 3 que ejecutan el mismo set de instrucciones con las frecuencias de reloj y ciclos por instrucción (CPI) dados en la siguiente tabla: Procesador Frecuencia de reloj CPI P 1 3 GHz 1.5 P 2 2.5 GHz 1.0 P 3 4 GHz 2.2 P 1 2 GHz 1.2 P 2 3 GHz 0.8 P 3 4 GHz 2.0 a) Cuál de todos los procesadores tiene mayor performance expresada en instrucciones por segundo? b) Si cada uno de los procesadores ejecuta un programa que demora 10 segundos, dar la cantidad de ciclos y la cantidad de instrucciones de dicho program c) Al intentar reducir el tiempo en un 30 % se produce un incremento del 20 % en los ciclos por instrucción de cada procesador Qué frecuencia de reloj será necesaria en cada caso para lograr dicha mejora? Ejercicio 2 Dada la siguiente información: Procesador Frecuencia de reloj N instrucciones Tiempo P 1 3 GHz 20.00E+09 7s P 2 2.5 GHz 30.00E+09 10s P 3 4 GHz 90.00E+09 9s P 1 2 GHz 20.00E+09 5s P 2 3 GHz 30.00E+09 8s P 3 4 GHz 25.00E+09 7s a) Dar la cantidad de instrucciones por ciclo (IPC) para cada procesador. b) Dar la frecuencia de reloj para P 2 que reduce el tiempo de ejecución al de P 1. c) Cuál es la cantidad de instrucciones que reduce el tiempo de ejecución de P 2 al de P 3? Ejercicio 3 Considere dos implementaciones distintas de la misma arquitectur La misma posee cuatro clases de instrucciones: A, B, C y D. A continuación se muestran las frecuencias * Los ejercicios han sido tomados del libro Computer Organization and Design. The Hardware / Software Interface 4 ta edición. 1

de reloj y los ciclos por instrucción (CPI) de cada implementación: Frecuencia de reloj CPI clase A CPI clase B CPI clase C CPI clase D P 1 2.5 GHz 1 2 3 3 P 2 3 GHz 2 2 2 2 P 1 2.5 GHz 2 1.5 2 1 P 2 3 GHz 1 2 1 1 a) Dado un programa con 10 6 instrucciones divididas en clases de la siguiente forma: 10 % de clase A, 20 % de clase B, 50 % de clase C y 20 % de clase D Cuál de las implementaciones es la más rápida? b) Cuál es el CPI global para cada implementación? Ejercicio 4 La siguiente tabla muestra la cantidad de instrucciones de un programa: Arit. Store Load Salto Total 650 100 600 50 1400 750 250 500 500 2000 a) Asumiendo que las instrucciones aritméticas toman 1 ciclo, load y store toman 5 ciclos y los altos toma 2 ciclos Cuál es el tiempo de ejecución del programa en un procesador de 2 GHz? b) Cuál es el CPI del programa? c) Si la cantidad de instrucciones de tipo load puede reducirse a la mitad Cuál es la mejora en el rendimiento obtenida y cuál es el nuevo CPI del programa? Ejercicio 5 Considere dos implementaciones diferentes, P 1 y P 2, del mismo set de instrucciones. Dicho set de instrucciones tiene cinco clases de instrucciones (A, B, C, D y E). La frecuencia de reloj y el CPI de cada clase está dado por la siguiente tabla: Frecuencia de reloj CPI clase A CPI clase B CPI clase C CPI clase D CPI clase E P 1 2.0 GHz 1 2 3 4 3 P 2 4.0 GHz 2 2 2 4 4 P 1 2.0 GHz 1 1 2 3 2 P 2 3.0 GHz 1 2 3 4 3 a) Asumiendo que la performance de pico se define como la frecuencia más rápida a la que una computadora puede ejecutar cualquier secuencia de instrucciones Cuál es la performance de pico de P 1 y P 2 expresada en instrucciones por segundo? b) Si el número de instrucciones ejecutadas por un cierto programa está dividida equitativamente entre las distintas clases excepto por las instrucciones de clase A, que son el doble de frecuentes que cada una de las otras Qué computadora es más rápida? Cuánto más rápida? c) Si el número de instrucciones ejecutadas por un cierto programa está dividida equitativamente entre las distintas clases excepto por las instrucciones de clase E, que son el doble de frecuentes que cada una de las otras Qué computadora es más rápida? Cuánto más rápida? Ejercicio 6 La siguiente tabla muestra la partición en clases de instrucciones de dos programas distintos: Arit. Store Load Salto Total 600 600 200 50 1450 900 500 100 200 1700 2

a) Asumiendo que las instrucciones aritméticas toman 1 ciclo, load y store toman 10 ciclos y los saltos toman 3 ciclos dar el tiempo de ejecución de cada programa en una computadora MIPS de 3.0 GHz. b) Asumiendo que las instrucciones aritméticas toman 1 ciclo, load y store toman 2 ciclos y los saltos toman 3 ciclos dar el tiempo de ejecución de cada programa en una computadora MIPS de 3.0 GHz. c) Asumiendo que las instrucciones aritméticas toman 1 ciclo, load y store toman 2 ciclos y los saltos toman 3 ciclos Cuál es la mejora en la performance que se obtiene al reducir el número de instrucciones aritméticas a la mitad? Ejercicio 7 Los compiladores pueden tener un impacto muy profundo en la performance de una aplicación en un cierto procesador. En la siguiente tabla se muestra la cantidad de instrucciones y el tiempo de ejecución de dos programas distintos usando dos compiladores distintos (sobre la misma computadora) Compilador A Compilador B N inst. Tiempo de ejecución N inst. Tiempo de ejecución 1.00E+09 1.8s 1.20E+09 1.8s 1.00E+09 1.1s 1.20E+09 1.5s a) Calcule los ciclos por instrucción promedio (CPI) para cada programa sabiendo que el ciclo del procesador demora 1ns. b) Asumiendo el número de CPI promedio calculado en el punto anterior: suponga que los programas se ejecutan sobre dos procesadores distintas. Los compilados con el compilador A en un procesador y los compilados con el compilador B en otro procesador. Si el tiempo de ejecución de cada programa en cada procesador es el mismo Cuánto más rápido es el procesador que ejecuta los programas compilados con el compilador A con respecto al otro? c) Se ha desarrollado un nuevo compilador que utiliza tan sólo 600 millones de instrucciones y cuyo CPI promedio es de 1,1 Cuál es el speedup que se obtiene al utilizar este nuevo compilador en comparación a los otros dos en el procesador original? Ejercicio 8 Considere dos implementaciones diferentes, P 1 y P 2, del mismo set de instrucciones. El mismo cuenta con cinco clases de instrucciones. P 1 tiene una frecuencia de reloj de 4Ghz mientras que P 2 tiene una frecuencia de 6GHz. La siguiente tabla lista el valor de CPI promedio por clase: CPI clase A CPI clase B CPI clase C CPI clase D CPI clase E P 1 1 2 3 4 5 P 2 3 3 3 5 5 P 1 1 2 3 4 5 P 2 3 2 2 2 6 a) Asumiendo que la performance de pico se define como la frecuencia más rápida a la que una computadora puede ejecutar cualquier secuencia de instrucciones Cuál es la performance de pico de P 1 y P 2 expresada en instrucciones por segundo? b) Si el número de instrucciones ejecutadas por un cierto programa está dividida equitativamente entre las distintas clases excepto por las instrucciones de clase A, que son el doble de frecuentes que cada una de las otras Qué computadora es más rápida? Cuánto más rápida? c) A qué frecuencia P 1 tiene la misma performance que P 2 considerando las proporciones de cada clase de instrucción dada en el punto anterior? 3

Ejercicio 9 La siguiente tabla muestra el desglose por tipo de instrucción de una aplicación ejecutado en 1, 2, 4 u 8 procesadores Procs. N inst. p/proc. CPI Aritméticas Load/Store Branch Aritméticas Load/Store Branch 1 2560 1280 256 1 4 2 2 1280 640 128 1 5 2 4 640 320 64 1 7 2 8 320 160 32 1 12 2 Procs. N inst. p/proc. CPI Aritméticas Load/Store Branch Aritméticas Load/Store Branch 1 2560 1280 256 1 4 2 2 1280 640 128 1 6 2 4 640 320 64 1 8 2 8 320 160 32 1 10 2 a) Cuál es el número total de instrucciones que se ejecutan por procesador y cuál el número total de instrucciones entre todos los procesadores? b) Asumiendo que cada procesador tiene una frecuencia de reloj de 2GHz calcule el tiempo total de ejecución para cada programa para cada cantidad de procesadores. c) Si el valor de CPI de las instrucciones aritméticas se duplica Cuál será el impacto en el tiempo de ejecución de los programas para cada cantidad de procesadores? Ejercicio 10 La siguiente tabla muestra el número de instrucciones por core en un procesador multicore así como el valor de CPI promedio al ejecutar el programa en 1, 2, 4 u 8 cores #cores Instr. por core CPI promedio 1 1.00E+10 1.2 2 5.00E+09 1.4 4 2.50E+09 1.8 8 1.25E+09 2.6 #cores Instr. por core CPI promedio 1 1.00E+10 1.0 2 5.00E+09 1.2 4 2.50E+09 1.4 8 1.25E+09 1.7 a) Asumiendo un frecuencia de reloj de 3GHz Cuál es el tiempo de ejecución del programa para cada cantidad de cores? b) Si se usara un único core calcule cuál es el valor de CPI promedio requerido para que el tiempo de ejecución del programa sea igual los calculados en el punto anterior. Tenga en cuenta que la cantidad total de instrucciones surge de considerar la suma de las instrucciones ejecutadas en cada core. Ejercicio 11 La siguiente tabla muestra la información sobre la ejecucióñ de dos programas en dos procesadores distintos Frecuencia de reloj CPI N inst. P 1 4.0 GHz 0.9 5.00E+06 P 2 3.0 GHz 0.75 1.00E+06 P 1 3.0 GHz 1.1 3.00E+06 P 2 2.5 GHz 1.0 0.50E+06 4

a) Una falacia muy común es considerar al procesador con mayor frecuencia de reloj como el de mayor performance. Verifique si esto es cierto teniendo en cuenta los datos de la tabla anterior. b) Otra falacia es considerar que el procesador que ejecuta mayor número de instrucciones requerirá mayor tiempo de ejecución. Utilizando los valores de CPI de la tabla calcule cuántas instrucciones puede ejecutar el procesador P 2 en el tiempo que P 1 necesita para ejecutar 10 6 instrucciones. c) Otra falacia muy usual es usar el valor MIPS (millones de instrucciones por segundo) para comparar la performance de dos procesadores diferentes y considerar que aquel con mayor valor de MIPS es el mejor. Verifique si esta afirmación se cumple o no para los procesadores P 1 y P 2 de la tabl Ejercicio 12 Otra medida de performance muy común es la de MFLOPS (millones de operaciones de punto flotante por segundo) que se define como MFLOPS = N operaciones punto flotante tiempo de ejecución 10 6 La siguiente tabla muestra datos de la ejecución de dos programas distintos sobre dos procesadores distintos: N inst. CPI Conteo de inst. L/S FP Branch L/S FP Branch Frecuencia de reloj P 1 1.00E+06 50 % 40 % 10 % 0.75 1.0 1.5 4.0 GHz P 2 5.00E+06 40 % 40 % 20 % 1.25 0.8 1.25 3.0 GHz P 1 5.00E+06 30 % 30 % 40 % 1.5 1.0 2.0 4.0 GHz P 2 2.00E+06 40 % 30 % 30 % 1.25 1.0 2.5 3.0 GHz a) Calcule el valor de MFLOPS para cada program b) Calcule el valor de MIPS para cada program c) Calcule la performance de cada procesador para cada programa y compárela con los valores de MFLOPS y MIPS calculados. Ejercicio 13 A veces se cae en la trampa de pensar que se puede mejorar la performance global de un procesador mejorando sólo un aspecto del mismo. Ésto puede no ser siempre cierto. Considere una computadora ejecutando dos programas con los tiempos de ejecución que se muestran en la siguiente tabla FP Instr. INT Instr. L/S Instr. Branch Instr. Tiempo total 70s 85s 55s 40s 250s 40s 90s 60s 250s 210s a) Cuánto se reduce el tiempo total de ejecución si el tiempo requerido por las instrucciones de punto flotante se reduce en un 20 %? b) En cuánto se debe reducir el tiempo requerido por las instrucciones de enteros para que el tiempo total se reduzca en un 20 %? c) Es posible lograr una reducción del 20 % en el tiempo total de ejecución reduciendo únicamente el tiempo requerido por las instrucciones de salto? 5

Ejercicio 14 La siguiente tabla muestra el desglose por tipo de instrucción (por procesador) de dos aplicaciones ejecutadas en diferente cantidad de procesadores Procs. FP Instr. INT Instr. L/S Instr. Branch Instr. CPI CPI CPI CPI (FP) (INT) (L/S) (Branch) 2 280 10 6 1000 10 6 640 10 6 128 10 6 1 1 4 2 16 50 10 6 110 10 6 80 10 6 16 10 6 1 1 4 2 Asumiendo que cada procesador tiene una frecuencia de reloj de 2GHz a) Cuánto debemos mejorar el CPI de la instrucciones de punto flotante si queremos que el programa se ejecute dos veces más rápido? b) Cuánto debemos mejorar el CPI the las instrucciones de load y store si queremos que el programa se ejecute dos veces más rápido? c) Cuál es el tiempo de ejecución del programa si el CPI de las instrucciones de enteros y de punto flotante se reduce en un 40 % y el de las instrucciones de load y store se reduce en un 30 %? Ejercicio 15 Otra trampa, relacionada con la ejecución de programas en sistemas multiprocesador, es pretender una mejora en la performance mediante la mejora en el tiempo de ejecución en algunas partes de las rutinas únicamente. La siguiente tabla muestra el tiempo de ejecución de cinco rutinas de un programa ejecutando en diferente cantidad de procesadores: Procs. Rutina A Rutina B Rutina C Rutina D Rutina E (ms) (ms) (ms) (ms) (ms) 4 12 45 6 36 3 32 2 7 1 6 2 a) Calcule el tiempo total de ejecución y en cuánto se reduce si las rutinas A, C y E sufren una mejora de un 15 %. b) En cuánto mejora el tiempo total de ejecución si la rutina B sufre una mejora del 10 %. c) En cuánto mejora el tiempo total de ejecución si la rutina D sufre una mejora del 10 %. Ejercicio 16 El tiempo de ejecución en un sistema multiprocesador se puede dividir entre tiempo de cómputo y tiempo de ruteo (el tiempo gastado enviando datos de un procesador a otro). Considerando los tiempos de cómputo y de ruteo dados en la siguiente tabla: Procs. Rutina A Rutina B Rutina C Rutina D Rutina E Ruteo (ms) (ms) (ms) (ms) (ms) (ms) 2 40 78 9 70 4 11 4 29 60 4 36 2 13 8 15 45 3 19 3 17 16 7 35 1 11 2 22 32 4 23 1 6 1 23 64 2 12 0.5 3 1 26 a) Calcule la proporción entre el tiempo de cómputo de cada fila y el tiempo de cómputo de la fila anterior. b) Calcule la proporción entre el tiempo de ruteo de cada fila y el tiempo de ruteo de la fila anterior. c) Haciendo una extrapolación a partir de los datos obtenidos prediga cuál será el tiempo de cómputo y el tiempo de ruteo en un sistema con 128 procesadores. d) Calcule el tiempo de cómputo y el tiempo de ruteo para un sistema monoprocesador. 6