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