Computación Científica en Paralelo



Documentos relacionados
Evaluación del rendimiento de procesadores Intel Nehalem. Modelos x7550, x5670 y x5570

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

ARREGLOS DEFINICION GENERAL DE ARREGLO

Conclusiones. Particionado Consciente de los Datos

Figura 1.4. Elementos que integran a la Tecnología de Información.

Introducción a Computación

Matrices. Definiciones básicas de matrices. José de Jesús Angel Angel.

Aritmética finita y análisis de error

1. Manejo de memoria estática 2. Manejo de memoria dinámica

Métodos Iterativos para Resolver Sistemas Lineales

TEMA 6. EIGENVALORES Y EIGENVECTORES

Matrices Invertibles y Elementos de Álgebra Matricial

Métricas de Rendimiento

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

Resolución de problemas en paralelo

Modulo 1 El lenguaje Java

ESTRUCTURA DE DATOS: ARREGLOS

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

Preliminares. Tipos de variables y Expresiones

Práctica 0. Emulador XENON de la computadora CESIUS

Cálculo Simbólico también es posible con GeoGebra

Subespacios vectoriales en R n

Ecuaciones de primer grado con dos incógnitas

Álgebra Lineal Ma1010

MATERIAL 2 EXCEL 2007

4. Programación Paralela

ORDENADORES VECTORIALES

SÍNTESIS Y PERSPECTIVAS

Fundamentos de los Sistemas Operativos (GII) Examen Final 15 de Junio de SEGUNDA PARTE - SOLUCIONES

Capitulo V Administración de memoria

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Análisis de propuestas de evaluación en las aulas de América Latina

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Hostaliawhitepapers. Las ventajas de los Servidores dedicados. Cardenal Gardoki, BILBAO (Vizcaya) Teléfono:

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases

BPMN Business Process Modeling Notation

Lección 24: Lenguaje algebraico y sustituciones

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Pipelining o Segmentación de Instrucciones

RELACIONES DE RECURRENCIA

picojava TM Características

Medias Móviles: Señales para invertir en la Bolsa

CLASE # 5 TÉCNICAS DE CAJA BLANCA

Tema 3. Espacios vectoriales

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

mcd y mcm Máximo Común Divisor y Mínimo Común múltiplo José de Jesús Angel Angel jjaa@math.com.mx

1.1. Introducción y conceptos básicos

INDICADORES PRESENTADO POR: LUIS DARÍO TÉLLEZ RAMÍREZ

a < b y se lee "a es menor que b" (desigualdad estricta) a > b y se lee "a es mayor que b" (desigualdad estricta)

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx

EJEMPLO DE REPORTE DE LIBERTAD FINANCIERA

Figura 4.1 Clasificación de los lenguajes de bases de datos

1.4.- D E S I G U A L D A D E S

INTRODUCCION A LA PROGRAMACION DE PLC

Lección 4: Suma y resta de números racionales

Valores y vectores propios de una matriz. Juan-Miguel Gracia

Ejemplos de conversión de reales a enteros

Fundamentos de la Programación

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

ANÁLISIS Y GESTIÓN DEL DESARROLLO DE SOFTWARE TEMA 5: LA PLANIFICACIÓN DEL PRODUCTO

PROGRAMACIÓN ORIENTADA A OBJETOS

INTRODUCCION AL CONTROL AUTOMATICO DE PROCESOS

CAPÍTULO 2 DEFINICIÓN DEL PROBLEMA

IS23 Mantenimiento de Instalaciones Informáticas Práctica 5. Medición del rendimiento

Tecnologías de Información y Comunicación II CLASE 10

Una (muy) breve introducción a la teoría de la computación

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION

MLM Matemática Discreta

Teoría Matemática de la Computación Primer Problemario Prof. Miguel A. Pizaña 11 de Octubre de 2006

Geometría Tridimensional

T E C N O L O G Í A OPTIMIZACIÓN DE MATERIALES MEDIANTE PATRONES DE CORTE EFICIENTE. Aplicación. a la INDUSTRIA

_ Antología de Física I. Unidad II Vectores. Elaboró: Ing. Víctor H. Alcalá-Octaviano

1. INVERSA DE UNA MATRIZ REGULAR

Lógica Proposicional IIC2212. IIC2212 Lógica Proposicional 1 / 56

OPTIMIZACIÓN Y SIMULACIÓN PARA LA EMPRESA. Tema 2 Programación Lineal

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

by Tim Tran:

CAPITULO II CARACTERISTICAS DE LOS INSTRUMENTOS DE MEDICION

Programación Lineal. Programación Lineal

Módulo 9 Sistema matemático y operaciones binarias

guía para LOS PADRES APOYANDO A SU HIJO EN QUINTO GRADO MATEMÁTICAS

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Organización de Computadoras. Turno Recursantes Clase 8

Centro de Capacitación en Informática

Tema 2. Software. Informática (1º Ingeniería Civil)

Conoce los Tipos de Hosting que Existen y Elige el Mejor para tus Necesidades

Matrices equivalentes. El método de Gauss

Capítulo 5. Cliente-Servidor.

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

4 APLICACIONES LINEALES. DIAGONALIZACIÓN

Curso Excel Básico - Intermedio

35 Facultad de Ciencias Universidad de Los Andes Mérida-Venezuela. Potencial Eléctrico

Transcripción:

Computación Científica en Paralelo Luis Miguel de la Cruz luiggix@gmail.com www.dci.dgsca.unam.mx/lmcs Unidad de Investigación en Cómputo Aplicado DGSCA-UNAM. Posgrado en Ciencia e Ingeniería de la Computación LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 1 / 35

Contenido 1 Análisis de desempeño Performance Midiendo el desempeño Efectos del acceso a la memoria Análisis asintótico 2 Paralelismo Definiciones Ejemplo : Números primos 3 Tarea LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 2 / 35

1 Análisis de desempeño Performance Midiendo el desempeño Efectos del acceso a la memoria Análisis asintótico 2 Paralelismo Definiciones Ejemplo : Números primos 3 Tarea LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 3 / 35

FLOPS FLoating point Operations Per Second, es una medida del desempeño de una computadura, usada especialmente en el área de cómputo científico donde se requieren de muchos cálculos de punto flotante. Similar a instrucciones por segundo (MIPS). La S significa segundo, a veces se considera FLOPS como plural y/o singular. FLOP Algunas veces se usa FLOP como una abreviación de Floating-point OPeration y es una cuenta de las operaciones de punto flotante requeridas por un algoritmo. En este contexto FLOPS es el plural y no una medida de velocidad. Para distinguir usaremos FLOP s como plural de FLOP. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 4 / 35

FLOPS FLoating point Operations Per Second, es una medida del desempeño de una computadura, usada especialmente en el área de cómputo científico donde se requieren de muchos cálculos de punto flotante. Similar a instrucciones por segundo (MIPS). La S significa segundo, a veces se considera FLOPS como plural y/o singular. FLOP Algunas veces se usa FLOP como una abreviación de Floating-point OPeration y es una cuenta de las operaciones de punto flotante requeridas por un algoritmo. En este contexto FLOPS es el plural y no una medida de velocidad. Para distinguir usaremos FLOP s como plural de FLOP. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 4 / 35

Desempeño o Rendimiento (Performance) El desempeño (de punto flotante) de un código computacional es el número de operaciones de punto flotante que puede ejecutar en una unidad de tiempo. Se usan FLOPS para medir dicho desempeño. Cálculo de π π 4 = 1 1 3 + 1 5 1 7 + 1 9 1 11 + 1 13 1 15 Esta serie se puede escribir como: A = N i=1 a i El cálculo de A requiere N 1 sumas y N + 1 referencias a memoria. Si el cálculo toma T N segundos para un ciero código entonces el desempeño es (N 1)/T N FLOPS. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 5 / 35

Desempeño o Rendimiento (Performance) El desempeño (de punto flotante) de un código computacional es el número de operaciones de punto flotante que puede ejecutar en una unidad de tiempo. Se usan FLOPS para medir dicho desempeño. Cálculo de π π 4 = 1 1 3 + 1 5 1 7 + 1 9 1 11 + 1 13 1 15 Esta serie se puede escribir como: A = N i=1 a i El cálculo de A requiere N 1 sumas y N + 1 referencias a memoria. Si el cálculo toma T N segundos para un ciero código entonces el desempeño es (N 1)/T N FLOPS. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 5 / 35

Desempeño o Rendimiento (Performance) El desempeño (de punto flotante) de un código computacional es el número de operaciones de punto flotante que puede ejecutar en una unidad de tiempo. Se usan FLOPS para medir dicho desempeño. Cálculo de π π 4 = 1 1 3 + 1 5 1 7 + 1 9 1 11 + 1 13 1 15 Esta serie se puede escribir como: A = N i=1 a i El cálculo de A requiere N 1 sumas y N + 1 referencias a memoria. Si el cálculo toma T N segundos para un ciero código entonces el desempeño es (N 1)/T N FLOPS. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 5 / 35

