Para poder evaluar el deempeño de un itema de computación y aí poder compararlo repecto a otro neceitamo definir y medir u rendimiento. Pero, Qué queremo decir con rendimiento?, En bae a qué parámetro podemo exprear o medir el rendimiento? Cómo podemo etablecer un mecanimo que no permita comparar do itema de computación? Para poder cuantificar el rendimiento, neceitamo determinar lo factore que influyen en el deempeño del equipo de cómputo y aí definir una expreión que caracterice ete rendimiento. Se denomina medida al valor obtenido mediante un intrumento de medición confiable. Una medida proporciona una indicación cuantitativa de extenión, cantidad, dimenione, capacidad y tamaño de alguno atributo de un proceo o producto El deempeño de un computador puede tener diferente medida de elección para diferente uuario. Para un uuario individual que etá ejecutando un único programa, el computador con mayor rendimiento e aquel que complete la ejecución de u programa en menor tiempo. Sin embargo, para el adminitrador de un centro de cómputo, que tiene múltiple tarea que realizar a la vez, la de mayor rendimiento e la que le realice má tarea en menor tiempo. Como elemento común, in embargo, e evidencia que la medida del rendimiento del computador e el tiempo. El computador que ejecute lo programa en menor tiempo e la que tiene mejor rendimiento. Un algoritmo ecuencial e evaluado por u tiempo de ejecución como función del tamaño del problema. El comportamiento aintótico del tiempo de ejecución e idéntico en cualquier plataforma ecuencial. En cambio, el tiempo de ejecución de un programa paralelo depende del tamaño del problema, del número de proceadore y de cierto parámetro de comunicación de la plataforma. E por ello que lo algoritmo paralelo deben er evaluado y analizado teniendo en cuenta también la plataforma Ademá, en el mundo paralelo, adicional al tiempo de ejecución como medida de rendimiento también encontramo otra métrica como la aceleración (peedup), eficiencia (efficiency), etc. 1. Definicione 1.1 Rendimiento No e encillo definir qué e rendimiento. Por ejemplo la tarea de lo ingeniero de oftware e dieñar e implementar programa que atifagan lo requerimiento del uuario relacionado con correctitud y rendimiento. Si ejecutamo un programa en do computadore ditinto, utede dirían que el computador má rápido e aquel que termina primero la ejecución del programa. Si tienen un centro de computación que dipone de do plataforma computacionale ditinta que ejecutan trabajo de mucho 1 Introducción al Paralelimo
uuario, dirían que el itema má rápido e aquel que ejecuta y completa má trabajo por día. Como uuario, a uted le interea reducir el tiempo de repueta y el tiempo de ejecución de u programa. Por lo tanto u percepción de rendimiento puede cambiar dependiendo de la ituación. Vamo a uar el término de Rendimiento como una medida de que tan bien un itema, o lo componente que lo contituyen, lleva a cabo la tarea aignada. 1.2 Ecalabilidad Otro término importante e el de Ecalabilidad. Ete término e refiere al etudio del cambio en la medida de rendimiento de un itema cuando una o varia caracterítica del itema on variada. Una de la caracterítica que generalmente e cambia e el número de proceadore. Otra caracterítica relacionada con paralelimo que puede er modificada e la granularidad del problema. 1.3 Granularidad Granularidad conite en la cantidad de cómputo con relación a la comunicación. En Granularidad Fina o Fine-grained, la tarea individuale on relativamente pequeña en término de tiempo de ejecución. La comunicación entre lo proceadore e frecuente. En cambio en Granularidad gruea o Coare-grained, la comunicación entre lo proceadore e poco frecuente y e realiza depué de largo periodo de ejecución. 2. Métrica de Rendimiento 2.1 Aceleración (Speedup) La medición de rendimiento en ambiente paralelo e má complejo por nuetro deeo de conocer cuánto má rápido ejecuta una aplicación en un computador paralelo. E decir, no interea conocer cuál e el beneficio obtenido cuando uamo paralelimo y cuál e la aceleración que reulta por el uo de dicho paralelimo. La aceleración puede er definida como el radio Tiempo S = Tiempo Ejecución Ejecución Secuencial Paralelo Exiten divera forma de exprear la aceleración que dependen de la forma en que e defina lo que e el Tiempo de Ejecución Secuencial y Paralelo. 2 Introducción al Paralelimo
1. Aceleración Relativa. El Tiempo de Ejecución Secuencial uado e el tiempo total de ejecución del programa paralelo cuando éte e ejecutado obre un único proceador del computador paralelo. Por lo tanto la Aceleración Relativa de un programa paralelo Q cuando e reuelve una intancia I de tamaño n uando P proceadore e: T ( I,1) Aceleració n Relativa( I, P) = T ( I, P) 2. Aceleración Real. El Tiempo de Ejecución Secuencial uado e el tiempo del mejor programa ecuencial para reolver el problema. * T Aceleració n Real( I, P) = T ( I, P) Formalmente la aceleración e la relación entre el tiempo de ejecución obre un proceador ecuencial y el tiempo de ejecución en múltiple proceadore. Qué ignifica una Aceleración igual a 2? 2.2 La ley de Amdahl Un apecto importante a coniderar e que todo programa paralelo tiene una parte ecuencial que eventualmente limita la aceleración que e puede alcanzar en una plataforma paralela. Por ejemplo, i el componente ecuencial de un algoritmo e 1/ de u tiempo de ejecución, entonce la aceleración máxima poible que puede alcanzar en el computador paralelo e. El tiempo para realizar el cómputo con P proceadore e T P = t + ( 1 ) P t donde t e el tiempo de ejecución ecuencial 3 Introducción al Paralelimo
La aceleración puede er redefinida de la iguiente forma Aceleración = 1 (1 ) + P = P P + 1 P = 1+ ( P 1) 1+ P 1 ( P 1) cuando P Según la ley de Amdahl, i un programa tiene un 5% de componente ecuencial entonce la aceleración máxima que e puede alcanzar e de 20. La ley de Amdahl tiene varia implicacione: Para una carga dada, la aceleración máxima tiene una cota uperior de 1/. Al aumentar, la aceleración decrecerá proporcionalmente. Para alcanzar buena aceleracione, e importante reducir 4 Introducción al Paralelimo
Ejemplo Mejora: 5 Introducción al Paralelimo
En la iguiente figura podemo obervar el comportamiento de la Aceleración en función de la fracción de código que no puede er paralelizado. Vemo que aún uando una gran cantidad de proceadore (1024), con un porcentaje bajo de código erial e obtiene aceleracione muy por debajo del número de proceadore uado. Por ejemplo, i la aplicación paralela tiene ólo un 1% de código erial, la aceleración máxima que puede lograre e de 91, e decir que con 1024 proceadore dicha aplicación puede ejecutar 91 vece má rápido que la aplicación erial. Aceleración Ideal 6 Introducción al Paralelimo
Lo que realmente uele uceder con la Aceleración En lo primero tiempo de la computación paralela, e creyó que el efecto capturado por la ley de Amdahl limitaría la utilidad de la computación paralela a un grupo pequeño de aplicacione. Sin embargo, cierta experiencia práctica han demotrado que eta forma de ver lo programa con una parte etrictamente ecuencial tiene poca relevancia en lo problema reale Para entender eto veamo que ucede en un problema no relacionado con la computación. Supongamo que 999 obrero de 1000 que etán trabajando en la contrucción de una autopita etán ocioo cuando uno de lo obrero completa una tarea ecuencial. Ete hecho lo podemo ver como una falla en el manejo del proyecto y no como un atributo del problema en i. Si colocar el cemento en un punto de la autopita e un cuello de botella, e puede argumentar que la contrucción de la autopita e puede hacer en vario punto ditinto al mimo tiempo. Haciendo eto e puede introducir alguna ineficiencia pue a lo mejor lo camione tienen que viajar ditancia má larga para llegar al punto de trabajo pero eto no llevará a realizar el proyecto en meno tiempo. Algo imilar e puede aplicar en el cao de la olucione paralela de un problema en epecífico. La ley de Amdahl puede er relevante cuando un programa ecuencial e paralelizado de forma incremental. De eta forma e perfila el programa ecuencial para identificar lo componente con mayor demanda computacional. Eto componente on adaptado para una ejecución paralela uno por vez hata que e logre un rendimiento aceptable. 2.3 Ley de Gutafon-Bari A finale de la década de lo 80, John Gutafon y u equipo de invetigación en Sandia National Laboratorio e encontraban realizando invetigación relacionada con el uo de Proceamiento Maivamente Paralelo y notaron que exitía un alto nivel de ecepticimo por el uo de eto itema paralelo debido a la ley de Amdahl. Según eta ley, aún en 7 Introducción al Paralelimo
problema con una fracción ecuencial de trabajo muy pequeña, la aceleración máxima alcanzable para un número infinito de proceadore era de olamente 1/. Con lo reultado de la invetigacione que realizaron en un itema con 1024 proceadore demotraron que la upoicione de la ley de Amdahl no on apropiada para el cao de paralelimo maivo. El problema etá en que generalmente no e toma un problema de tamaño fijo y e ejecuta variando el número de proceadore. Eto e hace ólo para fine académico y de invetigación. Generalmente, el tamaño del problema crece al aumentar el número de proceadore. Cuando e dipone de un proceador má poderoo, el problema e expande para hacer uo de ee poder computacional. Lo uuario tienen control obre apecto como número de etapa o pao, complejidad del operador y otro parámetro que generalmente on ajutado para permitir que el programa ejecute en un tiempo razonable de tiempo. Por lo tanto e má realita coniderar que el tiempo de ejecución e contante y no que el tamaño del problema varía. 2.4 Implementación de la ley de Gutafon Sea n una medida del tamaño del problema. El tiempo de ejecución de un programa en un computador paralelo e decompueto en: a(n) + b(n) = 1 donde a e la fracción ecuencial y b e la fracción paralela. En un computador ecuencial, el tiempo relativo erá igual a a(n) + pb(n) donde p e el número de proceadore para el cao paralelo La aceleración e entonce (a(n) + pb(n)) Si la función ecuencial a(n) diminuye a medida que e incrementa el tamaño del problema n, entonce la aceleración alcanzará p cuando e aproxima a infinito Por lo tanto la ley de Gutafon recata el proceamiento paralelo que no era favorecido por la ley de Amdahl. 8 Introducción al Paralelimo
2.5 Eficiencia Podemo definir la eficiencia como el porcentaje de tiempo empleado en proceo efectivo E = S P 2.6 Ecalabilidad Un itema e ecalable i mantiene contante la eficiencia al aumentar el número de proceadore aumentando también el tamaño del problema 3. Fuente de Overhead en lo programa paralelo Si uamo do proceadore, por qué nuetro programa no ejecuta do vece má rápido? Porque exite una erie de tiempo que degradan el rendimiento del programa. Entre eto tiempo encontramo tiempo de comunicación, tiempo ocioo, etc. En la figura que e encuentra a continuación e muetra el perfil de ejecución de un programa paralelo hipotético obre 8 proceadore. El perfilador muetra tiempo ocupado en la ejecución propiamente dicha, en comunicación y ocioo. P0 P1 P2 P3 P4 P5 P6 P7 Execution Time Eential/Exce Computation Idling Interproceor Communication 9 Introducción al Paralelimo
Comunicación entre proceo (T comm ): generalmente lo proceadore que trabajan obre un problema paralelo requerirán comunicare entre i. Incluye el tiempo empleado en el envío y recepción de menaje. El modelo de coto de comunicación que uele uare e Tmenaje ( L) = t + t donde t e el tiempo de inicialización del menaje y t w e el tiempo de tranferencia de una palabra w L Ocioo (T ocio ): lo proceo pueden etar ocioo en alguno intante de tiempo debido a debalance en la carga de trabajo aignado a cada proceo, o debido a incronizacione o la exitencia de trozo de código que debe er ejecutado de forma ecuencial por un único proceador. Ete tiempo e difícil de determinar pue depende del orden en la que e realizan la operacione. Lo ideal e reducirlo lo má que e pueda. Cómputo (T comp ): Ete tiempo correponde a cómputo que debe er realizado en la verión paralela y que no e ejecuta en una verión ecuencial. Depende del tamaño del problema y del número de proceadore. 3.1 Cómo medimo el tiempo de ejecución de un programa paralelo? En el cao de un programa ecuencial, el tiempo de ejecución e el tiempo que trancurre dede que e inicia la ejecución hata que finaliza. En el cao de un programa paralelo e el tiempo trancurrido dede que comienza u ejecución hata el momento en que el último proceador finaliza u ejecución (T P ). Ejemplo Conideremo el problema de umar n número uando n elemento de proceamiento. Si n e potencia de do, podemo realizar eta operación en log n pao propagando uma parciale a lo largo de un árbol lógico de proceadore. En la figura e muetran lo pao neceario. Σ i j denota la uma de lo número etiquetado dede i hata j. Si una adición toma un tiempo contante de t c y comunicar una palabra cueta t + t w, tenemo entonce que el tiempo paralelo T P = Θ (log n) 10 Introducción al Paralelimo
Sabemo que el tiempo ecuencial e T S = Θ (n) y la aceleración e S = Θ (n / log n) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (a) Initial data ditribution and the firt communication tep Σ 1 3 5 7 9 11 13 0 Σ Σ Σ Σ Σ Σ Σ 15 2 4 6 8 10 12 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (b) Second communication tep 3 7 11 Σ 0 Σ4 Σ8 0 1 2 3 4 5 6 7 8 9 15 Σ12 10 11 12 13 14 15 (c) Third communication tep 7 Σ 0 Σ 15 8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (d) Fourth communication tep Σ 0 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (e) Accumulation of the um at proceing element 0 after the final communication Ejemplo Eficiencia del algoritmo de Diferencia Finita Dado el problema de diferencia finita en una mall de N x N x Z. Decomponemo la malla en la dimenión horizontal como e muetra en la iguiente figura. Cada tarea trabaja obre una ubmalla con N x N/P x Z punto. 11 Introducción al Paralelimo
Cada tarea lleva a cabo el mimo cómputo obre cada punto aignado en cada pao de iteración del algoritmo. El tiempo de cómputo para cada pao e T comp = t c N 2 ZP donde t c e el tiempo medio de cómputo por punto. Cada tarea intercambia 2NZ punto con do vecino, por lo tanto cada tarea envía do menaje con 2NZ punto por menaje. El tiempo de comunicación podemo exprearlo como T = 2( t t 2NZ) comm + El tiempo total de la aplicación paralela viene dado por La aceleración o Speedup viene dado por 2 TP = Tcomp + Tcomm = tc N Z / P + 2t + 4t w w NZ S = 2 T1 tc N Z = 2 TP t N Z / P + 2t + 4t c w NZ y la eficiencia E = S P = t c N 2 Z + 2Pt + 4t PNZ Lo modelo de rendimiento dearrollado hata el momento on herramienta que pueden er uada para explorar y refinar el dieño de un algoritmo paralelo. Con ello e puede realizar un análii cualitativo de rendimiento. Por ejemplo a partir de la ecuacione de T P y E podemo emitir la iguiente obervacione del algoritmo de diferencia finita: 12 Introducción al Paralelimo t c N 2 Z w
La eficiencia baja al incrementar el número de proceadore (P) y el coto de comunicación (t y t w ). La eficiencia ube al incrementar el tamaño del problema (N y Z) y el tiempo de cómputo de cada punto (t c ). T P baja al incrementar P pero etá acotado inferiormente por el coto de intercambiar trozo de la matriz. Eta obervacione proveen viione intereante de la caracterítica del algoritmo. También e neceario obtener reultado cuantitativo que requieren que utituyamo cierto parámetro en el modelo de rendimiento por valore epecífico de la arquitectura en la cuál ejecutará. Eto valore e obtienen por medio de etudio empírico. Una vez incluido eto valore al modelo, éte puede er uado para contetar interrogante como: Cumple el algoritmo con retriccione de dieño (tiempo de ejecución, requerimiento de memoria) en la arquitectura paralela a uar? Cómo e adapta el algoritmo? Se adapta el mimo a aumento en el tamaño del problema y en el número de proceadore? Cómo e comporte ete algoritmo con repecto a otro algoritmo para el mimo problema? Ejemplo Suma de N número en un hipercubo de P proceo A cada proceo le aignamo N/P número. Cada proceo calcula la uma parcial de u N/P número. Por lo tanto efectúan N/P 1 operacione de uma. Cada proceo tiene log(p) vecino con quine e comunica e intercambia lo reultado locale. Depué de intercambiar reultado, actualiza la uma. T comp = t ( N / P 1) + t c c log P T = log P( t + t comm w ) T P = T comp + T comm = t ( N / P 1) + ( t + t + t c c w ) log P 13 Introducción al Paralelimo
3. 2 Análii de Ecalabilidad Supongamo que t c =( t + t w )= 1, entonce T = 1 N T P = N / P 1+ 2log P N / P + 2log P S = N N E = N / P + 2log P N + 2P log P La aceleración S no e incrementa linealmente con P ino que tiende a aturare. 14 Introducción al Paralelimo
Al aumentar N e produce un aumento de S y E para un P fijo. Debería er poible incrementar tanto P como N manteniendo contante E. En la tabla podemo obervar una eficiencia de 0.80 para diferente valore de N y P Un itema e ecalable i e poible mantener E contante incrementando imultáneamente el tamaño del problema (N) y el número de proceadore (P). 3.3 Ecalabilidad con Problema de tamaño fijo Un apecto importante del análii de rendimiento e el etudio de cómo varía el rendimiento de un algoritmo cuando e varían alguno parámetro como el tamaño del problema, el número de proceadore, el coto de inicio de una comunicación, etc. En particular no interea evaluar la ecalabilidad de un algoritmo paralelo, e decir, que tan efectivo reultará el incremento en el número de proceadore. Una forma para cuantificar eto e determinar como varía el tiempo de ejecución y la eficiencia cuando e incrementa el número de proceadore manteniendo fijo el tamaño del problema y el reto de lo parámetro de la arquitectura. De eta forma podemo contetar interrogante como, qué tan rápido puede er reuelto ete problema en ete computador? Cuál e el máximo número de proceadore que puedo utilizar i deeo mantener la eficiencia en 50%?. E importante coniderar tanto la eficiencia como el tiempo de ejecución cuando e evalúa ecalabilidad 15 Introducción al Paralelimo
3.4 Ecalabilidad con tamaño de problema ecalable Hay que tener en cuenta que lo itema paralelo grande no on uado olamente para reolver problema má rápido ino que también e utilizan para la reolución de problema má grande. Eto no lleva a otra alternativa en el análii de ecalabilidad que conite en etudiar cómo la cantidad de cómputo ecala con el número de proceadore manteniendo contante la eficiencia. 3.5 Superlinealidad Conidere el problema de un algoritmo bubbleort paralelo. Supongamo que el tiempo ecuencial e 150 egundo y el tiempo paralelo para una implementación eficiente e de 40 egundo. La aceleración e de 150/40 = 3.75. E eto un buen logro? Qué paa i el quickort ecuencial toma olo 30 egundo? En ete cao la aceleración e de ólo 0.75. La aceleración puede er tan bajo como 0 (en el cao del programa paralelo que nunca termine). En teoría, la aceleración tiene una cota uperior dado por el número de proceadore P. Si uamo P proceadore, no gutaría que nuetro programa ejecute P vece má rápido. Una aceleración mayor que P e poible ólo i cada elemento de proceamiento conume meno de T /P reolviendo el problema. A eto e le conoce como uperlineal. Una razón de eto e que la verión paralela realiza meno trabajo que el correpondiente algoritmo ecuencial. Puede debere también a factore relacionado con lo recuro que utiliza. 16 Introducción al Paralelimo