Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Analisis de Rendimiento.

Slides:



Advertisements
Presentaciones similares
Org. y Arquitectura del Computador
Advertisements

Complejidad Computacional
Complejidad Computacional
Capítulo 17 Tecnología.
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Protistas, hongos, plantas y animales. Núcleo y organelos membranosos.
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
Algoritmos paralelos Lab. 1: Introducción
Programación Paralela Dr. Mario Rossainz López FCC- BUAP
El Diseño de Algoritmos Paralelos
INTEGRACIÓN.
Herramientas para el acceso directo a memoria en C++
El Algoritmo de Floyd Capítulo 6.
Algoritmos de ordenación
Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte
Análisis y Diseño de Algoritmos
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Semana 5 Subprogramas..
Tres Algoritmos Paralelos para Multiplicación Matriz Vector
INTEL CONFIDENTIAL Metodología de programación paralela Intel Software College.
MODELOS DE ELECCIÓN BINARIA: ANÁLISIS LOGIT
Señales Limitadas por Banda y Teorema de Muestreo
Análisis de Algoritmos
Relaciones de masa en las reacciones químicas
Procesamiento paralelo
Programación Científica
Análisis de Algoritmos
Aplicado a programas openMP
Introducción al análisis de algoritmos
Pertinencia de la enseñanza del cómputo paralelo en el currículo de las ingenierías. Proyecto PAPIME PE
UNIVERSIDAD NACIONAL DEL NORDESTE
Copyright © The McGraw-Hill Companies, Inc
Determinación del precio
METODOLOGÍA DE LA PROGRAMACIÓN
El Proceso de Software es la única manera de desarrollar sistemas de calidad. F. o V. Justifica tu respuesta. Que tiene que ver la globalización.
Termoquímica Capítulo 6
Material de apoyo Unidad 4 Estructura de datos
Planificación de Procesos
ESTIMACIÓN DE COEFICIENTES DE MÁXIMA VEROSIMILITUD
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
MODULE 32 Copyright © 2005 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Psicoanalistas Neo-Freudianos Inconsciente.
Planeación de la capacidad Es la planeación especifica del nivel de recursos, lo que le da soporte a una empresa para una mejor producción. Requiere dos.
COSTO DE CAPITAL PARTE II
Arquitectura de Von Neumann
Química.
Parte I. Estructuras de Datos.
Parte III. Teoría de la Empresa
Análisis de algoritmos Generalidades
El Cedazo de Eratosthenes Capítulo 5. Metas Analizar métodos de asignar bloques (“block allocation schemes”) Entender la función MPI_Bcast Estudiar métodos.
Cinética química QUIMICA GENERAL
Copyright © 2005 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Module 21: Pensamiento Keith Brofsky/Getty Images.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Capítulo 11 Matrices especiales y Gauss-Seidel.
Flujo en redes Def: una red N es un grafo orientado conexo que tiene dos nodos distinguidos una fuente s con grado de salida positivo y un sumidero t con.
Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)
Oscar F. Bedoya L. Fundamentos de análisis y diseño de algoritmos.
Diseño y análisis de algoritmos Análisis de Algoritmos II.
La producción 1.
Capítulo 15: Aspectos éticos y legales
El dinero, la inflación y la tasa de interés en el modelo de equilibrio del mercado Referencia: Barro, Macroeconomics, Capítulo 8, Massachusets Institute.
Capítulo 9: División de redes IP en subredes
Dificultad y Discriminación
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Complejidad algorítmica.
Redox- Corrosión Tema 6 Copyright © The McGraw-Hill Companies, Inc.  Permission required for reproduction or display.
© 2008 Cisco Systems, Inc. Todos los derechos reservados.Información confidencial de Cisco Presentation_ID 1 Capítulo 9: División de redes IP en subredes.
MEMORIA DINÁMICA.
Tema 1. Estructuras de datos Objetivo: Objetivo: El alumno resolverá problemas de almacenamiento, recuperación y ordenamiento de datos y las técnicas de.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Blank & Tarquin: 5 th edition. Ch.13 Authored by Dr. Don Smith,
Transcripción de la presentación:

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Analisis de Rendimiento

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Metas Predecir el rendimiento de programas paralelos Predecir el rendimiento de programas paralelos Entender los obstáculos que impiden mejor rendimiento Entender los obstáculos que impiden mejor rendimiento

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Bosquejo Formula General para speedup Formula General para speedup La Ley de Amdahl La Ley de Amdahl La Ley de Gustafson-Barsis La Ley de Gustafson-Barsis La Métrica de Karp-Flatt La Métrica de Karp-Flatt La Métrica de Isoeficiencia La Métrica de Isoeficiencia

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Speedup Speedup = t s /t p donde t s es el tiempo que se requiere para ejecutar el programa secuencialmente y t p es el tiempo que se requiere para ejecutar el programa en paralelo Speedup = t s /t p donde t s es el tiempo que se requiere para ejecutar el programa secuencialmente y t p es el tiempo que se requiere para ejecutar el programa en paralelo Quinn denota speedup por ψ(n,p) donde n es el tamaño del problema y p es el número de procesos Quinn denota speedup por ψ(n,p) donde n es el tamaño del problema y p es el número de procesos

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Speedup (cont)  ψ(n,p)≤p  ψ(n,p)=p si el problema se particiona perfectamente en p procesos iguales y no hay ningun “overhead” debido a, por ejemplo, comunicaciones, coordenació de procesos, el costo de particionar, etc.

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Los Componentes de Tiempo de Ejecutación Computaciones que tienen que hacer secuencialmente:  (n) Computaciones que tienen que hacer secuencialmente:  (n) Computaciones que se pueden llevar a cabo en paralelo:  (n) Computaciones que se pueden llevar a cabo en paralelo:  (n) Operaciones de comunicaciones:  (n,p) Operaciones de comunicaciones:  (n,p)

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Expresión para Speedup t s =  (n) +  (n) t s =  (n) +  (n) t p =  (n) +  (n)/p +  (n,p) t p =  (n) +  (n)/p +  (n,p) Por lo tanto, Por lo tanto, ψ(n,p) ≤ (  (n) +  (n))/(  (n) +  (n)/p +  (n,p)) ψ(n,p) ≤ (  (n) +  (n))/(  (n) +  (n)/p +  (n,p))

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.  (n)/p Aumentar el número de procesadores reduce el tiempo computacional Aumentar el número de procesadores reduce el tiempo computacional  (n)/p

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.  (n,p) El tiempo de comunicaciones crece con la cantidad de procesadores El tiempo de comunicaciones crece con la cantidad de procesadores  (n,p)

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. En algun momento el tiempo de comunicaciones será mayor que el tiempo computacional En algun momento el tiempo de comunicaciones será mayor que el tiempo computacional  (n)/p +  (n,p)

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Speedup

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Eficiencia Eficiencia = t S / (p*t p ) donde p es el número de procesadores Eficiencia = t S / (p*t p ) donde p es el número de procesadores Ya que t p ≤ t S / p, tenemos que Ya que t p ≤ t S / p, tenemos que 0 ≤ Eficiencia ≤ 1 0 ≤ Eficiencia ≤ 1 Quinn denota eficiencia por  (n,p) Quinn denota eficiencia por  (n,p) Notemos que  (n,p)= ψ(n,p)/p Notemos que  (n,p)= ψ(n,p)/p

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. La Ley de Amdahl ψ(n,p) ≤ (  (n) +  (n))/(  (n) +  (n)/p +  (n,p)) ≤ (  (n) +  (n))/(  (n) +  (n)/p ) ≤ (  (n) +  (n))/(  (n) +  (n)/p ) Si f es la porción de la computación que es inherentemente secuencial, es decir que f=  (n)/(  (n) +  (n)), entonces ψ ≤ 1/(f+(1-f)/p) ψ ≤ 1/(f+(1-f)/p) Notemos que ψ ≤ 1/f

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Limitaciones de la Ley de Amdahl En el pasado se creia que fue un limite fatal al futuro de paralelismo. Sin embargo,  su demostración tiene que ver con los pasos de un algorítmo específico y no toma en consideración que otro algorítmo con mas paralelismo podria existir.  trata el tamaño de problema como una constante, pero en la práctica la proporción secuencial de un programa decrece con el tamaño,

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Otras Limitaciones Ignora  (n,p) Ignora  (n,p) Sobre estima el speedup que se puede lograr Sobre estima el speedup que se puede lograr

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. El Efecto Amdahl En la práctica, el tiempo de comunicación  (n,p) tiene complexidad menor que  (n)/p (i.e., el tiempo para la parte paralela) En la práctica, el tiempo de comunicación  (n,p) tiene complexidad menor que  (n)/p (i.e., el tiempo para la parte paralela) Cuando n crece,  (n)/p domina a  (n,p) Cuando n crece,  (n)/p domina a  (n,p) Cuando n crece, Cuando n crece,  La proporción secuencial decrece  Speedup crece

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Illustration of Amdahl Effect n = 100 n = 1,000 n = 10,000 Speedup Processors

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Resumen de la Ley de Amdahl Trata tamaño como constante Trata tamaño como constante Demuestra como el tiempo de ejecutación decrece cuando el número de procesadores crece Demuestra como el tiempo de ejecutación decrece cuando el número de procesadores crece Profesionales en computación paralela no creean que la ley de Amdahl limita el futuro de computación paralela, como originalmente creian. Profesionales en computación paralela no creean que la ley de Amdahl limita el futuro de computación paralela, como originalmente creian.

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. La Métrica Isoeficiencia Un sistema paralelo se define como un programa paralelo que se está ejecutando en una computadora paralela Un sistema paralelo se define como un programa paralelo que se está ejecutando en una computadora paralela La escalabilidad de un sistema paralelo es una medida de su habilidad para mejorar rendimiento cuando se aumenta el número de procesadores es La escalabilidad de un sistema paralelo es una medida de su habilidad para mejorar rendimiento cuando se aumenta el número de procesadores es Un sistema escalable mantiene su eficiencia cuando se aumenta la cantidad de procesadores Un sistema escalable mantiene su eficiencia cuando se aumenta la cantidad de procesadores Isoeficiencia:Una manera para medir escalabilidad Isoeficiencia:Una manera para medir escalabilidad

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Para Derivar la Relación de Isoeficiencia Determinar los gastos generales Substituir gastos generales en la ecuación de speedup Sustituir T(n,1) =  (n) +  (n). Presumir eficiencia constante. Relación de Isoeficiencia

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Para Derivar la Relación de Isoeficiencia (cont) Para mantener el mismo nivel de eficiencia cuando crece la cantidad de procesadores, hay que aumentar n para que se cumpla

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. La Función de Escalabilidad Supongamos que la relación de isoeficiencia es n  f(p) Supongamos que la relación de isoeficiencia es n  f(p) Sea M(n) la cantidad de memoria que se requiere para un problema de tamaño n Sea M(n) la cantidad de memoria que se requiere para un problema de tamaño n M(f(p))/p indica como el uso de memoria por procesador tiene que crecer para mantener la misma eficiencia M(f(p))/p indica como el uso de memoria por procesador tiene que crecer para mantener la misma eficiencia M(f(p))/p se llama la función de escalabilidad M(f(p))/p se llama la función de escalabilidad

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. El Significado de la Función de Escalabilidad Para mantener la eficiencia cuando crece p, tenemos que aumentar n Para mantener la eficiencia cuando crece p, tenemos que aumentar n El tamaño de problema máximo está limitado por la cantidad de memoria disponible, que es lineal en p El tamaño de problema máximo está limitado por la cantidad de memoria disponible, que es lineal en p La función de escalabilidad muestra como el uso de memoria por procesador tiene que crecer para mantener eficiencia La función de escalabilidad muestra como el uso de memoria por procesador tiene que crecer para mantener eficiencia Si la función de escalabilidad es constante, el sistema paralelo es perfectamente escalable Si la función de escalabilidad es constante, el sistema paralelo es perfectamente escalable

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Ejemplo : El Algoritmo de Floyd Complexidad Secuencial:  (n 3 ) Complexidad Secuencial:  (n 3 ) Complexidad Paralela:  (n 3 /p) Complexidad Paralela:  (n 3 /p) Tiempo de comunicaciones:  (n 2 log p) Tiempo de comunicaciones:  (n 2 log p) Gastos Paralelismo: T 0 (n,p) =  (pn 2 log p) Gastos Paralelismo: T 0 (n,p) =  (pn 2 log p)

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. compute_shortest_paths void compute_shortest_paths (int id, int p, dtype **a, int n) void compute_shortest_paths (int id, int p, dtype **a, int n) { inti, j, k; inti, j, k; intoffset;/* Local index of broadcast row */ intoffset;/* Local index of broadcast row */ introot;/* Process controlling row to be bcast */ introot;/* Process controlling row to be bcast */ int*tmp;/* Holds the broadcast row */ int*tmp;/* Holds the broadcast row */ tmp = (dtype *) malloc (n * sizeof(dtype)); tmp = (dtype *) malloc (n * sizeof(dtype)); for (k = 0; k < n; k++) for (k = 0; k < n; k++) { root = BLOCK_OWNER(k, p, n); { root = BLOCK_OWNER(k, p, n); if (root == id) if (root == id) { offset = k - BLOCK_LOW(id, p, n); { offset = k - BLOCK_LOW(id, p, n); for (j = 0; j < n; j++) for (j = 0; j < n; j++) tmp[j] = a[offset][j]; tmp[j] = a[offset][j]; } } MPI_Bcast (tmp, n, MPI_TYPE, root, MPI_COMM_WORLD); MPI_Bcast (tmp, n, MPI_TYPE, root, MPI_COMM_WORLD); for (i = 0; i < BLOCK_SIZE(id, p, n); i++) for (i = 0; i < BLOCK_SIZE(id, p, n); i++) for (j = 0; j < n; j++) for (j = 0; j < n; j++) a[i][j] = MIN(a[i][j], a[i][k] + tmp[j]); a[i][j] = MIN(a[i][j], a[i][k] + tmp[j]); } } free (tmp); free (tmp); }

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. El Algoritmo de Floyd (cont) Relación de Isoeficiencia n 3  C(p n 2 log p)  n  C p log p Relación de Isoeficiencia n 3  C(p n 2 log p)  n  C p log p M(n) = n 2 M(n) = n 2 El sistema no tiene buena escabilidad El sistema no tiene buena escabilidad