Desempeño o Rendimiento (Performance) El desempeño (de punto flotante) de un código computacional es el número de operaciones de punto flotante que puede ejecutar en una unidad de tiempo. Se usan FLOPS para medir dicho desempeño. Cálculo de π π 4 = 1 1 3 + 1 5 1 7 + 1 9 1 11 + 1 13 1 15 Esta serie se puede escribir como: A = N i=1 a i El cálculo de A requiere N 1 sumas y N + 1 referencias a memoria. Si el cálculo toma T N segundos para un ciero código entonces el desempeño es (N 1)/T N FLOPS. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 5 / 35

Desempeño o Rendimiento (Performance) El desempeño (de punto flotante) de un código computacional es el número de operaciones de punto flotante que puede ejecutar en una unidad de tiempo. Se usan FLOPS para medir dicho desempeño. Cálculo de π π 4 = 1 1 3 + 1 5 1 7 + 1 9 1 11 + 1 13 1 15 Esta serie se puede escribir como: A = N i=1 a i El cálculo de A requiere N 1 sumas y N + 1 referencias a memoria. Si el cálculo toma T N segundos para un ciero código entonces el desempeño es (N 1)/T N FLOPS. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 5 / 35

Es importante conocer la precisión con la que se mide el tiempo en una computadora. Tiempo de ejecución Tiempo que transcurre desde que se lanza una tarea hasta que ésta finaliza. Tiempo de CPU Tiempo durante el cual la tarea se ejecuta en un procesador. Tiempo de usuario: El CPU se dedica a la ejecución de las operaciones del programa. Tiempo de sistema: El CPU se dedica a las tareas que el sistema operativo debe realizar para se ejecute el programa. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 6 / 35

Es importante conocer la precisión con la que se mide el tiempo en una computadora. Tiempo de ejecución Tiempo que transcurre desde que se lanza una tarea hasta que ésta finaliza. Tiempo de CPU Tiempo durante el cual la tarea se ejecuta en un procesador. Tiempo de usuario: El CPU se dedica a la ejecución de las operaciones del programa. Tiempo de sistema: El CPU se dedica a las tareas que el sistema operativo debe realizar para se ejecute el programa. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 6 / 35

Es importante conocer la precisión con la que se mide el tiempo en una computadora. Tiempo de ejecución Tiempo que transcurre desde que se lanza una tarea hasta que ésta finaliza. Tiempo de CPU Tiempo durante el cual la tarea se ejecuta en un procesador. Tiempo de usuario: El CPU se dedica a la ejecución de las operaciones del programa. Tiempo de sistema: El CPU se dedica a las tareas que el sistema operativo debe realizar para se ejecute el programa. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 6 / 35

Es importante conocer la precisión con la que se mide el tiempo en una computadora. Tiempo de ejecución Tiempo que transcurre desde que se lanza una tarea hasta que ésta finaliza. Tiempo de CPU Tiempo durante el cual la tarea se ejecuta en un procesador. Tiempo de usuario: El CPU se dedica a la ejecución de las operaciones del programa. Tiempo de sistema: El CPU se dedica a las tareas que el sistema operativo debe realizar para se ejecute el programa. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 6 / 35

Es importante conocer la precisión con la que se mide el tiempo en una computadora. Tiempo de ejecución Tiempo que transcurre desde que se lanza una tarea hasta que ésta finaliza. Tiempo de CPU Tiempo durante el cual la tarea se ejecuta en un procesador. Tiempo de usuario: El CPU se dedica a la ejecución de las operaciones del programa. Tiempo de sistema: El CPU se dedica a las tareas que el sistema operativo debe realizar para se ejecute el programa. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 6 / 35

Dado que la precisión del reloj de una computadora es finita, las mediciones del tiempo pueden ser confusas. En el ejemplo de la suma es posible obtener T N = 0 para N < N c donde N c depende de la resolución con que se mide el tiempo. Para obtener una medida razonable en cálculos cortos, se recomienda: hacer muchas repeticiones de tal manera que el tiempo sea lo suficientemente grande comparado con el tiempo medible más pequeño y dividir el resultado por el número de repeticiones. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 7 / 35

Dado que la precisión del reloj de una computadora es finita, las mediciones del tiempo pueden ser confusas. En el ejemplo de la suma es posible obtener T N = 0 para N < N c donde N c depende de la resolución con que se mide el tiempo. Para obtener una medida razonable en cálculos cortos, se recomienda: hacer muchas repeticiones de tal manera que el tiempo sea lo suficientemente grande comparado con el tiempo medible más pequeño y dividir el resultado por el número de repeticiones. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 7 / 35

Dado que la precisión del reloj de una computadora es finita, las mediciones del tiempo pueden ser confusas. En el ejemplo de la suma es posible obtener T N = 0 para N < N c donde N c depende de la resolución con que se mide el tiempo. Para obtener una medida razonable en cálculos cortos, se recomienda: hacer muchas repeticiones de tal manera que el tiempo sea lo suficientemente grande comparado con el tiempo medible más pequeño y dividir el resultado por el número de repeticiones. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 7 / 35

Dado que la precisión del reloj de una computadora es finita, las mediciones del tiempo pueden ser confusas. En el ejemplo de la suma es posible obtener T N = 0 para N < N c donde N c depende de la resolución con que se mide el tiempo. Para obtener una medida razonable en cálculos cortos, se recomienda: hacer muchas repeticiones de tal manera que el tiempo sea lo suficientemente grande comparado con el tiempo medible más pequeño y dividir el resultado por el número de repeticiones. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 7 / 35

Dado que la precisión del reloj de una computadora es finita, las mediciones del tiempo pueden ser confusas. En el ejemplo de la suma es posible obtener T N = 0 para N < N c donde N c depende de la resolución con que se mide el tiempo. Para obtener una medida razonable en cálculos cortos, se recomienda: hacer muchas repeticiones de tal manera que el tiempo sea lo suficientemente grande comparado con el tiempo medible más pequeño y dividir el resultado por el número de repeticiones. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 7 / 35

Se puede definir un principio de incertidumbre en cómputo: uno no puede medir el desempeño con precisión arbitraria de una computadora, dado que usualmente se usa la misma computadora para hacer esta medición. La introducción de código para analizar el tiempo altera el tiempo que se requiere para completar la tarea que se está midiendo. En un programa en paralelo es importante asignar costo en tiempo a secciones del programa, las cuales son importantes en la solución de un problema dado. Es importante separar los costos de cálculo de los de acceso a datos remotos (I/O). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 8 / 35

Se puede definir un principio de incertidumbre en cómputo: uno no puede medir el desempeño con precisión arbitraria de una computadora, dado que usualmente se usa la misma computadora para hacer esta medición. La introducción de código para analizar el tiempo altera el tiempo que se requiere para completar la tarea que se está midiendo. En un programa en paralelo es importante asignar costo en tiempo a secciones del programa, las cuales son importantes en la solución de un problema dado. Es importante separar los costos de cálculo de los de acceso a datos remotos (I/O). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 8 / 35

Se puede definir un principio de incertidumbre en cómputo: uno no puede medir el desempeño con precisión arbitraria de una computadora, dado que usualmente se usa la misma computadora para hacer esta medición. La introducción de código para analizar el tiempo altera el tiempo que se requiere para completar la tarea que se está midiendo. En un programa en paralelo es importante asignar costo en tiempo a secciones del programa, las cuales son importantes en la solución de un problema dado. Es importante separar los costos de cálculo de los de acceso a datos remotos (I/O). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 8 / 35

Se puede definir un principio de incertidumbre en cómputo: uno no puede medir el desempeño con precisión arbitraria de una computadora, dado que usualmente se usa la misma computadora para hacer esta medición. La introducción de código para analizar el tiempo altera el tiempo que se requiere para completar la tarea que se está midiendo. En un programa en paralelo es importante asignar costo en tiempo a secciones del programa, las cuales son importantes en la solución de un problema dado. Es importante separar los costos de cálculo de los de acceso a datos remotos (I/O). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 8 / 35

1 Análisis de desempeño Performance Midiendo el desempeño Efectos del acceso a la memoria Análisis asintótico 2 Paralelismo Definiciones Ejemplo : Números primos 3 Tarea LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 9 / 35

Performance analysis o profiling Es la investigación del comportamiento de un programa usando información obtenida conforme el programa se ejecuta. Objetivos del análisis de desempeño: Determinar las secciones que se deben optimizar en un programa. Entender las razones por las que dichas secciones no son eficientes en una primera instancia. Entender las razones de por que no se alcanza el rendimiento pico. Maneras de hacer este análisis: El programador agrega instrucciones para calcular tiempos de ciertas partes del código. Agregar banderas de compilación (gcc -pg gprof). Otras (Binary translation, Runtime instrumentation, Runtime injection). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 10 / 35

Performance analysis o profiling Es la investigación del comportamiento de un programa usando información obtenida conforme el programa se ejecuta. Objetivos del análisis de desempeño: Determinar las secciones que se deben optimizar en un programa. Entender las razones por las que dichas secciones no son eficientes en una primera instancia. Entender las razones de por que no se alcanza el rendimiento pico. Maneras de hacer este análisis: El programador agrega instrucciones para calcular tiempos de ciertas partes del código. Agregar banderas de compilación (gcc -pg gprof). Otras (Binary translation, Runtime instrumentation, Runtime injection). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 10 / 35

Performance analysis o profiling Es la investigación del comportamiento de un programa usando información obtenida conforme el programa se ejecuta. Objetivos del análisis de desempeño: Determinar las secciones que se deben optimizar en un programa. Entender las razones por las que dichas secciones no son eficientes en una primera instancia. Entender las razones de por que no se alcanza el rendimiento pico. Maneras de hacer este análisis: El programador agrega instrucciones para calcular tiempos de ciertas partes del código. Agregar banderas de compilación (gcc -pg gprof). Otras (Binary translation, Runtime instrumentation, Runtime injection). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 10 / 35

Performance analysis o profiling Es la investigación del comportamiento de un programa usando información obtenida conforme el programa se ejecuta. Objetivos del análisis de desempeño: Determinar las secciones que se deben optimizar en un programa. Entender las razones por las que dichas secciones no son eficientes en una primera instancia. Entender las razones de por que no se alcanza el rendimiento pico. Maneras de hacer este análisis: El programador agrega instrucciones para calcular tiempos de ciertas partes del código. Agregar banderas de compilación (gcc -pg gprof). Otras (Binary translation, Runtime instrumentation, Runtime injection). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 10 / 35

Performance analysis o profiling Es la investigación del comportamiento de un programa usando información obtenida conforme el programa se ejecuta. Objetivos del análisis de desempeño: Determinar las secciones que se deben optimizar en un programa. Entender las razones por las que dichas secciones no son eficientes en una primera instancia. Entender las razones de por que no se alcanza el rendimiento pico. Maneras de hacer este análisis: El programador agrega instrucciones para calcular tiempos de ciertas partes del código. Agregar banderas de compilación (gcc -pg gprof). Otras (Binary translation, Runtime instrumentation, Runtime injection). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 10 / 35

Performance analysis o profiling Es la investigación del comportamiento de un programa usando información obtenida conforme el programa se ejecuta. Objetivos del análisis de desempeño: Determinar las secciones que se deben optimizar en un programa. Entender las razones por las que dichas secciones no son eficientes en una primera instancia. Entender las razones de por que no se alcanza el rendimiento pico. Maneras de hacer este análisis: El programador agrega instrucciones para calcular tiempos de ciertas partes del código. Agregar banderas de compilación (gcc -pg gprof). Otras (Binary translation, Runtime instrumentation, Runtime injection). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 10 / 35

Performance analysis o profiling Es la investigación del comportamiento de un programa usando información obtenida conforme el programa se ejecuta. Objetivos del análisis de desempeño: Determinar las secciones que se deben optimizar en un programa. Entender las razones por las que dichas secciones no son eficientes en una primera instancia. Entender las razones de por que no se alcanza el rendimiento pico. Maneras de hacer este análisis: El programador agrega instrucciones para calcular tiempos de ciertas partes del código. Agregar banderas de compilación (gcc -pg gprof). Otras (Binary translation, Runtime instrumentation, Runtime injection). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 10 / 35

Performance analysis o profiling Es la investigación del comportamiento de un programa usando información obtenida conforme el programa se ejecuta. Objetivos del análisis de desempeño: Determinar las secciones que se deben optimizar en un programa. Entender las razones por las que dichas secciones no son eficientes en una primera instancia. Entender las razones de por que no se alcanza el rendimiento pico. Maneras de hacer este análisis: El programador agrega instrucciones para calcular tiempos de ciertas partes del código. Agregar banderas de compilación (gcc -pg gprof). Otras (Binary translation, Runtime instrumentation, Runtime injection). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 10 / 35

Performance analysis o profiling Es la investigación del comportamiento de un programa usando información obtenida conforme el programa se ejecuta. Objetivos del análisis de desempeño: Determinar las secciones que se deben optimizar en un programa. Entender las razones por las que dichas secciones no son eficientes en una primera instancia. Entender las razones de por que no se alcanza el rendimiento pico. Maneras de hacer este análisis: El programador agrega instrucciones para calcular tiempos de ciertas partes del código. Agregar banderas de compilación (gcc -pg gprof). Otras (Binary translation, Runtime instrumentation, Runtime injection). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 10 / 35

Benchmark Es un punto de referencia que se usa para medir y comparar una cosa con otra. En cómputo, es la acción de ejecutar un programa, un conjunto de programas u otras operaciones para obtener el desempeño de un cierto hardware. Proveen de métodos para comparar el desempeño de varios tipos de hardware. LINPACK Es una colección de subrutinas en Fortran que analizan y resuelven problemas de mínimos cuadrados y sistemas de ecuaciones lineales. Fue diseñado para usarse en supercomputadoras en los 70s y 80s, por Jack Dongarra, Jim Bunch, Cleve Moler, y Pete Stewart. En la práctica se usa LAPACK. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 11 / 35

Benchmark Es un punto de referencia que se usa para medir y comparar una cosa con otra. En cómputo, es la acción de ejecutar un programa, un conjunto de programas u otras operaciones para obtener el desempeño de un cierto hardware. Proveen de métodos para comparar el desempeño de varios tipos de hardware. LINPACK Es una colección de subrutinas en Fortran que analizan y resuelven problemas de mínimos cuadrados y sistemas de ecuaciones lineales. Fue diseñado para usarse en supercomputadoras en los 70s y 80s, por Jack Dongarra, Jim Bunch, Cleve Moler, y Pete Stewart. En la práctica se usa LAPACK. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 11 / 35

Benchmark Es un punto de referencia que se usa para medir y comparar una cosa con otra. En cómputo, es la acción de ejecutar un programa, un conjunto de programas u otras operaciones para obtener el desempeño de un cierto hardware. Proveen de métodos para comparar el desempeño de varios tipos de hardware. LINPACK Es una colección de subrutinas en Fortran que analizan y resuelven problemas de mínimos cuadrados y sistemas de ecuaciones lineales. Fue diseñado para usarse en supercomputadoras en los 70s y 80s, por Jack Dongarra, Jim Bunch, Cleve Moler, y Pete Stewart. En la práctica se usa LAPACK. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 11 / 35

Benchmark Es un punto de referencia que se usa para medir y comparar una cosa con otra. En cómputo, es la acción de ejecutar un programa, un conjunto de programas u otras operaciones para obtener el desempeño de un cierto hardware. Proveen de métodos para comparar el desempeño de varios tipos de hardware. LINPACK Es una colección de subrutinas en Fortran que analizan y resuelven problemas de mínimos cuadrados y sistemas de ecuaciones lineales. Fue diseñado para usarse en supercomputadoras en los 70s y 80s, por Jack Dongarra, Jim Bunch, Cleve Moler, y Pete Stewart. En la práctica se usa LAPACK. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 11 / 35

Benchmark Es un punto de referencia que se usa para medir y comparar una cosa con otra. En cómputo, es la acción de ejecutar un programa, un conjunto de programas u otras operaciones para obtener el desempeño de un cierto hardware. Proveen de métodos para comparar el desempeño de varios tipos de hardware. LINPACK Es una colección de subrutinas en Fortran que analizan y resuelven problemas de mínimos cuadrados y sistemas de ecuaciones lineales. Fue diseñado para usarse en supercomputadoras en los 70s y 80s, por Jack Dongarra, Jim Bunch, Cleve Moler, y Pete Stewart. En la práctica se usa LAPACK. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 11 / 35

Benchmark Es un punto de referencia que se usa para medir y comparar una cosa con otra. En cómputo, es la acción de ejecutar un programa, un conjunto de programas u otras operaciones para obtener el desempeño de un cierto hardware. Proveen de métodos para comparar el desempeño de varios tipos de hardware. LINPACK Es una colección de subrutinas en Fortran que analizan y resuelven problemas de mínimos cuadrados y sistemas de ecuaciones lineales. Fue diseñado para usarse en supercomputadoras en los 70s y 80s, por Jack Dongarra, Jim Bunch, Cleve Moler, y Pete Stewart. En la práctica se usa LAPACK. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 11 / 35

LINPACK hace uso de BLAS para operaciones básicas entre matrices y vectores. Los benchmarks de LINPACK son una medida del poder de cálculo de punto flotante de una computadora, el resultado se da en FLOPS. En sistemas grandes se usa la version High-Performance LINPACK (HPL). R max Desempeño máximo de punto flotante alcanzado con los benchmarks de LINPACK. R peak Desempeño máximo de punto flotante que teóricamente una computadora puede alcanzar. Cualquier código ejecutado en dicha computadora no puede sobrepasar esta cota. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 12 / 35

LINPACK hace uso de BLAS para operaciones básicas entre matrices y vectores. Los benchmarks de LINPACK son una medida del poder de cálculo de punto flotante de una computadora, el resultado se da en FLOPS. En sistemas grandes se usa la version High-Performance LINPACK (HPL). R max Desempeño máximo de punto flotante alcanzado con los benchmarks de LINPACK. R peak Desempeño máximo de punto flotante que teóricamente una computadora puede alcanzar. Cualquier código ejecutado en dicha computadora no puede sobrepasar esta cota. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 12 / 35

LINPACK hace uso de BLAS para operaciones básicas entre matrices y vectores. Los benchmarks de LINPACK son una medida del poder de cálculo de punto flotante de una computadora, el resultado se da en FLOPS. En sistemas grandes se usa la version High-Performance LINPACK (HPL). R max Desempeño máximo de punto flotante alcanzado con los benchmarks de LINPACK. R peak Desempeño máximo de punto flotante que teóricamente una computadora puede alcanzar. Cualquier código ejecutado en dicha computadora no puede sobrepasar esta cota. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 12 / 35

LINPACK hace uso de BLAS para operaciones básicas entre matrices y vectores. Los benchmarks de LINPACK son una medida del poder de cálculo de punto flotante de una computadora, el resultado se da en FLOPS. En sistemas grandes se usa la version High-Performance LINPACK (HPL). R max Desempeño máximo de punto flotante alcanzado con los benchmarks de LINPACK. R peak Desempeño máximo de punto flotante que teóricamente una computadora puede alcanzar. Cualquier código ejecutado en dicha computadora no puede sobrepasar esta cota. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 12 / 35

LINPACK hace uso de BLAS para operaciones básicas entre matrices y vectores. Los benchmarks de LINPACK son una medida del poder de cálculo de punto flotante de una computadora, el resultado se da en FLOPS. En sistemas grandes se usa la version High-Performance LINPACK (HPL). R max Desempeño máximo de punto flotante alcanzado con los benchmarks de LINPACK. R peak Desempeño máximo de punto flotante que teóricamente una computadora puede alcanzar. Cualquier código ejecutado en dicha computadora no puede sobrepasar esta cota. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 12 / 35

Standard Performance Evaluation Corporation (SPEC) es un grupo formado para establecer, mantener y promocionaer un conjunto de benchmarks relevantes y estandarizados que se pueden usar para medir el desempeño de arquitecturas de cómputo actuales. SPEC desarrolla benchmarks, revisa y publica resultados obtenidos por sus miembros. CPU Graphics/Workstations MPI/OMP Java Client/Server Mail Servers Network File System Power SIP (Session Initiation Protocol) Virtualization Web Servers LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 13 / 35

Standard Performance Evaluation Corporation (SPEC) es un grupo formado para establecer, mantener y promocionaer un conjunto de benchmarks relevantes y estandarizados que se pueden usar para medir el desempeño de arquitecturas de cómputo actuales. SPEC desarrolla benchmarks, revisa y publica resultados obtenidos por sus miembros. CPU Graphics/Workstations MPI/OMP Java Client/Server Mail Servers Network File System Power SIP (Session Initiation Protocol) Virtualization Web Servers LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 13 / 35

Standard Performance Evaluation Corporation (SPEC) es un grupo formado para establecer, mantener y promocionaer un conjunto de benchmarks relevantes y estandarizados que se pueden usar para medir el desempeño de arquitecturas de cómputo actuales. SPEC desarrolla benchmarks, revisa y publica resultados obtenidos por sus miembros. CPU Graphics/Workstations MPI/OMP Java Client/Server Mail Servers Network File System Power SIP (Session Initiation Protocol) Virtualization Web Servers LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 13 / 35

Standard Performance Evaluation Corporation (SPEC) es un grupo formado para establecer, mantener y promocionaer un conjunto de benchmarks relevantes y estandarizados que se pueden usar para medir el desempeño de arquitecturas de cómputo actuales. SPEC desarrolla benchmarks, revisa y publica resultados obtenidos por sus miembros. CPU Graphics/Workstations MPI/OMP Java Client/Server Mail Servers Network File System Power SIP (Session Initiation Protocol) Virtualization Web Servers LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 13 / 35

Standard Performance Evaluation Corporation (SPEC) es un grupo formado para establecer, mantener y promocionaer un conjunto de benchmarks relevantes y estandarizados que se pueden usar para medir el desempeño de arquitecturas de cómputo actuales. SPEC desarrolla benchmarks, revisa y publica resultados obtenidos por sus miembros. CPU Graphics/Workstations MPI/OMP Java Client/Server Mail Servers Network File System Power SIP (Session Initiation Protocol) Virtualization Web Servers LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 13 / 35

Standard Performance Evaluation Corporation (SPEC) es un grupo formado para establecer, mantener y promocionaer un conjunto de benchmarks relevantes y estandarizados que se pueden usar para medir el desempeño de arquitecturas de cómputo actuales. SPEC desarrolla benchmarks, revisa y publica resultados obtenidos por sus miembros. CPU Graphics/Workstations MPI/OMP Java Client/Server Mail Servers Network File System Power SIP (Session Initiation Protocol) Virtualization Web Servers LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 13 / 35

Standard Performance Evaluation Corporation (SPEC) es un grupo formado para establecer, mantener y promocionaer un conjunto de benchmarks relevantes y estandarizados que se pueden usar para medir el desempeño de arquitecturas de cómputo actuales. SPEC desarrolla benchmarks, revisa y publica resultados obtenidos por sus miembros. CPU Graphics/Workstations MPI/OMP Java Client/Server Mail Servers Network File System Power SIP (Session Initiation Protocol) Virtualization Web Servers LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 13 / 35

Standard Performance Evaluation Corporation (SPEC) es un grupo formado para establecer, mantener y promocionaer un conjunto de benchmarks relevantes y estandarizados que se pueden usar para medir el desempeño de arquitecturas de cómputo actuales. SPEC desarrolla benchmarks, revisa y publica resultados obtenidos por sus miembros. CPU Graphics/Workstations MPI/OMP Java Client/Server Mail Servers Network File System Power SIP (Session Initiation Protocol) Virtualization Web Servers LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 13 / 35

Standard Performance Evaluation Corporation (SPEC) es un grupo formado para establecer, mantener y promocionaer un conjunto de benchmarks relevantes y estandarizados que se pueden usar para medir el desempeño de arquitecturas de cómputo actuales. SPEC desarrolla benchmarks, revisa y publica resultados obtenidos por sus miembros. CPU Graphics/Workstations MPI/OMP Java Client/Server Mail Servers Network File System Power SIP (Session Initiation Protocol) Virtualization Web Servers LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 13 / 35

Standard Performance Evaluation Corporation (SPEC) es un grupo formado para establecer, mantener y promocionaer un conjunto de benchmarks relevantes y estandarizados que se pueden usar para medir el desempeño de arquitecturas de cómputo actuales. SPEC desarrolla benchmarks, revisa y publica resultados obtenidos por sus miembros. CPU Graphics/Workstations MPI/OMP Java Client/Server Mail Servers Network File System Power SIP (Session Initiation Protocol) Virtualization Web Servers LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 13 / 35

Standard Performance Evaluation Corporation (SPEC) es un grupo formado para establecer, mantener y promocionaer un conjunto de benchmarks relevantes y estandarizados que se pueden usar para medir el desempeño de arquitecturas de cómputo actuales. SPEC desarrolla benchmarks, revisa y publica resultados obtenidos por sus miembros. CPU Graphics/Workstations MPI/OMP Java Client/Server Mail Servers Network File System Power SIP (Session Initiation Protocol) Virtualization Web Servers LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 13 / 35

Standard Performance Evaluation Corporation (SPEC) es un grupo formado para establecer, mantener y promocionaer un conjunto de benchmarks relevantes y estandarizados que se pueden usar para medir el desempeño de arquitecturas de cómputo actuales. SPEC desarrolla benchmarks, revisa y publica resultados obtenidos por sus miembros. CPU Graphics/Workstations MPI/OMP Java Client/Server Mail Servers Network File System Power SIP (Session Initiation Protocol) Virtualization Web Servers LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 13 / 35

1 Análisis de desempeño Performance Midiendo el desempeño Efectos del acceso a la memoria Análisis asintótico 2 Paralelismo Definiciones Ejemplo : Números primos 3 Tarea LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 14 / 35

ρ WM La razón ρ WM = trabajo(work) / Memoria de un algoritmo es el número de operaciones de punto flotante dividido por el número de localidades de memoria a las que se hace referencia. En ρ WM el denominador cuenta el número de localidades de memoria usadas en el algoritmo, L, y no el número de referencias a memoria, R, realizadas. Loop for(i=0; i<1000; i++) j = i; = R >> L LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 15 / 35

ρ WM La razón ρ WM = trabajo(work) / Memoria de un algoritmo es el número de operaciones de punto flotante dividido por el número de localidades de memoria a las que se hace referencia. En ρ WM el denominador cuenta el número de localidades de memoria usadas en el algoritmo, L, y no el número de referencias a memoria, R, realizadas. Loop for(i=0; i<1000; i++) j = i; = R >> L LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 15 / 35

ρ WM La razón ρ WM = trabajo(work) / Memoria de un algoritmo es el número de operaciones de punto flotante dividido por el número de localidades de memoria a las que se hace referencia. En ρ WM el denominador cuenta el número de localidades de memoria usadas en el algoritmo, L, y no el número de referencias a memoria, R, realizadas. Loop for(i=0; i<1000; i++) j = i; = R >> L LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 15 / 35

ρ WM La razón ρ WM = trabajo(work) / Memoria de un algoritmo es el número de operaciones de punto flotante dividido por el número de localidades de memoria a las que se hace referencia. En ρ WM el denominador cuenta el número de localidades de memoria usadas en el algoritmo, L, y no el número de referencias a memoria, R, realizadas. Loop for(i=0; i<1000; i++) j = i; = R >> L LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 15 / 35

Ejercicio 3.1 Encontrar ρ WM para la suma de N términos: A = N i=1 Esta suma requiere (N 1) sumas y (N + 1) localidades de memoria: ρ WM = a i (N 1) 1 para N grande (N + 1) Comúnmente ρ WM crece conforme el tamaño de los datos crece. Nuestro objetivo será encontrar y diseñar algoritmos con ρ WM grande. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 16 / 35

Ejercicio 3.1 Encontrar ρ WM para la suma de N términos: A = N i=1 Esta suma requiere (N 1) sumas y (N + 1) localidades de memoria: ρ WM = a i (N 1) 1 para N grande (N + 1) Comúnmente ρ WM crece conforme el tamaño de los datos crece. Nuestro objetivo será encontrar y diseñar algoritmos con ρ WM grande. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 16 / 35

Ejercicio 3.1 Encontrar ρ WM para la suma de N términos: A = N i=1 Esta suma requiere (N 1) sumas y (N + 1) localidades de memoria: ρ WM = a i (N 1) 1 para N grande (N + 1) Comúnmente ρ WM crece conforme el tamaño de los datos crece. Nuestro objetivo será encontrar y diseñar algoritmos con ρ WM grande. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 16 / 35

Ejercicio 3.1 Encontrar ρ WM para la suma de N términos: A = N i=1 Esta suma requiere (N 1) sumas y (N + 1) localidades de memoria: ρ WM = a i (N 1) 1 para N grande (N + 1) Comúnmente ρ WM crece conforme el tamaño de los datos crece. Nuestro objetivo será encontrar y diseñar algoritmos con ρ WM grande. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 16 / 35

Ejercicio 3.1 Encontrar ρ WM para la suma de N términos: A = N i=1 Esta suma requiere (N 1) sumas y (N + 1) localidades de memoria: ρ WM = a i (N 1) 1 para N grande (N + 1) Comúnmente ρ WM crece conforme el tamaño de los datos crece. Nuestro objetivo será encontrar y diseñar algoritmos con ρ WM grande. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 16 / 35

El desempeño de una computadora depende de su habilidad para acceder a la memoria. µ (ancho de banda del bus de memoria) La velocidad máxima de acceso a la memoria µ, se conoce como ancho de banda de acceso a la memoria y mide el número de palabras obtenidas por unidad de tiempo. Theorem Supongamos que un algoritmo tiene una cierta ρ WM y es ejecutado en una computadora con una cierta µ. Entonces el desempeño máximo que se puede obtener es µρ WM FLOPS. Este teorema es válido para computadoras tipo von Neumann. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 17 / 35

El desempeño de una computadora depende de su habilidad para acceder a la memoria. µ (ancho de banda del bus de memoria) La velocidad máxima de acceso a la memoria µ, se conoce como ancho de banda de acceso a la memoria y mide el número de palabras obtenidas por unidad de tiempo. Theorem Supongamos que un algoritmo tiene una cierta ρ WM y es ejecutado en una computadora con una cierta µ. Entonces el desempeño máximo que se puede obtener es µρ WM FLOPS. Este teorema es válido para computadoras tipo von Neumann. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 17 / 35

El desempeño de una computadora depende de su habilidad para acceder a la memoria. µ (ancho de banda del bus de memoria) La velocidad máxima de acceso a la memoria µ, se conoce como ancho de banda de acceso a la memoria y mide el número de palabras obtenidas por unidad de tiempo. Theorem Supongamos que un algoritmo tiene una cierta ρ WM y es ejecutado en una computadora con una cierta µ. Entonces el desempeño máximo que se puede obtener es µρ WM FLOPS. Este teorema es válido para computadoras tipo von Neumann. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 17 / 35

El desempeño de una computadora depende de su habilidad para acceder a la memoria. µ (ancho de banda del bus de memoria) La velocidad máxima de acceso a la memoria µ, se conoce como ancho de banda de acceso a la memoria y mide el número de palabras obtenidas por unidad de tiempo. Theorem Supongamos que un algoritmo tiene una cierta ρ WM y es ejecutado en una computadora con una cierta µ. Entonces el desempeño máximo que se puede obtener es µρ WM FLOPS. Este teorema es válido para computadoras tipo von Neumann. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 17 / 35

Ejercicio 3.2 Considere el cálculo del producto de una matriz cuadrada A = (a ij ) por un vector V = (v j ): Calcular ρ WM. (AV) i = n a ij v j para i = 1,..., n j=1 Esta operación requiere de: 2n 2 n FLOP s. Localidades de memoria: n 2 + 2n Por lo tanto: ρ WM = 2n2 n n 2 + 2n 2 LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 18 / 35

Ejercicio 3.2 Considere el cálculo del producto de una matriz cuadrada A = (a ij ) por un vector V = (v j ): Calcular ρ WM. (AV) i = n a ij v j para i = 1,..., n j=1 Esta operación requiere de: 2n 2 n FLOP s. Localidades de memoria: n 2 + 2n Por lo tanto: ρ WM = 2n2 n n 2 + 2n 2 LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 18 / 35

Ejercicio 3.2 Considere el cálculo del producto de una matriz cuadrada A = (a ij ) por un vector V = (v j ): Calcular ρ WM. (AV) i = n a ij v j para i = 1,..., n j=1 Esta operación requiere de: 2n 2 n FLOP s. Localidades de memoria: n 2 + 2n Por lo tanto: ρ WM = 2n2 n n 2 + 2n 2 LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 18 / 35

Ejercicio 3.2 Considere el cálculo del producto de una matriz cuadrada A = (a ij ) por un vector V = (v j ): Calcular ρ WM. (AV) i = n a ij v j para i = 1,..., n j=1 Esta operación requiere de: 2n 2 n FLOP s. Localidades de memoria: n 2 + 2n Por lo tanto: ρ WM = 2n2 n n 2 + 2n 2 LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 18 / 35

1 Análisis de desempeño Performance Midiendo el desempeño Efectos del acceso a la memoria Análisis asintótico 2 Paralelismo Definiciones Ejemplo : Números primos 3 Tarea LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 19 / 35

Cuando se mide el desempeño, se busca el orden de crecimiento de una función, excluyendo constantes y términos de bajo orden. Considerando la función f (n), nos preocupamos por su crecimiento asintótico en el límite cuando n Para estos propósitos se usa la notación O. Notación O Para una función f (n) la cota asintótica superior O(g(n)) implica que existe una constante c 1 que satisface 0 < c 1 < y un entero n 0 0 tal que f (n) c 1 g(n) para toda n n 0. Se dice que f (n) = O(g(n)) LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 20 / 35

Cuando se mide el desempeño, se busca el orden de crecimiento de una función, excluyendo constantes y términos de bajo orden. Considerando la función f (n), nos preocupamos por su crecimiento asintótico en el límite cuando n Para estos propósitos se usa la notación O. Notación O Para una función f (n) la cota asintótica superior O(g(n)) implica que existe una constante c 1 que satisface 0 < c 1 < y un entero n 0 0 tal que f (n) c 1 g(n) para toda n n 0. Se dice que f (n) = O(g(n)) LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 20 / 35

Cuando se mide el desempeño, se busca el orden de crecimiento de una función, excluyendo constantes y términos de bajo orden. Considerando la función f (n), nos preocupamos por su crecimiento asintótico en el límite cuando n Para estos propósitos se usa la notación O. Notación O Para una función f (n) la cota asintótica superior O(g(n)) implica que existe una constante c 1 que satisface 0 < c 1 < y un entero n 0 0 tal que f (n) c 1 g(n) para toda n n 0. Se dice que f (n) = O(g(n)) LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 20 / 35

Cuando se mide el desempeño, se busca el orden de crecimiento de una función, excluyendo constantes y términos de bajo orden. Considerando la función f (n), nos preocupamos por su crecimiento asintótico en el límite cuando n Para estos propósitos se usa la notación O. Notación O Para una función f (n) la cota asintótica superior O(g(n)) implica que existe una constante c 1 que satisface 0 < c 1 < y un entero n 0 0 tal que f (n) c 1 g(n) para toda n n 0. Se dice que f (n) = O(g(n)) LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 20 / 35

Ejercicio 3.3 Mostrar que la cota superior de la función an 2 + bn es O(n 2 ), de tal manera que existe una constante c 1 tal que se satisface la desigualdad an 2 + bn c 1 n 2. Cual es el valor mínimo de n para que esto se cumpla?. Ejercicio 3.4 Escribir ρ WM del ejercicio 3.1 en términos la notación O. Ejercicio 3.5 Suponga que se tienen 2 algoritmos para resolver un problema: el algoritmo F cuyo tiempo de ejecución es f (n) = an 2 = O(n 2 ) y el algoritmo G cuyo tiempo es g(n) = bn = O(n). Bajo que condiciones se tiene que f (n) < g(n)?. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 21 / 35

Ejercicio 3.3 Mostrar que la cota superior de la función an 2 + bn es O(n 2 ), de tal manera que existe una constante c 1 tal que se satisface la desigualdad an 2 + bn c 1 n 2. Cual es el valor mínimo de n para que esto se cumpla?. Ejercicio 3.4 Escribir ρ WM del ejercicio 3.1 en términos la notación O. Ejercicio 3.5 Suponga que se tienen 2 algoritmos para resolver un problema: el algoritmo F cuyo tiempo de ejecución es f (n) = an 2 = O(n 2 ) y el algoritmo G cuyo tiempo es g(n) = bn = O(n). Bajo que condiciones se tiene que f (n) < g(n)?. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 21 / 35

Ejercicio 3.3 Mostrar que la cota superior de la función an 2 + bn es O(n 2 ), de tal manera que existe una constante c 1 tal que se satisface la desigualdad an 2 + bn c 1 n 2. Cual es el valor mínimo de n para que esto se cumpla?. Ejercicio 3.4 Escribir ρ WM del ejercicio 3.1 en términos la notación O. Ejercicio 3.5 Suponga que se tienen 2 algoritmos para resolver un problema: el algoritmo F cuyo tiempo de ejecución es f (n) = an 2 = O(n 2 ) y el algoritmo G cuyo tiempo es g(n) = bn = O(n). Bajo que condiciones se tiene que f (n) < g(n)?. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 21 / 35

1 Análisis de desempeño Performance Midiendo el desempeño Efectos del acceso a la memoria Análisis asintótico 2 Paralelismo Definiciones Ejemplo : Números primos 3 Tarea LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 22 / 35

Suma de N números : A = N i=1 a i Es un tipo de operación conocida como reducción (reduction): reduce un vector a un escalar. Supóngase que N es un múltiplo entero de P, es decir: N = kp. Entonces se puede dividir la operación de reducción en P sumas parciales: Entonces: A j = jk i=(j 1)k+1 A j = a i para j = 1,..., P. P i=1 Se han creado P tareas independientes. A i LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 23 / 35

Suma de N números : A = N i=1 a i Es un tipo de operación conocida como reducción (reduction): reduce un vector a un escalar. Supóngase que N es un múltiplo entero de P, es decir: N = kp. Entonces se puede dividir la operación de reducción en P sumas parciales: Entonces: A j = jk i=(j 1)k+1 A j = a i para j = 1,..., P. P i=1 Se han creado P tareas independientes. A i LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 23 / 35

Suma de N números : A = N i=1 a i Es un tipo de operación conocida como reducción (reduction): reduce un vector a un escalar. Supóngase que N es un múltiplo entero de P, es decir: N = kp. Entonces se puede dividir la operación de reducción en P sumas parciales: Entonces: A j = jk i=(j 1)k+1 A j = a i para j = 1,..., P. P i=1 Se han creado P tareas independientes. A i LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 23 / 35

Suma de N números : A = N i=1 a i Es un tipo de operación conocida como reducción (reduction): reduce un vector a un escalar. Supóngase que N es un múltiplo entero de P, es decir: N = kp. Entonces se puede dividir la operación de reducción en P sumas parciales: Entonces: A j = jk i=(j 1)k+1 A j = a i para j = 1,..., P. P i=1 Se han creado P tareas independientes. A i LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 23 / 35

Suma de N números : A = N i=1 a i Es un tipo de operación conocida como reducción (reduction): reduce un vector a un escalar. Supóngase que N es un múltiplo entero de P, es decir: N = kp. Entonces se puede dividir la operación de reducción en P sumas parciales: Entonces: A j = jk i=(j 1)k+1 A j = a i para j = 1,..., P. P i=1 Se han creado P tareas independientes. A i LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 23 / 35

Suma de N números : A = N i=1 a i Es un tipo de operación conocida como reducción (reduction): reduce un vector a un escalar. Supóngase que N es un múltiplo entero de P, es decir: N = kp. Entonces se puede dividir la operación de reducción en P sumas parciales: Entonces: A j = jk i=(j 1)k+1 A j = a i para j = 1,..., P. P i=1 Se han creado P tareas independientes. A i LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 23 / 35

Tarea Es una parte del cálculo que puede realizarse independiente de otras partes del mismo cálculo. Una tarea es algo que puede ser cálculado por un procedimiento (subrutina, función, método) separado del proceso principal (main). La razón k = N/P se conoce como granularidad. Granularidad La granularidad de un conjunto de tareas paralelas es la cantidad de trabajo (de la tarea más pequeña) que se puede hacer de forma independiente de otros cálculos. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 24 / 35

Tarea Es una parte del cálculo que puede realizarse independiente de otras partes del mismo cálculo. Una tarea es algo que puede ser cálculado por un procedimiento (subrutina, función, método) separado del proceso principal (main). La razón k = N/P se conoce como granularidad. Granularidad La granularidad de un conjunto de tareas paralelas es la cantidad de trabajo (de la tarea más pequeña) que se puede hacer de forma independiente de otros cálculos. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 24 / 35

Tarea Es una parte del cálculo que puede realizarse independiente de otras partes del mismo cálculo. Una tarea es algo que puede ser cálculado por un procedimiento (subrutina, función, método) separado del proceso principal (main). La razón k = N/P se conoce como granularidad. Granularidad La granularidad de un conjunto de tareas paralelas es la cantidad de trabajo (de la tarea más pequeña) que se puede hacer de forma independiente de otros cálculos. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 24 / 35

La paralelización de un código consiste en descubrir y/o crear cálculos que se pueden realizar de manera independiente con un mínimo de comunicación. Paralelismo trivial (embarrassingly parallel) Tareas que se pueden realizar de manera independiente de cualquier otro cálculo, sin ninguna comunicación entre ellas. La mayoría de los código científicos consisten de ciclos (loop), por lo que es importante el concepto de espacio de iteración. Espacio de iteración (iteration space) Es un subconjunto del producto Cartesiano de los arreglos de enteros que contienen todos los posibles valores de los índices de los ciclos. La dimensión de este producto es el número de ciclos anidados. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 25 / 35

La paralelización de un código consiste en descubrir y/o crear cálculos que se pueden realizar de manera independiente con un mínimo de comunicación. Paralelismo trivial (embarrassingly parallel) Tareas que se pueden realizar de manera independiente de cualquier otro cálculo, sin ninguna comunicación entre ellas. La mayoría de los código científicos consisten de ciclos (loop), por lo que es importante el concepto de espacio de iteración. Espacio de iteración (iteration space) Es un subconjunto del producto Cartesiano de los arreglos de enteros que contienen todos los posibles valores de los índices de los ciclos. La dimensión de este producto es el número de ciclos anidados. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 25 / 35

La paralelización de un código consiste en descubrir y/o crear cálculos que se pueden realizar de manera independiente con un mínimo de comunicación. Paralelismo trivial (embarrassingly parallel) Tareas que se pueden realizar de manera independiente de cualquier otro cálculo, sin ninguna comunicación entre ellas. La mayoría de los código científicos consisten de ciclos (loop), por lo que es importante el concepto de espacio de iteración. Espacio de iteración (iteration space) Es un subconjunto del producto Cartesiano de los arreglos de enteros que contienen todos los posibles valores de los índices de los ciclos. La dimensión de este producto es el número de ciclos anidados. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 25 / 35

La paralelización de un código consiste en descubrir y/o crear cálculos que se pueden realizar de manera independiente con un mínimo de comunicación. Paralelismo trivial (embarrassingly parallel) Tareas que se pueden realizar de manera independiente de cualquier otro cálculo, sin ninguna comunicación entre ellas. La mayoría de los código científicos consisten de ciclos (loop), por lo que es importante el concepto de espacio de iteración. Espacio de iteración (iteration space) Es un subconjunto del producto Cartesiano de los arreglos de enteros que contienen todos los posibles valores de los índices de los ciclos. La dimensión de este producto es el número de ciclos anidados. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 25 / 35

Descomposición del espacio de iteración Consiste de una colección de subconjuntos disjuntos del espacio de iteración cuya unión es todo el espacio de iteración. Paralelismo de datos Consiste en descomponer un conjunto grande de datos en subconjuntos y y realizar la misma tarea (o una similar) sobre cada subconjunto. El punto clave es la homogeneidad de las tareas, lo cual permite dividir en formas arbitrarias los datos y aplicar el mismo procedimiento. Cuando se trata de ciclos, en general cada tarea opera sobre una porción del espacio de iteración, (loop parallelism). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 26 / 35

Descomposición del espacio de iteración Consiste de una colección de subconjuntos disjuntos del espacio de iteración cuya unión es todo el espacio de iteración. Paralelismo de datos Consiste en descomponer un conjunto grande de datos en subconjuntos y y realizar la misma tarea (o una similar) sobre cada subconjunto. El punto clave es la homogeneidad de las tareas, lo cual permite dividir en formas arbitrarias los datos y aplicar el mismo procedimiento. Cuando se trata de ciclos, en general cada tarea opera sobre una porción del espacio de iteración, (loop parallelism). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 26 / 35

Descomposición del espacio de iteración Consiste de una colección de subconjuntos disjuntos del espacio de iteración cuya unión es todo el espacio de iteración. Paralelismo de datos Consiste en descomponer un conjunto grande de datos en subconjuntos y y realizar la misma tarea (o una similar) sobre cada subconjunto. El punto clave es la homogeneidad de las tareas, lo cual permite dividir en formas arbitrarias los datos y aplicar el mismo procedimiento. Cuando se trata de ciclos, en general cada tarea opera sobre una porción del espacio de iteración, (loop parallelism). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 26 / 35

Descomposición del espacio de iteración Consiste de una colección de subconjuntos disjuntos del espacio de iteración cuya unión es todo el espacio de iteración. Paralelismo de datos Consiste en descomponer un conjunto grande de datos en subconjuntos y y realizar la misma tarea (o una similar) sobre cada subconjunto. El punto clave es la homogeneidad de las tareas, lo cual permite dividir en formas arbitrarias los datos y aplicar el mismo procedimiento. Cuando se trata de ciclos, en general cada tarea opera sobre una porción del espacio de iteración, (loop parallelism). LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 26 / 35

Un requerimiento en la descomposición es que el trabajo esté balanceado entre las tareas, las cuales generalmente se llevan a cabo en procesadores independientes. Si el trabajo no está igualmente distribuido, un procesador puede tardar más que otro. Balance de carga Supongamos que un conjunto de tareas paralelas se ejecutan en un tiempo t i para i = 1,..., P. El tiempo promedio de ejecución es: ave{t i : 1 i P} = 1 P 1 i P El balance de carga β de este conjunto de tareas es: t i. β = ave{t i : 1 i P} max{t i : 1 i P} LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 27 / 35

Un requerimiento en la descomposición es que el trabajo esté balanceado entre las tareas, las cuales generalmente se llevan a cabo en procesadores independientes. Si el trabajo no está igualmente distribuido, un procesador puede tardar más que otro. Balance de carga Supongamos que un conjunto de tareas paralelas se ejecutan en un tiempo t i para i = 1,..., P. El tiempo promedio de ejecución es: ave{t i : 1 i P} = 1 P 1 i P El balance de carga β de este conjunto de tareas es: t i. β = ave{t i : 1 i P} max{t i : 1 i P} LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 27 / 35

Un requerimiento en la descomposición es que el trabajo esté balanceado entre las tareas, las cuales generalmente se llevan a cabo en procesadores independientes. Si el trabajo no está igualmente distribuido, un procesador puede tardar más que otro. Balance de carga Supongamos que un conjunto de tareas paralelas se ejecutan en un tiempo t i para i = 1,..., P. El tiempo promedio de ejecución es: ave{t i : 1 i P} = 1 P 1 i P El balance de carga β de este conjunto de tareas es: t i. β = ave{t i : 1 i P} max{t i : 1 i P} LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 27 / 35

En el caso ideal se tiene β = 1. Cuando β difiere de 1, podemos medir la diferencia entre la tarea mas lenta de el promedio: 1 β = max{t i : 1 i P} ave{t i : 1 i P} max{t i : 1 i P} Si esta diferencia es despreciable, entonces se dice que el conjunto de tareas está balanceado. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 28 / 35

En el caso ideal se tiene β = 1. Cuando β difiere de 1, podemos medir la diferencia entre la tarea mas lenta de el promedio: 1 β = max{t i : 1 i P} ave{t i : 1 i P} max{t i : 1 i P} Si esta diferencia es despreciable, entonces se dice que el conjunto de tareas está balanceado. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 28 / 35

En el caso ideal se tiene β = 1. Cuando β difiere de 1, podemos medir la diferencia entre la tarea mas lenta de el promedio: 1 β = max{t i : 1 i P} ave{t i : 1 i P} max{t i : 1 i P} Si esta diferencia es despreciable, entonces se dice que el conjunto de tareas está balanceado. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 28 / 35

1 Análisis de desempeño Performance Midiendo el desempeño Efectos del acceso a la memoria Análisis asintótico 2 Paralelismo Definiciones Ejemplo : Números primos 3 Tarea LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 29 / 35

Para un entero k se define el conjunto S(k) de números primos menores que k (S(16) = {2, 3, 5, 7, 11, 13}) Podemos checar la primalidad de enteros menores que k 2 probando si hay divisores de n en S(k), donde k n k 2. Si n = j i < k 2 entonces ya sea i o j debe ser menor que k. For n = k, k + 1,..., k 2 1 For π S(k) I f ( π d i v i d e a n ) E x i t End I f ( se completa e l c i c l o ) Agregar n a S(k 2 ) End LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 30 / 35

Para un entero k se define el conjunto S(k) de números primos menores que k (S(16) = {2, 3, 5, 7, 11, 13}) Podemos checar la primalidad de enteros menores que k 2 probando si hay divisores de n en S(k), donde k n k 2. Si n = j i < k 2 entonces ya sea i o j debe ser menor que k. For n = k, k + 1,..., k 2 1 For π S(k) I f ( π d i v i d e a n ) E x i t End I f ( se completa e l c i c l o ) Agregar n a S(k 2 ) End LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 30 / 35

Para un entero k se define el conjunto S(k) de números primos menores que k (S(16) = {2, 3, 5, 7, 11, 13}) Podemos checar la primalidad de enteros menores que k 2 probando si hay divisores de n en S(k), donde k n k 2. Si n = j i < k 2 entonces ya sea i o j debe ser menor que k. For n = k, k + 1,..., k 2 1 For π S(k) I f ( π d i v i d e a n ) E x i t End I f ( se completa e l c i c l o ) Agregar n a S(k 2 ) End LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 30 / 35

Para un entero k se define el conjunto S(k) de números primos menores que k (S(16) = {2, 3, 5, 7, 11, 13}) Podemos checar la primalidad de enteros menores que k 2 probando si hay divisores de n en S(k), donde k n k 2. Si n = j i < k 2 entonces ya sea i o j debe ser menor que k. For n = k, k + 1,..., k 2 1 For π S(k) I f ( π d i v i d e a n ) E x i t End I f ( se completa e l c i c l o ) Agregar n a S(k 2 ) End LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 30 / 35

Para un entero k se define el conjunto S(k) de números primos menores que k (S(16) = {2, 3, 5, 7, 11, 13}) Podemos checar la primalidad de enteros menores que k 2 probando si hay divisores de n en S(k), donde k n k 2. Si n = j i < k 2 entonces ya sea i o j debe ser menor que k. For n = k, k + 1,..., k 2 1 For π S(k) I f ( π d i v i d e a n ) E x i t End I f ( se completa e l c i c l o ) Agregar n a S(k 2 ) End LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 30 / 35

Observe que el espacio de iteración en este caso es un subespacio del producto cartesiano y no se conoce de antemano. Los ciclos en el algoritmo anterior se pueden paralelizar (descomponer) de diferentes maneras: Dividir el ciclo sobre n en P diferentes tareas. Dividir el ciclo sobre π en P diferentes tareas. Strip or Slab decomposition Una descomposición de este tipo corresponde a la subdivisión de solo una de las dimensiones, usualmente en segmentos de igual longitud y que consiste de elementos contiguos en el espacio de iteración. Esto corresponde a subdividir uno de los ciclos anidados. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 31 / 35

Observe que el espacio de iteración en este caso es un subespacio del producto cartesiano y no se conoce de antemano. Los ciclos en el algoritmo anterior se pueden paralelizar (descomponer) de diferentes maneras: Dividir el ciclo sobre n en P diferentes tareas. Dividir el ciclo sobre π en P diferentes tareas. Strip or Slab decomposition Una descomposición de este tipo corresponde a la subdivisión de solo una de las dimensiones, usualmente en segmentos de igual longitud y que consiste de elementos contiguos en el espacio de iteración. Esto corresponde a subdividir uno de los ciclos anidados. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 31 / 35

Observe que el espacio de iteración en este caso es un subespacio del producto cartesiano y no se conoce de antemano. Los ciclos en el algoritmo anterior se pueden paralelizar (descomponer) de diferentes maneras: Dividir el ciclo sobre n en P diferentes tareas. Dividir el ciclo sobre π en P diferentes tareas. Strip or Slab decomposition Una descomposición de este tipo corresponde a la subdivisión de solo una de las dimensiones, usualmente en segmentos de igual longitud y que consiste de elementos contiguos en el espacio de iteración. Esto corresponde a subdividir uno de los ciclos anidados. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 31 / 35

Observe que el espacio de iteración en este caso es un subespacio del producto cartesiano y no se conoce de antemano. Los ciclos en el algoritmo anterior se pueden paralelizar (descomponer) de diferentes maneras: Dividir el ciclo sobre n en P diferentes tareas. Dividir el ciclo sobre π en P diferentes tareas. Strip or Slab decomposition Una descomposición de este tipo corresponde a la subdivisión de solo una de las dimensiones, usualmente en segmentos de igual longitud y que consiste de elementos contiguos en el espacio de iteración. Esto corresponde a subdividir uno de los ciclos anidados. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 31 / 35

Observe que el espacio de iteración en este caso es un subespacio del producto cartesiano y no se conoce de antemano. Los ciclos en el algoritmo anterior se pueden paralelizar (descomponer) de diferentes maneras: Dividir el ciclo sobre n en P diferentes tareas. Dividir el ciclo sobre π en P diferentes tareas. Strip or Slab decomposition Una descomposición de este tipo corresponde a la subdivisión de solo una de las dimensiones, usualmente en segmentos de igual longitud y que consiste de elementos contiguos en el espacio de iteración. Esto corresponde a subdividir uno de los ciclos anidados. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 31 / 35

Dividir el ciclo sobre n b = (k 2 k)/p For p = 1,..., P For n = k + (p 1)b,..., k + pb For π S(k) I f ( π d i v i d e a n ) E x i t End I f ( se completa e l c i c l o ) Agregar n a S p (k 2 ) End End Combinar : S(k 2 ) = P p=1 S p(k 2 ) La variable p identifica el proceso o procesador. S p (k 2 ) son los primos encontrados por el procesador p. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 32 / 35

Dividir el ciclo sobre n b = (k 2 k)/p For p = 1,..., P For n = k + (p 1)b,..., k + pb For π S(k) I f ( π d i v i d e a n ) E x i t End I f ( se completa e l c i c l o ) Agregar n a S p (k 2 ) End End Combinar : S(k 2 ) = P p=1 S p(k 2 ) La variable p identifica el proceso o procesador. S p (k 2 ) son los primos encontrados por el procesador p. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 32 / 35

Dividir el ciclo sobre π En este caso cada procesador usa un conjunto de primos en sus pruebas, pero checa todos los n [k, k 2 1]. Algunos n serán dividos por más primos que en el caso anterior (más trabajo aritmético). Esto no implica que el tiempo total será mayor. Combinar : S(k 2 ) = P p=1 S p(k 2 ) LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 33 / 35

Dividir el ciclo sobre π En este caso cada procesador usa un conjunto de primos en sus pruebas, pero checa todos los n [k, k 2 1]. Algunos n serán dividos por más primos que en el caso anterior (más trabajo aritmético). Esto no implica que el tiempo total será mayor. Combinar : S(k 2 ) = P p=1 S p(k 2 ) LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 33 / 35

Dividir el ciclo sobre π En este caso cada procesador usa un conjunto de primos en sus pruebas, pero checa todos los n [k, k 2 1]. Algunos n serán dividos por más primos que en el caso anterior (más trabajo aritmético). Esto no implica que el tiempo total será mayor. Combinar : S(k 2 ) = P p=1 S p(k 2 ) LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 33 / 35

Dividir el ciclo sobre π En este caso cada procesador usa un conjunto de primos en sus pruebas, pero checa todos los n [k, k 2 1]. Algunos n serán dividos por más primos que en el caso anterior (más trabajo aritmético). Esto no implica que el tiempo total será mayor. Combinar : S(k 2 ) = P p=1 S p(k 2 ) LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 33 / 35

Tarea 1 1 Calcular ρ W M para el producto de dos matrices de n n. Escribir el resultado en notación O y explicar el resultado. (AB) ij ) = n a ij b kj para j = 1,..., n k=1 2 Escribir un programa para calcular el valor de pi usando la suma: π = N ( 1) i+1 /(2i 1) i=1 Determinar el desempeño como función de N, escribirlo en notación O y explicar su resultado. Un modelo esperado para este cálculo es tn = a + bn. Usar sus tiempos para estimar los valores de a y b. Graficar sus resultados. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 34 / 35

Tarea 1 1 Calcular ρ W M para el producto de dos matrices de n n. Escribir el resultado en notación O y explicar el resultado. (AB) ij ) = n a ij b kj para j = 1,..., n k=1 2 Escribir un programa para calcular el valor de pi usando la suma: π = N ( 1) i+1 /(2i 1) i=1 Determinar el desempeño como función de N, escribirlo en notación O y explicar su resultado. Un modelo esperado para este cálculo es tn = a + bn. Usar sus tiempos para estimar los valores de a y b. Graficar sus resultados. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 34 / 35

Tarea 1 1 Calcular ρ W M para el producto de dos matrices de n n. Escribir el resultado en notación O y explicar el resultado. (AB) ij ) = n a ij b kj para j = 1,..., n k=1 2 Escribir un programa para calcular el valor de pi usando la suma: π = N ( 1) i+1 /(2i 1) i=1 Determinar el desempeño como función de N, escribirlo en notación O y explicar su resultado. Un modelo esperado para este cálculo es tn = a + bn. Usar sus tiempos para estimar los valores de a y b. Graficar sus resultados. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 34 / 35

Tarea 1 1 Calcular ρ W M para el producto de dos matrices de n n. Escribir el resultado en notación O y explicar el resultado. (AB) ij ) = n a ij b kj para j = 1,..., n k=1 2 Escribir un programa para calcular el valor de pi usando la suma: π = N ( 1) i+1 /(2i 1) i=1 Determinar el desempeño como función de N, escribirlo en notación O y explicar su resultado. Un modelo esperado para este cálculo es tn = a + bn. Usar sus tiempos para estimar los valores de a y b. Graficar sus resultados. LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 34 / 35

Tarea 1 2 Escribir un programa para calcular primos usando el algoritmo visto en clase. Comenzar con S(5) = {2, 3}. El programa debe determinar los primos en el intervalo [5, 25]. Luego hacer k = 25 y calcular los primos en el intervalo [25, 125]. Continuar con este proceso hasta una cota superior dada por el usuario. Medir tiempos y graficarlos. Cual es el desempeño de su código? LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 35 / 35

Tarea 1 2 Escribir un programa para calcular primos usando el algoritmo visto en clase. Comenzar con S(5) = {2, 3}. El programa debe determinar los primos en el intervalo [5, 25]. Luego hacer k = 25 y calcular los primos en el intervalo [25, 125]. Continuar con este proceso hasta una cota superior dada por el usuario. Medir tiempos y graficarlos. Cual es el desempeño de su código? LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 35 / 35

Tarea 1 2 Escribir un programa para calcular primos usando el algoritmo visto en clase. Comenzar con S(5) = {2, 3}. El programa debe determinar los primos en el intervalo [5, 25]. Luego hacer k = 25 y calcular los primos en el intervalo [25, 125]. Continuar con este proceso hasta una cota superior dada por el usuario. Medir tiempos y graficarlos. Cual es el desempeño de su código? LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 35 / 35

Tarea 1 2 Escribir un programa para calcular primos usando el algoritmo visto en clase. Comenzar con S(5) = {2, 3}. El programa debe determinar los primos en el intervalo [5, 25]. Luego hacer k = 25 y calcular los primos en el intervalo [25, 125]. Continuar con este proceso hasta una cota superior dada por el usuario. Medir tiempos y graficarlos. Cual es el desempeño de su código? LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 35 / 35

Tarea 1 2 Escribir un programa para calcular primos usando el algoritmo visto en clase. Comenzar con S(5) = {2, 3}. El programa debe determinar los primos en el intervalo [5, 25]. Luego hacer k = 25 y calcular los primos en el intervalo [25, 125]. Continuar con este proceso hasta una cota superior dada por el usuario. Medir tiempos y graficarlos. Cual es el desempeño de su código? LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 35 / 35

Tarea 1 2 Escribir un programa para calcular primos usando el algoritmo visto en clase. Comenzar con S(5) = {2, 3}. El programa debe determinar los primos en el intervalo [5, 25]. Luego hacer k = 25 y calcular los primos en el intervalo [25, 125]. Continuar con este proceso hasta una cota superior dada por el usuario. Medir tiempos y graficarlos. Cual es el desempeño de su código? LMCS (UNAM) Comp. Científica en Paralelo IIMAS Semestre 2009 II 35 / 35