Your SlideShare is downloading. ×
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Cp223
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Cp223

268

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
268
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Curso 2004/05 CIENCIAS Y TECNOLOGÍAS/23 I.S.B.N.: 84-7756-662-3 LUZ MARINA MORENO DE ANTONIO Computación paralela y entornos heterogéneos Director FRANCISCO ALMEIDA RODRÍGUEZSOPORTES AUDIOVISUALES E INFORMÁTICOS Serie Tesis Doctorales
  • 2. Agradecimientos Quiero expresar mi profundo agradecimiento a todos aquellos que de una forma u otra me han ayu-dado a realizar este trabajo a lo largo de los a˜os. n A Francisco Almeida Rodr´ıguez, director de esta tesis, por su constante ayuda e inter´s, as´ como por e ıla confianza depositada en todo mi trabajo. A Rumen Andonov (INRIA/IRISA, Rennes, Francia) y Vicent Poirriez (LAMIH/ROI, Valenciennes,Francia) por su colaboraci´n en el desarrollo del ultimo cap´ o ´ ıtulo de esta tesis. A todos mis compa˜eros del Grupo de Paralelismo, del ´rea de Lenguajes y Sistemas Inform´ticos n a ay del Departamento de Estad´ıstica, Investigaci´n Operativa y Computaci´n por la ayuda y el apoyo o ofacilitado en todo momento. A mis compa˜eros de la Torre de Qu´ n ımica, con los que he compartido caf´s, comidas y muchas, muchas ehoras de trabajo, por su apoyo constante y sus consejos, sobre todo en los malos momentos. Especial-mente, a mi compa˜ero de despacho, Roberto y a Isa S., Vicky, Isa D., Macu, Bea, Jes´s, Andr´s, Jordi, n u eJos´ Luis y F´lix. e e Y, por supuesto, a mi familia, que ha estado conmigo siempre.
  • 3. Pr´logo o Este trabajo se enmarca en el contexto de la computaci´n en paralelo. Es un hecho conocido que oel paralelismo constituye una alternativa real para reducir el tiempo de ejecuci´n de las aplicaciones. oArquitecturas paralelas homog´neas con elementos de proceso de caracter´ e ısticas similares est´n siendo ausadas con ´xito en distintos ´mbitos de la ciencia y de la industria. De forma natural, la ampliaci´n e a oy la potenciaci´n de un sistema homog´no con nuevos elementos, deriva en un sistema de naturaleza o eheterog´nea en el que los nuevos componentes presentan caracter´ e ısticas diferenciales con los anteriores.As´ pues, es muy frecuente encontrar arquitecturas paralelas donde las caracter´ ı ısticas de los elementosque componen el sistema (los procesadores, la memoria, la red, ...) pueden ser diferentes. A finales del siglo XX, en la decada de los 90, con la consolidaci´n de est´ndares para la programaci´n o a oen arquitecturas de paso de mensaje como PVM y MPI, la programaci´n de sistemas heterog´neos se o econvierte en un problema tan sencillo o complicado como pueda serlo la programaci´n de arquitecturas ohomog´neas. Sin embargo, aunque la portabilidad de los c´digos est´ garantizada, no ocurre lo mismo e o acon el rendimiento observado en las aplicaciones. Aparecen nuevas situaciones y cuellos de botella queno pueden ser resueltos mediante la aplicaci´n directa de los modelos y las t´cnicas conocidas para el o ecaso homogeneo. Se hace necesario adaptar los m´todos conocidos y en muchos casos dise˜ar nuevas e nestrategias comenzando desde cero. Nos encontramos ante un conjunto importante de problemas abiertosque est´n siendo intensamente estudiados y analizados. Los objetivos de este memoria se centran en el adesarrollo de modelos y herramientas que faciliten el trabajo en este ultimo tipo de entornos. ´ El cap´ıtulo 1, aut´ntico pr´logo de esta memoria, consiste en una breve introducci´n que permite e o osituarnos en el estado actual y en la problem´tica asociada a la computaci´n en paralelo sobre los a osistemas heterog´neos. Una aproximaci´n formal a conceptos y m´tricas que adem´s ilustra el contexto e o e aespec´ıfico del desarrollo de nuestra propuesta y metodolog´ ıa. Dos paradigmas de programaci´n que presentan inter´s desde la perspectiva de la computaci´n en o e oparalelo son el paradigma maestro-esclavo y el paradigma pipeline. Es cierto que ambos paradigmas hansido profusamente estudiados sobre arquitecturas homog´neas; su an´lisis y desarrollo sobre plataformas e aheterog´neas constituye en estos momentos un aut´ntico reto. Los modelos formulados para arquitecturas e ehomog´neas pueden considerarse como el punto de partida con el que abordar el caso heterog´neo, sin e eembargo, tales modelos no son directamente aplicables a este nuevo contexto. En ambas t´cnicas, partien- edo de las propuestas cl´sicas para el caso homog´neo, estudiamos su comportamiento sobre arquitecturas a eheterog´neas. La heterogeneidad viene dada por diferencias en los elementos de procesamiento y en las ecapacidades de comunicaci´n. Derivamos modelos anal´ o ıticos que predicen su rendimiento y proponemosestrategias para la distribuci´n ´ptima de tareas desarrollando las herramientas y utilidades necesarias o oen cada caso. El cap´ ıtulo 2 contempla el paradigma maestro-esclavo, modelizamos las estrategias FIFO y LIFOvalidando el modelo anal´ıtico sobre aplicaciones bien conocidas: Productos de Matrices y Transformadasde Fourier bidimensionales. Hemos resuelto el problema de la asignaci´n ´ptima de los recursos (los o oprocesadores) a las tareas, minimizando la funci´n objetivo obtenida desde el modelo an´litico, mediante o aalgoritmos de programaci´n din´mica. La utilidad propuesta permite no s´lo establecer los beneficios de o a olas aproximaciones FIFO y LIFO, sino que adem´s deriva el conjunto ´ptimo de procesadores para una a oejecuci´n eficiente. o El cap´ ıtulo 3 alude al m´todo pipeline. Desarrollamos herramientas que facilitan la instanciaci´n de e oalgoritmos pipeline en los que el n´mero de etapas puede ser muy superior al n´mero de procesadores u ureales. Admite distribuciones c´ıclicas y c´ ıclicas por bloques de las etapas del pipeline virtual al pipelinereal. Considerado el caracter heterog´neo de la plataforma, las distribuciones c´ e ıclicas por bloques admitenasignaciones vectoriales en las que los procesadores reciben tama˜os de bloques acordes a su capacidad ncomputacional. El tama˜o del buffer de comunicaci´n es tambi´n un par´metro de entrada. La im- n o e a
  • 4. plementaci´n de algoritmos de programaci´n din´mica para Problemas de la Mochila 0/1, Problemas o o ade Asignaci´n de Recursos, Problemas de Subsecuencias de Cadenas y Problemas de Planificaci´n de o oCaminos ilustra el uso y los beneficios de la librer´ La modelizaci´n anal´ ıa. o ıtica del m´todo ha sido valida- eda sobre problemas sint´ticos proponiendo t´cnicas con la que obtener par´metros (tama˜os de bloques e e a ny buffers) para su ejecuci´n ´ptima. Algunos autores encuentran analog´ entre el comportamiento de o o ıaslas aplicaciones en plataformas heterog´neas y el de determinados c´digos irregulares sobre plataformas e ohomog´neas. Este hecho admite la consideraci´n de la heterogeneidad debida al programa en plataformas e ohomog´neas. El cap´ e ıtulo 4 presenta una de tales aplicaciones, la predicci´n de la estructura secundaria odel RNA. El paquete de Viena es un software de libre distribuci´n que resuelve este problema, adem´s de o aotros asociados a la biolog´ molecular. Implementa un conocido algoritmo de Programaci´n Din´mica ıa o aque presenta un particular tipo de dependencias en el dominio de ejecuci´n. El espacio de iteraciones opresenta un comportamiento irregular en el que el coste de cada iteraci´n es variable, condicionando un oparticionado no regular. Proponemos modelos anal´ ıticos con los que obtener las dimensiones ´ptimas en oesta divisi´n del trabajo. Dada la dificultad del problema, el modelo introduce simplificaciones en el sis- otema para facilitar su manipulaci´n mediante el aparato matem´tico. Presentamos un modelo estad´ o a ısticoque prueba su efectividad m´s all´ del ´mbito de aplicabilidad del modelo anal´ a a a ıtico. Ambas propuestashan sido validadas sobre m´leculas reales obtenidas de bases de datos p´blicas, generadas por diversos o uproyectos del contexto de la biolog´ La modelizaci´n estad´ ıa. o ıstica se concibe en esta ocasi´n como un oinstrumento valioso en la predicci´n y an´lisis del rendimiento de aplicaciones paralelas. En el ap´ndice o a eA se hace un ligero recorrido sobre algunos conceptos y t´rminos de la biolog´ computacional que han e ıasido utilizados de forma natural en el cap´ıtulo 4. Con este apartado, se pretende adem´s contextualizar ael problema de la predicci´n de la estructura secundaria del RNA y su relevancia. o
  • 5. ´Indice general1. Sistemas Heterog´neos: Conceptos, Objetivos y Metodolog´ e ıa 5 1.1. Introducci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 5 1.2. El concepto de heterogeneidad en sistemas paralelos . . . . . . . . . . . . . . . . . . . . . 8 1.3. Plataformas heterog´neas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 9 1.4. M´tricas de rendimiento en sistemas heterog´neos . . . . . . . . . . . . . . . . . . . . . . . e e 11 1.5. Ejemplos de sistemas heterog´neos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 14 1.5.1. Un ejemplo de plataforma heterogenea . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.5.2. Un ejemplo de programa heterog´neo e . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.6. Objetivos y metodolog´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ıa 182. El Paradigma Maestro-Esclavo 21 2.1. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2. Introducci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 21 2.3. El paradigma maestro-esclavo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4. Estrategia FIFO de resoluci´n en sistemas homog´neos . . . . . . . . . . . . . . . . . . . . o e 25 2.5. Estrategia FIFO de resoluci´n en sistemas heterog´neos . . . . . . . . . . . . . . . . . . . o e 26 2.6. Estrategia LIFO de resoluci´n del problema . . . . . . . . . . . . . . . . . . . . . . . . . . o 30 2.7. Validaci´n de los modelos anal´ o ıticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.7.1. Algoritmo Secuencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.7.2. Algoritmo Paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.7.3. Distribuci´n ´ptima de trabajos en los sistemas homog´neos . . . . . . . . . . . . . o o e 34 2.7.4. Validaci´n del modelo anal´ o ıtico FIFO en un sistema heterog´neo con dos tipos de e procesadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.7.5. Validaci´n del modelo anal´ o ıtico FIFO en el sistema heterog´neo con 3 tipos de e procesadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.8. Un m´todo exacto para obtener la distribuci´n ´ptima . . . . . . . . . . . . . . . . . . . . e o o 44 2.9. Metodolog´ aplicada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ıa 48 2.10. Predicci´n de la distribuci´n ´ptima: Producto de matrices . . . . . . . . . . . . . . . . . o o o 49 1
  • 6. 2 ´ INDICE GENERAL 2.10.1. An´lisis de sensitividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 49 2.10.2. Predicci´n de la distribuci´n ´ptima de trabajos con 2 tipos de procesadores . . . o o o 50 2.10.3. Predicci´n de la distribuci´n ´ptima de trabajos con 3 tipos de procesadores . . . o o o 54 2.10.4. Herramienta de predicci´n de esquema y distribuci´n ´ptima de trabajos . . . . . o o o 61 2.11. Predicci´n de la distribuci´n ´ptima: FFT-2D . . . . . . . . . . . . . . . . . . . . . . . . . o o o 63 2.11.1. Algoritmo Secuencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.11.2. Algoritmo Paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 2.11.3. Caracterizaci´n de la plataforma heterog´nea . . . . . . . . . . . . . . . . . . . . . o e 68 2.11.4. Distribuci´n ´ptima de trabajos en los sistemas homog´neos . . . . . . . . . . . . . o o e 70 2.11.5. Predicci´n de la distribuci´n ´ptima de trabajos con 2 tipos de procesadores . . . o o o 73 2.11.6. Predicci´n de la distribuci´n ´ptima de trabajos con 3 tipos de procesadores . . . o o o 76 2.11.7. Herramienta de predicci´n de esquema y distribuci´n ´ptima de trabajos . . . . . o o o 81 2.12. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823. El Paradigma Pipeline 85 3.1. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 3.2. Introducci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 85 3.3. El paradigma pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 3.4. llp: Una herramienta en entornos homog´neos . . . . . . . . . . . . . . . . . . . . . . . . . e 90 3.5. llpW : Una herramienta en entornos heterog´neos . . . . . . . . . . . . . . . . . . . . . . . e 93 3.6. Comparativa llp vs llpW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 3.6.1. Problema de la mochila unidimensional . . . . . . . . . . . . . . . . . . . . . . . . 96 3.6.2. El problema de caminos m´ ınimos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 3.6.3. El problema de la asignaci´n de recursos . . . . . . . . . . . . . . . . . . . . . . . . 106 o 3.6.4. Problema de la subsecuencia com´n m´s larga . . . . . . . . . . . . . . . . . . . . 111 u a 3.7. El modelo anal´ ıtico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 3.7.1. El n´mero de etapas es igual al n´mero de procesadores . . . . . . . . . . . . . . . 116 u u 3.7.2. El n´mero de etapas es superior al n´mero de procesadores: mapping c´ u u ıclico puro . 118 3.7.3. El n´mero de etapas es superior al n´mero de procesadores: mapping c´ u u ıclico por bloques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 3.8. Validaci´n del modelo anal´ o ıtico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 3.8.1. El n´mero de etapas es igual al n´mero de procesadores . . . . . . . . . . . . . . . 126 u u 3.8.2. El n´mero de etapas es superior al n´mero de procesadores: mapping c´ u u ıclico puro . 126 3.8.3. El n´mero de etapas es superior al n´mero de procesadores: mapping c´ u u ıclico por bloques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 3.9. M´todos de predicci´n de los par´metros ´ptimos . . . . . . . . . . . . . . . . . . . . . . . 132 e o a o 3.9.1. M´todo exacto enumerativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 e
  • 7. ´INDICE GENERAL 3 3.9.2. Un m´todo heur´ e ıstico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 3.10. Predicci´n de los par´metros ´ptimos o a o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 3.11. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1364. La Predicci´n de la Estructura Secundaria del RNA o 137 4.1. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 4.2. Introducci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 o 4.3. El problema de la predicci´n de la estructura secundaria del RNA . . . . . . . . . . . . . 141 o 4.4. El paquete de Viena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 4.5. Estrategias de paralelizaci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 o 4.6. La paralelizaci´n del paquete de Viena: tama˜o constante del tile . . . . . . . . . . . . . . 149 o n 4.6.1. Paralelizaci´n de los tri´ngulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 o a 4.6.2. Paralelizaci´n de los cuadrados utilizando 2 procesadores . . . . . . . . . . . . . . 151 o 4.6.3. Paralelizaci´n de los cuadrados utilizando p procesadores . . . . . . . . . . . . . . 153 o 4.7. Resultados computacionales: tama˜o constante del tile . . . . . . . . . . . . . . . . . . . . 156 n 4.8. Modelo anal´ ıtico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 4.8.1. Desarrollo del modelo sobre una m´quina ideal . . . . . . . . . . . . . . . . . . . . 182 a 4.8.2. Desarrollo del modelo sobre una m´quina real . . . . . . . . . . . . . . . . . . . . . 183 a 4.8.3. Optimizando el tama˜o del tile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 n 4.9. Validaci´n del modelo anal´ o ıtico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 4.10. Modelo estad´ ıstico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 4.11. Comparativa modelo anal´ ıtico vs modelo estad´ ıstico . . . . . . . . . . . . . . . . . . . . . 191 4.11.1. Casos reales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 4.12. La paralelizaci´n del paquete de Viena: tama˜o variable del tile . . . . . . . . . . . . . . . 193 o n 4.13. Resultados computacionales: tama˜o variable del tile . . . . . . . . . . . . . . . . . . . . . 194 n 4.14. Validaci´n de los modelos: tama˜o variable de tile . . . . . . . . . . . . . . . . . . . . . . 196 o n 4.14.1. Casos reales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 4.15. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197A. Introducci´n a la biolog´ molecular o ıa 212 A.1. Las prote´ ınas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 A.2. Funciones de las prote´ ınas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 A.3. Estructura de las prote´ ınas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 A.4. El problema del plegado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 A.5. El d´ficit secuencia/estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 e ´ A.6. Acidos nucleicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 A.7. S´ ıntesis de prote´ ınas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
  • 8. 4 ´ INDICE GENERAL A.8. Virus y bacterias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 A.9. El proyecto genoma humano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 A.10.Importancia de la bioinform´tica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 a
  • 9. Cap´ ıtulo 1Computaci´n Paralela en Sistemas oHeterog´neos: Conceptos B´sicos, e aObjetivos y Metodolog´ ıa1.1. Introducci´n o Los computadores secuenciales tradicionales han sido dise˜ados durante muchos a˜os bas´ndose en el n n amodelo introducido por John Von Newman [151, 179, 180]. Este modelo consiste en una unidad centralde proceso (CPU) y una memoria. Las m´quinas ejecutan una unica secuencia de instrucciones, operan a ´con una unica secuencia de datos y su velocidad est´ limitada por dos factores: la capacidad de ejecu- ´ aci´n de instrucciones y la velocidad de intercambio entre memoria y CPU. La primera m´quina que se o aconstruy´ utilizando est´ tecnolog´ fue la EDVAC [108, 121, 181], en 1947; desde entonces, este modelo o a ıase convirti´ en el m´s utilizado en el dise˜o de ordenadores. Sin embargo, actualmente existe un amplio o a nrango de aplicaciones (cient´ ıficas, t´cnicas, m´dicas, etc.) que requieren procesar grandes cantidades de e edatos o realizar un alto n´mero de operaciones, pero no existen procesadores con capacidad para re- usolverlas de forma independiente en un per´ ıodo de tiempo razonable [1, 102, 113, 185]. Esto indica quepara ciertas aplicaciones, no es posible emplear el modelo Von Newman y es necesario buscar alternativastecnol´gicas. o Una de estas alternativas consiste en emplear m´ltiples procesadores que cooperen para resolver un uproblema en una fracci´n del tiempo que requiere un procesador secuencial. Un problema cualquiera se di- ovide en un n´mero arbitrario de subproblemas y estos subproblemas pueden resolverse simult´neamente u asobre diferentes procesadores. Por ultimo, los procesadores se comunican entre s´ para intercambiar y ´ ıcombinar los resultados parciales obtenidos. Este modelo tecnol´gico alternativo es denominado com- oputaci´n en paralelo y pretende conseguir que p procesadores, trabajando de forma conjunta, resuelvan oun problema p veces m´s r´pido que un unico procesador; aunque esta situaci´n ideal raras veces se al- a a ´ ocanza en la pr´ctica. a Durante a˜os se han propuesto una amplia variedad de estrategias para abordar la computaci´n en n oparalelo. Estos nuevos modelos difieren en la forma en la que se comunican los procesadores (memoriacompartida o distribuida, red de interconexi´n en forma de ´rbol, estrella, etc.), pueden ejecutar el o amismo algoritmo o no, operar de forma s´ ıncrona o as´ ıncrona, etc. Esto significa que existen diversasformas de concebir la programaci´n en paralelo y de construir m´quinas paralelas para resolver un o aproblema mediante esta t´cnica de computaci´n. Estas m´quinas presentan distintas caracter´ e o a ısticas dered y arquitectura. Podemos encontrar sistemas formados por una unica m´quina con varios procesadores ´ aque colaboran en la resoluci´n de un problema. Estos sistemas han sido denominados multiprocesadores o 5
  • 10. 6 CAP´ ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´ ´ IAo multicomputadores; se caracterizan por una gran capacidad de almacenamiento y una alta velocidadde c´mputo, pero resultan muy caros y dif´ o ıciles de amortizar. Normalmente, se considera que estosdos sistemas se diferencian en el acceso a memoria, la mayor´ de las definiciones establecen que un ıamultiprocesador es un sistema de memoria compartida, mientras que un multicomputador trabaja conmemoria distribuida [93, 141, 169]. Un multiprocesador puede a su vez clasificarse en grupos basados enla implementaci´n de la memoria compartida [31, 164, 171]: puede existir un acceso uniforme a memoria o(UMA), donde el tiempo necesario para acceder a un dato es independiente de su localizaci´n; o un oacceso no uniforme (NUMA), donde la memoria compartida est´ f´ a ısicamente distribuida entre los nodosde procesamiento. Una alternativa de bajo coste para los sistemas paralelos la encontramos en sistemas que denominamosclusters. Estos sistemas se componen de m´ltiples m´quinas, conectadas mediante una red, que el usuario u autiliza como si dispusiera de un unico computador paralelo [42, 43, 44]. Los clusters de PCs est´n jugando ´ aun papel importante en la Computaci´n de Alto Rendimiento (High Performance Computing). Esto es odebido al bajo coste de estos sistemas en relaci´n a su rendimiento. Nosotros hemos centrado gran parte ode nuestro trabajo en la resoluci´n de problemas sobre este tipo de recursos. Otro factor, que tambi´n ha o econtribuido de forma notable a la expansi´n de estos sistemas, se encuentra en la aparici´n de librer´ o o ıasest´ndar de procesamiento paralelo que han facilitado la portabilidad de programas paralelos a diferentes aarquitecturas (PVM (Parallel Virtual Machine) [63, 78] y MPI (Message passing interface) [89, 134] parael paradigma de paso de mensajes y OpenMP [142] para trabajar con sistemas de memoria compartida). Actualmente, la importancia de los clusters en la computaci´n paralela queda reflejada en la inclusi´n o ode estos sistemas en la lista de los 500 sistemas m´s potentes (la lista del top500 [125]). En esta lista ase encuentran, a fecha de junio de 2004, 291 clusters. Esta cifra supone un 58 % de los 500 sistemas.La proporci´n es a´n mayor si consideramos unicamente los 10 primeros sistemas, donde aparecen 6 o u ´clusters. Los dos sistemas m´s potentes de este tipo se encuentran en las posiciones 2 y 3 de la lista y aambos se encuentran instalados en Estados Unidos. El primero de ellos en el Lawrence Livermore NationalLaboratory y est´ compuesto por 4096 procesadores Thunder e Intel Itanium2 Tiger4 de 1,4 GHz. El asegundo est´ localizado en Los Alamos National Laboratory, compuesto por 8192 procesadores ASCI Q - aAlphaServer SC45 de 1.25 GHz. En muchos casos, los clusters est´n compuestos por procesadores de caracter´ a ısticas similares conec-tados mediante una unica arquitectura de red. Los tiempos de c´mputo para todos los procesadores son ´ oiguales, as´ como tambi´n lo son los tiempos de comunicaci´n entre ellos. A estos sistemas se los conoce ı e ocomo sistemas homog´neos. Sin embargo, debido a la arquitectura inherente a este tipo de sistema, es emuy probable que al incrementar el n´mero de procesadores en el cluster o al sustituir alg´n elemento u ude la m´quina (procesador, memoria, interfaz de red, etc.) las caracter´ a ısticas de la nueva m´quina no acoincidan con las caracter´ ısticas de los componentes originales, dando lugar a un sistema de naturalezaheterog´nea. e El concepto de sistema heterog´neo se aplica, en ocasiones, a sistemas compuestos por diferentes etipos de PCs y m´quinas con m´ltiples procesadores conectados mediante redes. Debido a las diferencias a uentre las m´quinas que forman el sistema, es probable que las velocidades de c´mputo de los procesadores a osean distintas y los tiempos de transferencia de datos tambi´n pueden ser diferentes en las comunica- eciones entre cada par de procesadores. La naturaleza de esta red es inherentemente din´mica y depende de aqu´ m´quinas se utilicen en cada momento para resolver un problema y cu´les sean sus caracter´ e a a ısticas (ca-pacidades de c´mputo, memoria, comunicaciones, etc.). La programaci´n dependiente de la arquitectura o ode la m´quina supone una dificultad adicional en este tipo de sistemas. a Otra de las desventajas que aparecen en los sistemas heterog´neos se debe al comportamiento de los etiempos de ejecuci´n de las aplicaciones. El rendimiento conseguido con un multiprocesador o multicom- oputador paralelo suele ser m´s elevado que el obtenido en un entorno de m´quinas heterog´neas; los usua- a a erios pueden verse obligados a aceptar en algunos casos una reducci´n del rendimiento de sus aplicaciones a ofavor de una gran reducci´n en el coste del sistema. Una de las razones para que esta situaci´n se produz- o oca, es que la mayor´ de los programas paralelos han sido desarrollados bajo la hip´tesis de trabajar sobre ıa o
  • 11. ´1.1. INTRODUCCION 7una arquitectura homog´nea. Esta hip´tesis tambi´n ha sido considerada de manera habitual al desarro- e o ellar modelos anal´ ıticos con los que predecir el rendimiento de un sistema paralelo [24, 57, 73, 87, 154, 178];generalmente, esos modelos no pueden ser aplicados directamente a entornos de naturaleza heterog´nea. eSe hace necesario, por tanto, revisar los conceptos y modelos utilizados hasta el momento en los sistemashomog´neos para adaptarlos a entornos heterog´neos [145, 191]. En los ultimos a˜os se han publicado e e ´ ndiversos trabajos que analizan los entornos heterog´neos y los par´metros que deben considerarse en e ael uso de estos sistemas: las distintas velocidades de c´mputo de los procesadores que trabajan en la oresoluci´n del problema; las capacidades de memoria; la arquitectura de la red de interconexi´n entre o olas m´quinas; la planificaci´n de la distribuci´n de los subproblemas a los procesadores; el an´lisis del a o o arendimiento del sistema, etc. Algunos de los mejores trabajos realizados sobre sistemas heterog´neos en elos ultimos a˜os podemos encontrarlos en [14, 15, 16, 17, 18, 37, 39, 40, 116, 118]. En [37] los autores ´ ndescriben diferentes tipos de heterogeneidad que pueden encontrarse en un sistema y estudian la mayor´ ıade las situaciones que surgen en las plataformas homog´neas y heterog´neas, para c´mputos regulares e e e oirregulares. Debido a que existen diferentes tipos de heterogeneidad, algunos autores [16] consideran unasimplificaci´n del problema al tener en cuenta, unicamente, la heterogeneidad producida por la diferencia o ´entre las velocidades de procesamiento de las estaciones de trabajo. Sin embargo, es un hecho probadoque incluso la heterogeneidad en la velocidad de los procesadores puede tener un impacto significativoen la sobrecarga de las comunicaciones [14], a´n cuando las capacidades de comunicaci´n en la red sean u olas mismas para todos los procesadores. En [18] los autores dan una definici´n formal de una plataforma oheterog´nea, como un grafo dirigido donde cada nodo es un recurso de computaci´n y las aristas son e olos enlaces de comunicaci´n entre ellos; en [17] se pueden encontrar algoritmos (round robin y multiple oround robin), que permiten calcular la distribuci´n de trabajo en plataformas homog´neas y heterog´neas, o e econsiderando la existencia o no de latencia en el sistema; en [15] los autores realizan un estudio sobreestrategias de planificaci´n teniendo en cuenta distintas plataformas heterog´neas en estrella o en ´rbol, o e aconsiderando adem´s diferentes niveles de paralelismo interno en los procesadores. En [116] se presentan amodelos de programaci´n eficientes en entornos heterog´neos comparando el rendimiento de un cluster o eLinux (14 procesadores Intel Pentium II ), con el de una m´quina Cray-T3E con 512 procesadores DEC aAlpha. En [118] se puede encontrar una heur´ ıstica que proporciona la distribuci´n de la carga ´ptima o opara los procesadores organizados mediante un anillo virtual, de modo que cada procesador s´lo puedeocomunicarse con otros dos procesadores: el predecesor y el posterior en el anillo. En [39, 40] presentanun sistema denominado PINCO para monitorizar la carga de las m´quinas del sistema, de manera que apueden realizar una distribuci´n din´mica de la carga. En estos trabajos los autores plantean las tres o aposibles distribuciones de tareas m´s utilizadas en los sistemas heterog´neos. a e Realizar un particionamiento regular de los datos entre los procesos y asignar m´s de un proceso a por procesador. Realizar un particionamiento irregular de los datos a los procesos y asignar unicamente un proceso ´ a cada procesador. Seguir un modelo maestro-esclavo, donde existe un conjunto de tareas sim´tricas y un proceso por e procesador. Es utilizado cuando el n´mero de procesos es significativamente menor que el n´mero u u de tareas. La ventaja de los dos primeros modelos es que ofrecen un soporte eficiente para resolver problemas,capaz de mantener la eficiencia cuando la plataforma es altamente din´mica; aunque los sistemas de carga adin´mica se encuentran fuera del ´mbito de este trabajo. a a El resto del cap´ ıtulo lo hemos estructurado de la siguiente manera. En 1.2 se introduce el concepto deheterogeneidad en sistemas paralelos. En la secci´n 1.3 se describen las plataformas heterog´neas y se co- o ementan algunas de sus caracter´ ısticas. En 1.4 se detallan algunas de las m´tricas utilizadas para establecer eel rendimiento obtenido en estos sistemas. En 1.5 presentamos dos ejemplos de sistemas heterog´neos: el ecluster donde hemos realizado la mayor´ de las ejecuciones presentadas en este trabajo (subsecci´n 1.5.1) ıa o
  • 12. 8 CAP´ ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´ ´ IAy un ejemplo de programa heterog´neo (subsecci´n 1.5.2). Por ultimo, en 1.6 presentamos los objetivos e o ´de nuestra investigaci´n y la metodolog´ seguida para alcanzarlos. o ıa1.2. El concepto de heterogeneidad en sistemas paralelos Los elementos fundamentales que intervienen en un sistema paralelo son los procesadores, la arqui-tectura de red, la memoria, la forma de acceso a memoria (memoria compartida / memoria distribuida)y el tipo del problema a resolver. Cada uno de los anteriores elementos constituyen una posible fuente deheterogeneidad en el sistema. Los procesadores: La velocidad de un procesador puede definirse en funci´n del n´mero de opera- o u ciones por segundo, as´ como del tiempo que necesita el procesador para realizar accesos a memo- ı ria. Se produce heterogeneidad debida a los procesadores cuando la velocidad de las m´quinas a disponibles en el sistema no es la misma para todos. Aunque tambi´n se puede producir heteroge- e neidad cuando procesadores con las mismas caracter´ ısticas ejecutan un mismo programa a distinta velocidad, debido a la influencia de otros elementos de la arquitectura. La velocidad de un proce- sador no est´ s´lo en funci´n del n´mero de operaciones por segundo. a o o u La memoria: Es posible jerarquizar la memoria de las m´quinas realizando una clasificaci´n por a o niveles (figura 1.1), donde el nivel m´s cercano al procesador es m´s r´pido y reducido por razones a a a de coste.Figura 1.1: Jerarqu´ de memoria: el nivel m´s cercano al procesador es m´s r´pido y reducido por razones de ıa a a acoste. La heterogeneidad debida a la memoria se produce cuando los procesadores disponen de jerarqu´ ıas distintas de memoria o de diferentes cantidades de memoria en cada una de las categor´ existentes. ıas El tama˜o de los problemas que pueden resolverse en una m´quina est´ limitado por la cantidad n a a de memoria disponible en esa m´quina. Considerando un sistema heterog´neo, el tama˜o de los a e n problemas que pueden resolverse est´ limitado por la cantidad de memoria combinada que exista a en el sistema. Si no se tienen en cuenta las diferencias de memoria se podr´ estar infrautilizando ıan las capacidades de ejecuci´n del sistema. o La red: En un sistema paralelo se debe considerar tambi´n el coste de las comunicaciones entre dos e m´quinas cualesquiera. Por simplicidad, suele asumirse que el coste de las comunicaciones punto a a punto entre las m´quinas de una red se puede caracterizar mediante el modelo lineal cl´sico: a a β + τ ∗ w, donde β es la latencia de la red, que es independiente del tama˜o del mensaje enviado; n τ es el tiempo de transferencia por byte, que es la inversa del ancho de banda del enlace entre los procesadores; y w representa el n´mero de bytes que se transmiten. El coste de comunicaci´n entre u o
  • 13. ´1.3. PLATAFORMAS HETEROGENEAS 9 dos procesadores modelado de esta forma incluye el tiempo que tarda un procesador en enviar datos y el que invierte el segundo procesador en recibirlos. Estos dos par´metros son fundamentales en las comunicaciones en una red, debido a que una latencia a alta puede producir un alto coste en las comunicaciones y reducir el rendimiento del sistema; mien- tras que el ancho de banda puede convertirse en un cuello de botella si la cantidad de informaci´n o que se quiere transmitir es superior a la capacidad del canal. Sin embargo, en redes heterog´neas donde las capacidades de comunicaci´n pueden ser diferentes en e o los distintos procesadores, los par´metros β y τ deben ser obtenidos para cada par de procesadores a de forma independiente. De acuerdo con esta situaci´n, para establecer una comunicaci´n de tama˜o o o n w entre dos procesadores pi y pj se necesita invertir un tiempo βij + τij ∗ w, donde βij y τij son la latencia y tiempo de transferencia por byte, respectivamente, que se obtienen entre los procesadores pi y p j . El programa: Los procesadores pueden ejecutar programas compuestos por c´digos regulares o o irregulares. Considerando estos programas, puede asumirse que existen dos tipos de iteraciones: homog´neas y heterog´neas [37]. Se conocen como iteraciones homog´neas aquellas en las que e e e los procesadores realizan siempre la misma cantidad de trabajo. Las iteraciones heterog´neas e son aquellas en las que var´ la cantidad de trabajo que realizan los procesadores en cada una de las ıa pasadas del algoritmo. Un programa que contenga iteraciones heterog´neas puede ser considerado e como un programa heterog´neo. e Desde esta perspectiva, se puede considerar como sistema heterog´neo, un programa heterog´neo eje- e e cutado de forma paralela sobre procesadores homog´neos conectados mediante una red homog´nea. e e1.3. Plataformas heterog´neas e Una plataforma heterog´nea puede ser definida como un infraestructura computacional donde est´n e adisponibles procesadores de diferentes caracter´ ısticas conectados a trav´s de una red. Esta plataforma epuede ser representada por un grafo no dirigido HN (P, IN ) [192], donde: P = {p0 . . . pp−1 } representa al conjunto de procesadores heterog´neos disponibles en el sistema (p e procesadores). La capacidad de c´mputo de cada uno de estos procesadores est´ determinada por la o a velocidad de CPU, la entrada/salida y velocidad de acceso a memoria. Los procesadores constituyen los nodos del grafo. IN es la red de interconexi´n entre los procesadores. Cada arista del grafo representa una conexi´n o o f´ ısica entre un par de procesadores y puede caracterizarse por una latencia y un ancho de banda diferente, lo que significa que cada arista podr´ etiquetarse con dos valores que especifiquen el ıa tiempo necesario para transferir un mensaje entre los dos procesadores que se encuentran en los extremos de la arista. Se asume que una arista entre dos nodos, pi y pj , es bidireccional y sim´trica; e es decir, es posible transmitir el mensaje en cualquiera de las dos direcciones posibles y el tiempo para enviar el mensaje de pi a pj es el mismo que el tiempo necesario para transmitirlo de pj a pi . El conjunto de aristas del sistema, IN , puede llegar a ser muy complejo e incluir m´ltiples caminos y uciclos. El grafo puede ser completo o no (figuras 1.2-a y 1.2-b respectivamente) o estar organizado en unaestructura de estrella (figura 1.2-c), ´rbol (figura 1.2-d), etc. Si consideramos un procesador cualquiera api , se denominan vecinos de pi a todos aquellos procesadores interconectados a pi a trav´s de una arista edel grafo. En el caso de disponer de un conjunto de procesadores interconectados a trav´s de un grafo ecompleto, todos los procesadores son vecinos entre s´ debido a que siempre existe un enlace entre cada ı,par de nodos (pi , pj ). En el ejemplo de la figura 1.2-a, el grafo completo, puede considerarse que existe un enlace f´ ısico decomunicaci´n independiente entre cada par de nodos, o bien, considerar la plataforma donde todos los o
  • 14. 10 CAP´ ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´ ´ IA a) b) c) d)Figura 1.2: Ejemplos de plataformas heterog´neas: a) Grafo completo con 6 procesadores: existe un enlace edirecto entre cada par de procesadores heterog´neos de la plataforma. b) Grafo no completo con 9 procesadores. ec) Plataforma en forma de estrella con 7 procesadores. d) Plataforma en forma de arbol con 12 procesadores. ´procesadores est´n conectados a trav´s de un unico bus (figura 1.3). En este ultimo tipo de plataforma el a e ´ ´canal de comunicaci´n disponible entre las m´quinas suele ser exclusivo; es decir, en un instante de tiempo o adado solamente un procesador puede utilizar la red de interconexi´n. Esto supone que si otro procesador oquiere utilizar el canal en el momento en que un procesador ya est´ transmitiendo, debe esperar a que el acanal se libere, lo que puede significar un retraso importante en las comunicaciones.Figura 1.3: Ejemplo de plataforma heterog´nea con 6 procesadores: Todos los procesadores est´n conectados a e atrav´s de un unico bus. e ´ En todos estos ejemplos hemos considerado que un enlace entre dos procesadores cualesquiera esbidireccional; sin embargo, una variante a este tipo de plataforma puede asumir que en lugar de disponer dearistas bidireccionales, existen dos enlaces unidireccionales entre cada par de procesadores, con etiquetasque pueden ser diferentes. En este caso, la plataforma heterog´nea se representa por un grafo dirigido ey el tiempo de transmisi´n de un mensaje de pi a pj puede no coincidir con el tiempo empleado para otransmitirlo de pj a pi . Asimismo, los procesadores del sistema pueden presentar diferentes comportamientos, en funci´n deosus capacidades para solapar c´mputo y comunicaciones [15]: realizar simult´neamente m´ltiples recep- o a uciones de datos de todos sus vecinos, alguna operaci´n de c´mputo y m´ltiples operaciones de env´ de o o u ıoinformaci´n a todos sus vecinos; pueden tener limitado el n´mero de recepciones y env´ a k vecinos o u ıos(k = 1, . . . , p − 2); pueden realizar dos acciones en paralelo (recepci´n + c´mputo, recepci´n + env´ o o o o ıo
  • 15. ´ ´1.4. METRICAS DE RENDIMIENTO EN SISTEMAS HETEROGENEOS 11c´mputo + env´ o pueden llevar a cabo unicamente una operaci´n en cada instante de tiempo. Esta o ıo); ´ oultima opci´n elimina el paralelismo interno de los procesadores, ya que todas las operaciones que ejecuta´ oun procesador las realiza de forma secuencial.1.4. M´tricas de rendimiento en sistemas heterog´neos e e En esta secci´n se especifican algunas de las m´tricas empleadas para analizar el rendimiento en o esistemas heterog´neos. Algunas de ellas se definen de forma natural por extensi´n del caso homog´neo; e o eotras, por contra, requieren una formulaci´n espec´ o ıfica. En la definici´n de estas medidas se utiliza la osiguiente notaci´n: o M : Es el tama˜o del problema, expresado como el n´mero de operaciones necesarias para resolverlo. n u Tseqi : Es el tiempo de ejecuci´n del algoritmo secuencial en el procesador pi . o Ti : Es el tiempo empleado por la ejecuci´n paralela desde su inicio hasta la finalizaci´n del proce- o o sador pi . Considerando las definiciones anteriores, se denomina tiempo de ejecuci´n paralelo, T par , al tiem- opo transcurrido desde el comienzo de la ejecuci´n paralela hasta el momento en que finaliza el ultimo o ´ a p−1procesador [113]: Tpar = m´xi=0 Ti . La potencia computacional de un procesador en un sistema heterog´neo puede ser definida como ela cantidad de trabajo realizada en el procesador durante una unidad de tiempo [145, 192]. La potenciacomputacional depende de las caracter´ ısticas f´ ısicas del procesador, pero tambi´n de la tarea que se eest´ ejecutando. Esto significa que este valor puede variar para diferentes aplicaciones y, debido a las elimitaciones del tama˜o de memoria, cach´ y otros componentes hardware, la velocidad de c´mputo n e opuede cambiar tambi´n al modificar el tama˜o del problema de la aplicaci´n. e n o La potencia computacional del procesador pi para una carga de trabajo M puede ser expresada como MCPi = Tseq . Desde un punto de vista pr´ctico, la potencia computacional media, en un conjunto de a iprocesadores, puede calcularse ejecutando una versi´n secuencial del algoritmo en cada uno de ellos, ousando un problema de tama˜o adecuado para prevenir errores debido a efectos en la memoria cach´. n e En los sistemas homog´neos la potencia computacional es constante para todos los procesadores eCPi = CP , i = 0, . . . , p − 1. La potencia computacional total de un sistema heterog´neo, compuesto por p procesadores e(CPt (p)), puede definirse como la suma de la potencia computacional de todos los procesadores quecomponen el sistema [145]. Este par´metro refleja la cantidad de trabajo que puede realizar el sistema en a p−1una unidad de tiempo, al ejecutar un algoritmo espec´ıfico. Puede expresarse como CP t (p) = i=0 CPi . En los sistemas homog´neos, al permanecer constante la potencia computacional para todos los proce- esadores, la potencia computacional total puede expresarse como CPt (p) = p ∗ CP . Otra de las m´tricas que pueden ser utilizadas en un sistema es su nivel de heterogeneidad. Este epar´metro ofrece un valor de la similitud o diversidad de las m´quinas del sistema; por ejemplo, cuando a aun n´mero peque˜o de procesadores es mucho m´s r´pido o m´s lento que la mayor´ se considera que u n a a a ıaes un sistema con una heterogeneidad alta. Se calcula en funci´n de la potencia computacional de sus om´quinas: escalando los valores obtenidos de las potencias computacionales para los procesadores, de amodo que a aquellos que sean m´s r´pidos se les asigne una potencia computacional de 1. Denominando a aCPiE a las potencias computacionales escaladas de las m´quinas, se define la heterogeneidad del sistema a p−1 (1−CP E )como H = i=0 p i [192]. Esta m´trica var´ entre 0 cuando el sistema es homog´neo (la potencia e ıa ecomputacional es la misma para todos los procesadores) y un valor m´ximo pr´ximo a 1. a o
  • 16. 12 CAP´ ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´ ´ IA Independientemente de las caracter´ ısticas de los procesadores, tambi´n es necesario considerar el ecoste de las comunicaciones. Tal como se ha descrito en la secci´n 1.2, un modelo habitual utiliza β ij oy τij (latencia y tiempo de transferencia respectivamente entre dos procesadores de la red, p i y pj ) pararepresentar el coste de las comunicaciones mediante el modelo lineal cl´sico β ij + τij ∗ w. a La aceleraci´n (Sp) obtenida en un sistema paralelo es tambi´n una m´trica importante del rendi- o e emiento de un algoritmo en el sistema, puesto que muestra el beneficio relativo de resolver un problemaen paralelo frente a su resoluci´n en una m´quina secuencial. o a En sistemas homog´neos se define la aceleraci´n como la relaci´n entre el tiempo secuencial obtenido en e o o Tseqcualquiera de las m´quinas y el tiempo de ejecuci´n paralelo: Sp = Tpar , donde Tseq = Tseqi , i = 0, . . . , p−1 a o[1, 185]. Si Sp > 1 entonces el sistema presenta un rendimiento superior al de las m´quinas individuales del asistema. Te´ricamente, la aceleraci´n nunca puede exceder al n´mero de procesadores p que intervienen en o o ula resoluci´n del problema. En muchos casos, la aceleraci´n conseguida es mucho menor que la aceleraci´n o o om´xima (Sp << p). Esta situaci´n puede producirse cuando no es posible descomponer el problema en a oun n´mero apropiado de tareas independientes a ser ejecutadas simult´neamente; o bien, si el tiempo u arequerido en la fase de comunicaci´n entre los procesadores es demasiado alto. o Sin embargo, en algunos algoritmos y para algunos casos, se puede obtener una aceleraci´n superior oal m´ximo (Sp > p). Este fen´meno se conoce como aceleraci´n superlineal [20, 91, 96]. Puede a o oaparecer debido a algoritmos secuenciales no ´ptimos o a caracter´ o ısticas del hardware que ralentizanla ejecuci´n del algoritmo secuencial (por ejemplo, el tama˜o de la memoria cach´). La primera de o n eestas situaciones se produce cuando el programa paralelo implementado realiza un n´mero inferior de uoperaciones, para resolver el problema, que el algoritmo secuencial. En este caso, la superlinealidadpuede resolverse f´cilmente si es posible dise˜ar un nuevo algoritmo secuencial que sea equivalente al a nalgoritmo paralelo empleado. La segunda de las situaciones es debida al tama˜o de la memoria cach´ de n eun procesador, que puede permitir resolver el subproblema asignado en una ejecuci´n paralela, realizando opocos intercambios de informaci´n entre memoria cach´ y memoria principal; mientras que el tama˜o o e ndel problema a resolver en el caso secuencial es muy superior y son necesarios un n´mero excesivo ude intercambios de datos entre memoria principal y cach´, ralentizando su ejecuci´n. En este caso, el e oproblema es m´s dif´ de resolver, es necesario modificar las caracter´ a ıcil ısticas hardware de la m´quina. a En el caso heterog´neo no todos los procesadores invierten el mismo tiempo en resolver el problema ede forma secuencial, por lo que es necesario adaptar el concepto de aceleraci´n. Diferentes autores pro- oporcionan definiciones de la aceleraci´n en una red heterog´nea [2, 32, 47, 62, 191, 192]. La definici´n m´s o e o aextendida es la que considera la aceleraci´n como la relaci´n entre el tiempo necesario para completar una o oejecuci´n en el procesador de referencia de la red y el tiempo empleado para realizar la misma ejecuci´n o osobre el sistema heterog´neo. Es habitual considerar como procesador de referencia el procesador m´s e a m´ p Tseqi ıni=0r´pido del sistema; en este caso, la definici´n de la aceleraci´n se convierte en Sp = a o o Tpar . Estadefinici´n es la que hemos empleado a lo largo de la memoria. o En estos sistemas la acelaraci´n m´xima que se puede alcanzar es menor que el n´mero de procesadores o a uque intervienen en la ejecuci´n, puesto que no todas las m´quinas disponen de las mismas caracter´ o a ısticas.En [47] los autores definen la potencia relativa del sistema como el n´mero de procesadores equivalentes ual procesador considerado como referencia, que deber´ componer un sistema homog´neo, para que los ıan edos sistemas tuvieran la misma potencia de c´mputo total. Para calcular este valor es necesario conocer oel n´mero de m´quinas de cada tipo disponibles en el sistema y las relaciones entre sus velocidades. u aConsiderando como procesador de referencia el correspondiente a las m´quinas m´s r´pidas, utilizamos a a alas potencias computacionales escaladas para obtener la heterogeneidad del sistema. Suponiendo quetenemos un sistema con dos tipos de m´quinas, la aceleraci´n m´xima que podemos obtener ser´ Sp max a o a ıa:= n´mero de m´quinas r´pidas + n´mero de m´quinas lentas * potencia computacional escalada de las u a a u am´quinas lentas. Considerando un sistema heterog´neo general, donde existen m tipos de m´quinas a e a m−1diferentes, la aceleraci´n m´xima viene dada por la siguiente ecuaci´n: Sp max = n R + i=1 ni ∗ CPiE ; o a o
  • 17. ´ ´1.4. METRICAS DE RENDIMIENTO EN SISTEMAS HETEROGENEOS 13donde nR es el n´mero de procesadores r´pidos (tipo de m´quina 0) y se suma el n´mero de procesadores u a a ude cada uno de los tipos restantes (i = 1, . . . , m − 1) por su potencia computacional escalada. Un ejemplode aplicaci´n de esta definici´n lo encontramos en [88], aunque en este caso los autores utilizan como o om´quina de referencia a los procesadores m´s lentos. a a La eficiencia y la escalabilidad son tambi´n dos conceptos fundamentales para definir el rendimiento ede los sistemas paralelos, particularmente en el caso de los clusters. La eficiencia es una medida del porcentaje de tiempo por m´quina que es empleado para resolver un ac´mputo paralelo. En los sistemas homog´neos la eficiencia se define como la aceleraci´n dividida entre el o e on´mero de procesadores Sp/p y se han desarrollado numerosos trabajos, tanto te´ricos como pr´cticos, u o apara caracterizar la eficiencia en estos sistemas [1, 58, 68, 87, 115, 185]. En un sistema ideal, el valor dela eficiencia es 1, pero en sistemas reales var´ entre 0 y 1. ıa La escalabilidad de un sistema homog´neo es un t´rmino impreciso, puede definirse como la capaci- e edad de un sistema paralelo para mejorar su rendimiento cuando aumenta el tama˜o del problema y el nn´mero de procesadores. Se basa en la selecci´n de una m´trica empleada para caracterizar el compor- u o etamiento del sistema. Las m´tricas m´s utilizadas han sido la aceleraci´n, la eficiencia, la velocidad media e a oy la latencia. El grado de escalabilidad de un sistema se calcula mediante la ecuaci´n: crecimiento del oproblema / crecimiento del sistema [190, 192]. Sin embargo, como sucede con las restantes medidas de rendimiento vistas en esta secci´n, no es oposible aplicar estos conceptos del ´mbito homog´neo directamente al caso heterog´neo, debido a las a e ediferencias de caracter´ ısticas y rendimiento de los procesadores que conforman el sistema. Para poderestablecer definiciones que se adapten a los sistemas heterog´neos partimos del concepto anterior de epotencia computacional total y concluimos que su valor en un sistema depende tanto del n´mero de uprocesadores que componen el sistema como de la potencia computacional de cada uno de ellos. Estosignifica que dos sistemas con el mismo n´mero de procesadores no necesariamente deben tener la misma upotencia computacional total y, por lo tanto, es posible incrementar su valor aumentando el n´mero ude procesadores (escalabilidad f´ ısica) o la potencia de alguno de ellos (escalabilidad de potencia)[145, 192]. Como consecuencia de este hecho no es posible definir la eficiencia de un sistema heterog´neo unica- e ´mente como una funci´n del n´mero de procesadores, como se hace en el caso de los sistemas homog´neos, o u edebido a que el rendimiento del sistema depende de cu´les son las m´quinas utilizadas en cada momento. a aLa eficiencia en un sistema heterog´neo puede definirse como la relaci´n entre el menor tiempo de eje- e ocuci´n necesario para resolver un problema espec´ o ıfico en el sistema y el tiempo real obtenido durante laejecuci´n del algoritmo: EF = Tiempo de ejecuci´n optimo / Tiempo de ejecuci´n real [145]. o o ´ o Formalmente, en [145] se establece la siguiente definici´n de escalabilidad: Dado un sistema paralelo oheterog´neo HN con p procesadores, con CPt para un trabajo M , y un sistema HN , con p procesadores ey con CPt para un trabajo M , con CPt > CPt ; se puede decir que HN es un sistema escalable si, cuandoel sistema es ampliado desde HN a HN , es posible seleccionar un problema M tal que la eficiencia deHN y HN permanezcan constantes. A efectos pr´cticos consideraremos que el sistema es escalable cuando sea posible incrementar la efi- aciencia del sistema aumentando la potencia de c´mputo a trav´s de alguno de los dos elementos definidos. o e Por ultimo, el n´ mero de procesadores utilizados para resolver un problema tambi´n es una ´ u emedida a tener en cuenta en el caso homog´neo. El n´mero total de procesadores disponibles en un e uentorno puede ser superior al n´mero ´ptimo necesario para ejecutar un algoritmo, lo que puede producir u oun uso ineficiente de la arquitectura paralela. Esto significa que hay que seleccionar un subconjunto deprocesadores que minimice el tiempo de ejecuci´n del problema. En el caso heterog´neo, es necesario o ecalcular el n´mero ´ptimo de procesadores de cada uno de los tipos disponibles de m´quinas, para u o aminimizar el tiempo de ejecuci´n. o
  • 18. 14 CAP´ ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´ ´ IA1.5. Ejemplos de sistemas heterog´neos e1.5.1. Un ejemplo de plataforma heterogenea Consideramos la plataforma heterog´nea donde hemos realizado las pruebas experimentales de los ecap´ ıtulos 2 y 3, como el grafo no dirigido HN (P, IN ) (secci´n 1.3), donde el conjunto de procesadores odisponibles en el sistema, P , est´ formado por los siguientes grupos de m´quinas: a a El primer grupo est´ compuesto por una m´quina de memoria compartida con cuatro procesadores a a Intel (R) XeonT M de 1.40 GHz con 3Gb de memoria. Los procesadores que forman esta m´quina a se denominar´n a lo largo de toda la memoria como m´quinas r´pidas (R). a a a El segundo grupo de m´quinas lo forman cuatro PCs AMD DuronT M de 800 MHz con 256 MB de a memoria. Estas m´quinas se denominar´n m´quinas intermedias (I). a a a El ultimo grupo, las m´quinas lentas (L), est´ formado por seis PCs AMD-K6 T M de 501 MHz con ´ a a 256 MB de memoria. Todas las m´quinas de estos tres grupos trabajan con el sistema operativo Debian Linux y est´n a aconectadas mediante un switch Fast Ethernet a 100 Mbit/s en un esquema de bus (figura 1.3) formandola red de inteconexi´n (IN ). En esta plataforma vamos a considerar la heterogeneidad debida a diferencias oen las velocidades de c´mputo de los procesadores y a las diferencias en las velocidades de comunicaci´n o o(secci´n 1.2). La heterogeneidad debida a las diferencias en las capacidades de memoria no la hemos otenido en cuenta al realizar este trabajo. A continuaci´n, caracterizamos esta plataforma (HN ) mediante algunas de las m´tricas de rendi- o emiento vistas en la secci´n 1.4. La primera m´trica calculada en HN es la potencia de c´mputo de cada o e ouno de los grupos de procesadores. Defin´ ıamos esta m´trica como la cantidad de trabajo realizado en el eprocesador durante una unidad de tiempo. En la pr´ctica utilizamos como medida el tiempo que tarda aun procesador pi en computar una cantidad de trabajo. Podemos determinar este valor ejecutando elalgoritmo secuencial en los tres tipos de m´quinas que componen HN , y posteriormente usar la relaci´n a oentre estos valores para establecer las cantidades de trabajo que se asignan a cada procesador. Esta me-dida depende del tipo de trabajo a realizar, por lo que es necesario calcularla para cada problema deforma independiente; en los cap´ ıtulos siguientes se presentan los resultados obtenidos para cada caso. Latabla 1.1 muestra un ejemplo de los resultados obtenidos al resolver el problema del producto de matricessobre los tres tipos de m´quinas. Los valores que aparecen en la tabla son las relaciones obtenidas entre alos tiempos secuenciales de las m´quinas r´pidas y lentas (columna L / R), entre los tiempo secuenciales a ade las m´quinas r´pidas e intermedias (columna I / R) y entre intermedias y lentas (columna I / L). a aEste problema lo resolvemos de forma paralela mediante un algoritmo maestro-esclavo en el cap´ ıtulo 2.Tabla 1.1: Relaciones obtenidas entre los tiempos secuenciales para los tres tipos de m´quinas que componen aHN con diferentes tama˜os de problemas: lentas / r´pidas (L / R), intermedias / r´pidas (I / R) y lentas / n a aintermedias (L / I). Filas Columnas L / R I / R L / I 700 700 4.89 1.63 3.00 1000 1000 5.03 1.67 3.01 1500 1500 4.85 2.99 1.62 2000 2000 3.94 3.70 1.06 Utilizando el mismo problema tambi´n podemos calcular el valor de otras dos m´tricas definidas en la e esecci´n 1.4: la heterogeneidad y la aceleraci´n m´xima que puede alcanzarse. Para calcular el valor de la o o a
  • 19. ´1.5. EJEMPLOS DE SISTEMAS HETEROGENEOS 15heterogenidad consider´bamos en la secci´n 1.4 que asign´bamos un 1 a la potencia computacional de la a o am´quina m´s r´pida y escal´bamos los valores para el resto de las m´quinas. A continuaci´n aplic´bamos a a a a a o a p−1 (1−CP E )la f´rmula: H = i=0 p o i . La tabla 1.2 contiene los valores escalados de la potencia computacional Epara los tres tipos de m´quinas que componen el cluster (columnas CP R para las m´quinas r´pidas, a a a E ECPI para las intermedias y CPL para las lentas) y el valor total de la heterogeneidad para el problemadel producto de matrices, con los cuatro tama˜os diferentes de problemas que presentamos en la tabla n1.1, cuando ejecutamos los problemas sobre el cluster completo de 14 m´quinas. aTabla 1.2: Potencia computacional escalada para los tres tipos de m´quinas del cluster (r´pidas, intermedias y a alentas) y valor de la heterogeneidad al resolver cuatro problemas de distintos tama˜os del producto de matrices. n E E E Filas Columnas CPR CPI CPL Heterogeneidad 700 700 1 0.61 0.20 0.45 1000 1000 1 0.60 0.20 0.46 1500 1500 1 0.33 0.21 0.53 2000 2000 1 0.27 0.25 0.53 Como se observa en la tabla 1.2, disponemos de un sistema bastante heterog´neo, el valor de la eheterogeneidad se mantiene alrededor de 0.5. La heterogeneidad se incrementa al aumentar el tama˜o del nproblema, puesto que la diferencia entre las velocidades de las m´quinas r´pidas e intermedias tambi´n a a eaumenta al resolver los problemas mayores (tabla 1.1). La tercera m´trica que vamos a aplicar utilizando este problema es la aceleraci´n m´xima del sistema. e o aAdaptamos la f´rmula definida en la secci´n 1.4 a tres tipos de m´quinas y obtenemos la siguiente o o a E Eecuaci´n: Spmax = nR + nI ∗ CPI + nL ∗ CPL , donde nR , nI y nL son el n´mero de procesadores o u E Er´pidos, intermedios y lentos respectivamente; CPI y CPL son los valores de las potencias de c´mputo a oescaladas que obtuvimos en el c´lculo de la heterogeneidad (tabla 1.2). La figura 1.4 muestra cu´les son a alas aceleraciones m´ximas posibles para el sistema, cuando resolvemos los problemas utilizando los 14 aprocesadores disponibles.Figura 1.4: Aceleraciones m´ximas posibles para los cuatro problemas del producto de matrices utilizando las 14 am´quinas disponibles en el sistema, comparadas con la aceleraci´n m´xima en un sistema homog´neo del mismo a o a etama˜o. n Como se observa en la figura 1.4, las aceleraciones m´ximas que podemos conseguir en este sistema aest´n muy lejos de la Spmax = 14 que tendr´ a ıamos si ejecut´semos los problemas sobre un sistema ho- amog´neo con el mismo n´mero de m´quinas que nuestro sistema heterog´neo. e u a e Otra de las medidas importantes que debemos considerar en nuestra plataforma es el coste de lascomunicaciones entre las m´quinas. Para modelizar estas comunicaciones se han medido los par´metros a a
  • 20. 16 CAP´ ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´ ´ IATabla 1.3: Latencia y tiempo de transferencia por byte en nuestra plataforma para todas las combinaciones dedos procesadores. Tipo Emisor Tipo Receptor β τ R´pido a R´pido a 6.52452E-06 8.7862E-09 R´pido a Intermedio 0.000129947 9.45607E-08 R´pido a Lento 0.000218896 1.0238E-07 Intermedio Intermedio 0.000139594 9.93899E-08 Intermedio Lento 0.000236513 1.07065E-07 Lento Lento 0.000306578 1.15404E-07β y τ mediante experimentos de tipo ping-pong. Se han utilizado las funciones MPI Send y MPI Receivecon bloqueo definidas en el est´ndar de la librer´ de paso de mensajes MPI [89, 134] y se realiza un a ıaajuste lineal de los tiempos de env´ como funci´n del tama˜o del mensaje, para combinaciones de ıo, o npares de m´quinas lentas (L), intermedias (I) y r´pidas (R) (tabla 1.3). Como los par´metros se han a a amedido utilizando un ping-pong, los valores obtenidos por las combinaciones r´pida-lenta y lenta-r´pida a ason iguales, as´ como los obtenidos para las combinaciones r´pida-intermedia, intermedia-r´pida y lenta- ı a aintermedia, intermedia-lenta. La figura 1.5 muestra el efecto de los par´metros β y τ . aFigura 1.5: Modelo lineal cl´sico para el tiempo de transferencia usando diferentes tipos de procesadores. R = aProcesador R´pido, I = Procesador Intermedio y L = Procesador Lento. a
  • 21. ´1.5. EJEMPLOS DE SISTEMAS HETEROGENEOS 171.5.2. Un ejemplo de programa heterog´neo e En el cap´ ıtulo 4, sin embargo, presentamos un ejemplo de heterogeneidad debida al programa. Elproblema que hemos utilizado como ejemplo en este cap´ ıtulo es la predicci´n de la estructura secundaria odel RNA. Este problema consiste en utilizar la secuencia de una mol´cula de RNA para obtener su es- etructura secundaria. La secuencia es considerada como una cadena de n caracteres: R = r 1 r2 . . . rn , ri ∈{A, C, G, U }, donde cada caracter ri se denomina base y la estructura secundaria se caracteriza por unacolecci´n S de pares (ri , rj ) de bases. Cada par de bases que se une libera energ´ y la estructura secun- o ıadaria se obtiene minimizando la energ´ liberada empleando la siguiente aproximaci´n de programaci´n ıa o odin´mica [103]: a   E(S(i+1,j) )  E(S(i,j−1) )  E(Si,j ) = m´ ın  ın{E(S(i,k) ) + E(S(k+1,j) )}  m´ para i < k < j E(Li,j ) sobre un dominio del problema definido como una matriz n × n triangular: T = {(i, j)|0 ≤ i ≤ j ≤ n};y donde Li,j especifica la situaci´n de las bases incluidas entre ri y rj cuando (ri , rj ) ∈ S, incluyendo la oexistencia de bucles en la estructura secundaria. De acuerdo con esta recurrencia, calcular un elemento (i, j) implica la necesidad de disponer de losvalores de los elementos anteriores (figura 1.6). Como se observa en la figura, el n´mero de elementos que ues necesario calcular previamente, depende de los valores de i y j.Figura 1.6: Dominio del problema. La parte coloreada representa las dependencias de un elemento (i, j). Son loselementos que deben estar calculados previamente para obtener el valor de (i, j). En el cap´ıtulo 4 resolvemos este problema sobre un multiprocesador, con procesadores homog´neos ey en una red de comunicaciones homog´nea. En la paralelizaci´n de este algoritmo podemos optar por e odistribuir la misma cantidad de elementos durante toda su ejecuci´n, o bien modificar esa distribuci´n o ode datos en cada una de las iteraciones del algoritmo. En este caso nos encontramos con un sistemaheterog´neo seg´n la definici´n de la secci´n 1.2, puesto que el tiempo de ejecuci´n para calcular cada e u o o ouno de los elementos no es constante, var´ dependiendo del n´mero de valores que es necesario tener ıa ucalculados previamente.
  • 22. 18 CAP´ ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´ ´ IA1.6. Objetivos y metodolog´ ıa Los factores que determinan el rendimiento de un programa paralelo son numerosos (velocidad deCPU, arquitectura del sistema, entorno de la programaci´n paralela, algoritmos, paradigmas de progra- omaci´n, etc.). En este trabajo nos proponemos como objetivo predecir el rendimiento de un sistema oheterog´neo para diferentes paradigmas de programaci´n (en el cap´ e o ıtulo 2 trabajamos con el paradig-ma maestro-esclavo y en el cap´ ıtulo 3 con los algoritmos pipelines). Pretendemos obtener los par´metros anecesarios (n´mero de procesadores y distribuci´n de trabajo) para una ejecuci´n eficiente de los progra- u o omas sobre sistemas heterog´neos. Sin embargo, no solamente deseamos disponer de modelos anal´ e ıticosde rendimiento, sino que tambi´n pretendemos desarrollar herramientas que faciliten el dise˜o y la e nprogramaci´n paralela y su aplicaci´n a diversos problemas: problemas de optimizaci´n mediante o o oprogramaci´n din´mica; operaciones matriciales, como el producto de matrices o la FFT bidimensional; o o aproblemas que surgen en el ´mbito de la biolog´ como la predicci´n de la estructura secundaria del RNA. a ıa, o En general, podemos afirmar que las dos grandes aproximaciones a la predicci´n del rendimiento de osistemas paralelos son el modelado anal´ ıtico y el profiling (simulaci´n/experimentaci´n) de rendimiento. o oSin embargo, en los ultimos a˜os podemos ver como muchos autores aplican con ´xito t´cnicas mixtas ´ n e eresultantes de la combinaci´n de ambas. Asimismo, en algunos trabajos se considera como una alternativa oviable la predicci´n del rendimiento mediante modelos estad´ o ısticos. El modelado anal´ ıtico utiliza modelos de la arquitectura y de los algoritmos para predecir el tiempode ejecuci´n de un programa. El proceso de modelado consiste en el estudio del dise˜o del algoritmo, la o nextracci´n de una serie de par´metros (tanto de la arquitectura de red como del algoritmo a resolver) y o auna formulaci´n matem´tica que los relaciona. De ella se obtiene una aproximaci´n al valor real que se o a opretende estimar. El grado de aproximaci´n de los resultados a la realidad depende del n´mero de su- o uposiciones y simplificaciones realizadas en la definici´n del modelo. Cuantas m´s situaciones contemple el o amodelo, mejores resultados se podr´n obtener, pero m´s complejo ser´ su uso. Las ventajas de los modelos a a aestriban en que definen un proceso estructurado que permite entender los problemas de rendimiento quepueden surgir y que facilita la b´squeda de un dise˜o ´ptimo del programa. Los principales inconvenientes u n oest´n relacionados con el hecho de que, en ocasiones, no son lo suficientemente precisos y a medida que acrece el sistema aumenta la complejidad del modelo. Hist´ricamente se han propuesto muchos modelos oanal´ıticos (PRAM [73], LogP [57, 58], BSP [178], BSPWB [154], etc.) asumiendo distintos paradigmasde c´mputo / comunicaci´n que han sido aplicados con distintos grados de ´xito en el an´lisis de algo- o o e aritmos y arquitecturas. Para el caso heterog´neo nos encontramos con el modelo HBSP (Heterogeneous eBSP ) [186] que es una actualizaci´n del modelo cl´sico BSP para que incluya par´metros que reflejen o a alas distintas velocidades de las m´quinas que componen el sistema. Sin embargo, en la mayor´ de los a ıacasos que aparecen en la literatura, se hacen an´lisis ad-hoc de los problemas o paradigmas concretos, aadaptando los modelos cl´sicos a las arquitecturas espec´ a ıficas. En [38] los autores modelan el rendimientode un sistema heterog´neo, siguiendo esta ultima estrategia, pero consideran unicamente sistemas con las e ´ ´mismas velocidades de comunicaciones entre cada par de m´quinas. a Por otro lado, el profiling puede ayudar a detectar cuellos de botella en el rendimiento de un sistemaparalelo concreto, corregirlos e identificar y prevenir los problemas de rendimiento futuros. Las m´tricas ede rendimiento requieren hardware y software de prop´sito espec´ o ıfico. Los estudios de estas medidas serealizan a menudo para determinar par´metros del sistema, que se usar´n posteriormente para estudiar o a avalidar un modelo. En [71] se presenta una herramienta de predicci´n que forma parte del Viena Fortran oCompilation System cuyo objetivo es mejorar el rendimiento de diferentes versiones del programa paralelosin ejecutarlas. Tambi´n se han desarrollado muchos proyectos para crear ficheros de trazas de eventos con einformaci´n temporal asociada, para examinarlos posteriormente, interpret´ndolos gr´ficamente en una o a aestaci´n de trabajo. La capacidad para generar ficheros de trazas de forma autom´tica es un componente o aimportante en muchas de estas herramientas como MPICL [189], Dimemas [80, 114], Kpi [69], etc. Losprogramas de presentaci´n de ficheros de trazas como ParaGraph [94, 95], Vampir [25, 137], Paraver o[115], etc. ayudan a analizar la informaci´n contenida en ellos. o
  • 23. 1.6. OBJETIVOS Y METODOLOG´ IA 19 En el ´mbito de las herramientas mixtas, habitualmente se emplean modelos anal´ a ıticos soportados ocombinados con herramientas de profiling. Una de estas herramientas es CALL [86, 156], una herramientade uso muy sencillo, simplemente se introducen pragmas en el c´digo para definir la secci´n que se o ova a ejecutar en paralelo, la librer´ de comunicaciones a utilizar (por ejemplo OpenMP [142] o MPI ıa[89, 134]), implementar bucles, establecer sincronizaciones, etc. Otra de estas herramientas es POETRIES[28, 29, 30]: est´ basada en esqueletos, y contiene un m´dulo, MATE [128], que permite utilizar el modelo a oanal´ıtico para mejorar de forma din´mica, en tiempo de ejecuci´n, el rendimiento de una aplicaci´n. a o o Por ultimo, mencionar tambi´n el modelado estad´ ´ e ıstico como un instrumento de predicci´n de rendi- omiento. Se pretende obtener un modelo mediante una reducci´n en los datos originales, estableciendo una orelaci´n entre las variables del sistema [41, 127, 159]. Se intenta establecer tambi´n la medida de hasta o eque punto esta nueva informaci´n, o modelo reducido, es v´lido y representa correctamente al original. La o aidea de estos modelos se basa en estudiar el problema para una peque˜a parte de los posibles valores que npueden tomar los par´metros y predecir cu´l ser´ el comportamiento del sistema para el rango completo a a ade valores. Como metodolog´ de trabajo en nuestra investigaci´n, optamos por emplear modelos anal´ ıa o ıticos parapredecir el rendimiento de un sistema heterog´neo, siguiendo la metodolog´ representada en la figura e ıa1.7: desarrollamos modelos anal´ ıticos basados en los par´metros obtenidos para el algoritmo y la arqui- atectura de la plataforma que predicen los valores adecuados para una ejecuci´n ´ptima. En la figura 1.7 o orepresentamos por un c´ ırculo los pasos de la metodolog´ que hay que realizar manualmente y por un ıacuadrado aquellos pasos que pueden automatizarse.Figura 1.7: Metodolog´ general aplicada. Representamos por un c´ ıa ırculo los pasos de la metodolog´ que hay que ıarealizar manualmente y por un cuadrado aquellos pasos que pueden automatizarse. Inicialmente, se define el problema o paradigma de programaci´n que vamos a estudiar y desarrollamos oun modelo anal´ ıtico para predecir el tiempo invertido en la resoluci´n de un problema. Estos dos pasos ohay que realizarlos de forma manual para cada uno de los paradigmas de programaci´n que queramos omodelar. A continuaci´n, generamos simuladores del modelo anal´ o ıtico. Estos simuladores nos permitencalcular, de forma autom´tica, el tiempo que tardar´ en resolverse un problema cuando se utiliza una a adistribuci´n espec´ o ıfica de tareas entre los procesadores. El siguiente paso a llevar a cabo es el an´lisis a
  • 24. 20 CAP´ ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´ ´ IAde nuestro sistema, obteniendo los valores que caracterizan nuestra plataforma (latencia y ancho debanda) y el algoritmo (velocidad de c´mputo para el problema de cada tipo de m´quina disponible). Este o apaso es posible automatizarlo para conseguir f´cilmente todos los valores. Una vez calculados los datos aanteriores, aplicamos m´todos exactos o heur´ e ısticos para calcular el tiempo m´ ınimo necesario para resolverel problema, as´ como los valores ´ptimos de los par´metros (n´mero de procesadores y distribuci´n de ı o a u otareas entre los procesadores). Por ultimo, ejecutamos el programa que resuelve el problema utilizando ´la configuraci´n de valores obtenidos en el paso anterior. o Tambi´n hemos desarrollado herramientas que faciliten el dise˜o y la implementaci´n de programas e n oparalelos para el caso del paradigma pipeline. Estas herramientas permiten escribir un c´digo paralelo ode forma que el paralelismo sea transparente al programador. Adem´s, es posible introducir en estas aherramientas el modelo anal´ıtico definido para el paradigma, para que calcule, de forma autom´tica, los avalores ´ptimos de los par´metros con los que debe resolverse un problema y realice su ejecuci´n. o a o En trabajos publicados recientemente ([7, 9, 10]) demostramos que la modelizaci´n anal´ o ıtica puede seraplicada, satisfactoriamente, para predecir el tiempo de ejecuci´n de aplicaciones paralelas en sistemas oheterog´neos empleando los paradigmas de programaci´n maestro-esclavo y pipelines. Esos modelos no e osolamente generan una distribuci´n ´ptima de tareas sino que, en algunos casos, nos permiten tambi´n o o edeterminar el conjunto m´s apropiado de procesadores que debemos utilizar para resolver el problema ade forma paralela. Adem´s de su aplicaci´n a paradigmas de programaci´n gen´ricos como los men- a o o ecionados anteriormente, la metodolog´ es aplicable a problemas espec´ ıa ıficos. En particular, en el cap´ ıtulo4 aplicamos esta metodolog´ comparando los resultados de los modelos anal´ ıa, ıticos con los de modelosestad´ ısticos desarrollados.
  • 25. Cap´ ıtulo 2El Paradigma Maestro-Esclavo enSistemas Hetererog´neos e2.1. Resumen En este cap´ıtulo estudiamos los algoritmos maestro-esclavo y proponemos modelos anal´ ıticos parapredecir su rendimiento sobre sistemas heterog´neos. Estos modelos en particular han demostrado su eeficacia en diferentes esquemas de resoluci´n, tal y como hemos comprobado haciendo uso de casos de oestudio sobre un cluster heterog´neo de PCs (secci´n 1.5.1). Mediante algoritmos maestro-esclavo hemos e oabordado productos de matrices y Transformadas R´pidas de Fourier bidimensionales. Los resultados aobtenidos, en la resoluci´n de estos dos problemas, demuestran la precisi´n de la aproximaci´n num´rica o o o ey los beneficios de nuestra propuesta. Los modelos desarrollados constituyen un instrumento con el que sintonizar los algoritmos paralelos.Consideramos dos importantes elementos a sintonizar en una computaci´n en paralelo: la asignaci´n de o odatos a las unidades de c´mputo y el n´mero ´ptimo de procesadores a utilizar. La cuesti´n de decidir o u o oentre varias estrategias de paralelizaci´n prometedoras se resuelve tambi´n aqu´ de manera natural, o e ı,utilizando las capacidades predictivas de estos modelos en una herramienta integrada.2.2. Introducci´n o El problema maestro-esclavo ha sido extensamente estudiado y modelado en arquitecturas homog´neas e[81, 92, 153, 176] y ya se han propuesto numerosas t´cnicas de planificaci´n para c´mputos irregulares e o oy para sistemas heterog´neos [14, 16, 66, 160]. En [66] ha sido presentado un modelo anal´ e ıtico y unaestrategia para encontrar una distribuci´n ´ptima de las tareas sobre un paradigma maestro-esclavo que o oconsiste en resolver un sistema de p − 1 ecuaciones; sin embargo, consideramos que la soluci´n presentada otiene la desventaja de no analizar las colisiones de comunicaciones en una plataforma heterog´nea. De eesta estrategia hablaremos con m´s detalle en la secci´n 2.5. En [16] los autores proporcionan algoritmos a oeficientes en el contexto de la computaci´n heterog´nea para el paradigma maestro-esclavo. Formulan o eel problema considerando diferentes variantes, pero consideran la heterogenidad debida unicamente a la ´velocidad de procesamiento de las m´quinas. En [160] se presenta un modelo estructural para prede- acir el rendimiento de los algoritmos maestro-esclavo sobre sistemas heterog´neos. El modelo es bastante egeneral y cubre la mayor´ de las situaciones que aparecen en los problemas pr´cticos. Este modelo estruc- ıa atural puede considerarse como un esqueleto donde pueden ser instanciados los modelos para aplicacionesmaestro-esclavo con diferentes implementaciones o entornos. Un inconveniente de esta aproximaci´n es o 21
  • 26. 22 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOque la instanciaci´n del esqueleto a un caso particular no es una tarea trivial. En su propuesta, no oconsideran la posibilidad de encontrar la distribuci´n ´ptima de trabajo entre los procesadores. o o Como se observa en estas referencias y ha sido comentado en el cap´ ıtulo 1, algunos autores [16]consideran la heterogeneidad debida exclusivamente a las diferentes velocidades de procesamiento delas m´quinas. Sin embargo, se ha demostrado que las diferencias en las comunicaciones tambi´n son a esignificativas [14], a´n cuando las capacidades de comunicaci´n de los procesadores sean las mismas. Por u oeste motivo, nosotros consideramos la heterogeneidad en el sistema debida a la velocidad de c´mputo de olos procesadores y a las diferencias en el tiempo de transmisi´n entre cada par de m´quinas, lo que nos o aproporciona una visi´n m´s general del sistema. o a En este cap´ ıtulo presentamos dos modelos anal´ ıticos que hemos desarrollado para predecir el tiempo deejecuci´n de los algoritmos maestro-esclavo sobre sistemas heterog´neos [6, 7, 10]. Los modelos consideran o eheterogeneidad debida a los procesadores y a la red (secci´n 1.2) e incluyen algunas de las variantes oestudiadas en [16, 160]; en particular, consideramos las estrategias denominadas FIFO y LIFO. Haciendouso de estos modelos hemos desarrollado una estrategia para obtener la asignaci´n ´ptima de tareas a o olos procesadores que mejora la aproximaci´n cl´sica, que asigna las tareas de forma proporcional a la o avelocidad de procesamiento de cada m´quina. Los resultados computacionales demuestran la eficiencia ade este esquema y la eficacia de sus predicciones. La mayor´ de los trabajos mencionados anteriormente resuelven el problema de la distribuci´n del ıa otrabajo sobre un conjunto fijo de procesadores. Un trabajo donde s´ pueden determinar el n´mero ´ptimo ı u ode procesadores se encuentra en [176]. Los autores desarrollan dos esquemas de particionado ´ptimo de otrabajo para el procesamiento de secuencias de video en paralelo en sistemas de tiempo real; sin embargo,consideran unicamente sistemas homog´neos. Nosotros tambi´n consideramos la resoluci´n de este pro- ´ e e oblema pero bajo un entorno heterog´neo, en el que la propia naturaleza de la arquitectura introduce un egrado de complejidad adicional. La formulaci´n como problema de optimizaci´n de recursos (RAP ) [104] o onos ha proporcionado el contexto adecuado para obtener soluciones eficientes. El resto del cap´ ıtulo lo hemos estructurado en las siguientes secciones: en la secci´n 2.3 definimos el oparadigma maestro-esclavo y las posibles estrategias para resolver un problema; en las secciones 2.4, 2.5 y2.6 presentamos los modelos anal´ ıticos que hemos desarrollado para resolver este tipo de problema, parados de los esquemas de resoluci´n (FIFO y LIFO), tanto en entornos homog´neos como heterog´neos o e ey en la secci´n 2.7 se encuentran los resultados experimentales que hemos obtenido al validar nuestros omodelos. Un m´todo exacto que nos permite obtener la mejor distribuci´n de trabajo para realizar la e oejecuci´n en un tiempo m´ o ınimo ha sido presentado en la secci´n 2.8; y en la secci´n 2.9 describimos la o ometodolog´ que hemos empleado. En las secciones 2.10 y 2.11 se encuentran los resultados obtenidos al ıaejecutar con nuestra estrategia, comparando estos resultados con los obtenidos con otras distribucionesy, por ultimo, en la secci´n 2.12 se encuentran las conclusiones de este trabajo. ´ o2.3. El paradigma maestro-esclavo En el paradigma maestro-esclavo se pretende resolver un problema de tama˜o m, asumiendo que nel trabajo puede ser dividido en un conjunto de p tareas independientes: tarea 1 , . . . , tareap , de tama˜os n parbitrarios m1 , . . . , mp , donde i=1 mi = m. Al no existir dependencias entre los datos, cada una deestas tareas pueden ser procesadas en paralelo por p procesadores, denominados esclavos (p 1 , . . . , pp ). Se considera que inicialmente la carga total de trabajo m reside en un unico procesador denominado ´maestro (p0 ). El procesador maestro, de acuerdo con alguna pol´ ıtica de asignaci´n, divide el trabajo om en p partes y distribuye el trabajo a los dem´s procesadores, de manera que la tarea i le corresponde aal procesador pi . Una vez recibida su parte de trabajo cada procesador comienza inmediatamente acomputarlo obteniendo un resultadoi . Finalmente, todos los esclavos devuelven su resultado al maestro.El orden de recepci´n de los resultados en el maestro depende del esquema utilizado en la resoluci´n del o oproblema.
  • 27. 2.3. EL PARADIGMA MAESTRO-ESCLAVO 23 Asumimos en nuestro trabajo que todos los procesadores est´n conectados a trav´s de un canal de a ecomunicaci´n, normalmente un bus (figura 2.1). A este canal s´lo es posible acceder de forma exclusiva; es o odecir, en un instante de tiempo dado, solamente un esclavo puede comunicar con el maestro para recibirsus datos o enviarle el resultado.Figura 2.1: Arquitectura maestro-esclavo. p0 es el procesador maestro mientras que los procesadores p1 , . . . , ppse denominan esclavos. Todos los procesadores est´n conectados a trav´s de un canal de comunicaci´n exclusivo. a e o Para resolver este problema existen varios esquemas de ejecuci´n: o 1. Estrategia FIFO: Los esclavos finalizan su ejecuci´n en el mismo orden en que la comenzaron; es o decir, el maestro recibe los resultados de los esclavos en el mismo orden en el que realiz´ los env´ o ıos de las tareas (figura 2.2-a). 2. Estrategia LIFO: Los esclavos finalizan su ejecuci´n en el orden inverso al de comienzo; es decir, o el orden en el que el maestro recibe los resultados de los esclavos est´ invertido respecto al orden a de env´ de los trabajos (figura 2.2-b). ıo 3. El maestro recibe los resultados de los esclavos a medida que estos est´n disponibles, sin que exista a un orden preestablecido. La figura 2.2-c muestra un caso particular de esta estrategia cuando s´lo o existe una etapa; es decir, los esclavos realizan el proceso de recibir su tarea, computarla y enviar al maestro su resultado una unica vez. La figura 2.2-d muestra un caso particular de esta estrategia ´ cuando la resoluci´n del problema requiere m´s de una etapa. Para cada esclavo se muestra con o a una l´ ınea vertical gruesa el inicio de la segunda etapa. En la figura 2.2 se muestran los diagramas de tiempo para las tres estrategias de resoluci´n de un oproblema maestro-esclavo. En estos diagramas cada una de las barras horizontales representa la ejecuci´n ode un esclavo (pi ) y para cada uno de ellos representamos por un rect´ngulo con puntos azules el tiempo arecepci´n del trabajo, por un rect´ngulo con l´ o a ıneas discont´ınuas verticales naranjas el tiempo que el esclavoinvierte en realizar el c´mputo, y por un rect´ngulo con l´ o a ıneas diagonales verdes el tiempo necesario paradevolver el resultado al maestro. Las restantes im´genes de este cap´ a ıtulo que representan diagramas detiempo mantienen este mismo formato de colores. En este trabajo hemos abordado las estrategias FIFO y LIFO (figura 2.2). Los algoritmos que eje-cutan el maestro y los esclavos para resolver el problema, mediante estas dos estrategias, se presentan acontinuaci´n: o Estrategia FIFO /* Procesador: Maestro */ /* Procesador: Esclavo */ for (proc = 1; proc <= p; proc++) recibir(proc, trabajo); enviar(proc, trabajo[proc]); computar(trabajo, resultado); enviar(proc, resultado); for (proc = 1; proc <= p; proc++) recibir(proc, resultado[proc]);
  • 28. 24 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVO a) b) c) d)Figura 2.2: Esquemas de resoluci´n del paradigma maestro-esclavo. a) Estrategia FIFO: los esclavos finalizan osu ejecuci´n en el mismo orden en que comenzaron. b) Estrategia LIFO: los esclavos finalizan su ejecuci´n en el o oorden inverso al de comienzo. c) Caso particular de la tercera estrategia, resolviendo el problema en una unica ´etapa. d) Caso particular de la tercera estrategia, resolviendo el problema en dos etapas. Estrategia LIFO /* Procesador: Maestro */ /* Procesador: Esclavo */ for (proc = 1; proc <= p; proc++) recibir(proc, trabajo); enviar(proc, trabajo[proc]); computar(trabajo, resultado); enviar(proc, resultado); for (proc = p - 1; proc >= 1; proc--) recibir(proc, resultado[proc]); Se observa que en ambos casos el proceso realizado en los esclavos es el mismo: reciben una tarea,computan ese trabajo y devuelven el resultado al maestro. La diferencia entre los dos esquemas radicaunicamente en el orden de recepci´n de los resultados de los esclavos en el maestro (figura 2.2).´ o Dependiendo de la relaci´n entre el tama˜o del trabajo enviado y el tama˜o del resultado generado o n npor los esclavos, pueden darse diferentes situaciones al resolver este problema, empleando cualquiera delas dos estrategias consideradas (FIFO y LIFO). La primera de estas situaciones se produce cuando losdos tama˜os son iguales y, por lo tanto, el tiempo que tarda un esclavo en recibir su tarea coincide ncon el tiempo que tarda en enviar su resultado (figura 2.2). Sin embargo, esto no sucede en todas lasaplicaciones. Cuando los tama˜os de los datos de entrada y del resultado no coinciden, la distribuci´n n ouniforme entre todos los procesadores puede no ser la distribuci´n ´ptima. Puede ocurrir que el tama˜o o o nde la tarea sea superior al tama˜o del resultado. Esta situaci´n se puede encontrar en problemas donde n ocada esclavo recibe un conjunto de datos (normalmente una matriz o una parte de ella) y el resultadoa devolver es un unico valor obtenido al operar con los datos iniciales. Un caso particular se produce ´cuando el esclavo no genera ning´n resultado (el tama˜o del resultado es cero). Esto podr´ deberse, por u n ıaejemplo, a que se est´ resolviendo el problema en un sistema de memoria compartida o bien porque el eesclavo almacene el resultado obtenido directamente en un fichero. La figura 2.3 muestra gr´ficamente aestos dos casos para la estrategia de resoluci´n FIFO. o Debido a la exclusividad del canal de comunicaci´n, cuando se resuelve un problema hay ocasiones oen las que todos los esclavos est´n computando por lo que el maestro permanece ocioso. Sin embargo, atambi´n puede suceder que un procesador termine de computar su trabajo y quiera enviar su resultado al emaestro pero el canal se encuentre ocupado por otro esclavo, en este caso el esclavo que ya ha finalizadosu c´mputo debe esperar sin trabajar hasta que el canal sea liberado. En el diagrama de tiempo esto olo representamos como un hueco entre el c´mputo (rect´ngulo de l´ o a ıneas verticales naranjas) y el env´ ıo
  • 29. ´ ´2.4. ESTRATEGIA FIFO DE RESOLUCION EN SISTEMAS HOMOGENEOS 25Figura 2.3: Ejemplos de las situaciones particulares para la estrategia FIFO. Izquierda: El tama˜o de las tareas nes mayor que el tama˜o de los resultados. Derecha: El tama˜o del resultado es 0. n ndel resultado (rect´ngulo con l´ a ıneas diagonales verdes). De aqu´ en adelante, denominaremos hueco al ıper´ ıodo de tiempo en el que un esclavo permanece ocioso durante el proceso de la resoluci´n del problema. oEn la figura 2.3 se observa que para evitar la existencia de huecos que retrasen la resoluci´n del problema ose asignan a los esclavos cantidades distintas de trabajo, de forma que el tiempo de c´mputo de cada oesclavo disminuya progresivamente. La tercera situaci´n se produce cuando el tama˜o del resultado es mayor que el tama˜o de la tarea o n n(figura 2.4-Izquierda). Como caso particular, tambi´n nos encontramos la posibilidad de que el esclavo eno tenga que recibir inicialmente ninguna informaci´n, en cuyo caso el tama˜o de la tarea es 0 (figura o n2.4-Derecha). Esto puede deberse a que los esclavos leen la informaci´n de entrada directamente de un ofichero y trabajan sobre los datos le´ıdos. En la figura 2.4 el tiempo de c´mputo del primer esclavo es omenor que el tiempo de c´mputo del ultimo para evitar la aparici´n de huecos en los diagramas de tiempo. o ´ oFigura 2.4: Ejemplos de las situaciones particulares para la estrategia FIFO. Izquierda: El tama˜o de la tarea es nmenor que el tama˜o del resultado. Derecha: El tama˜o del tarea es 0. n n Los modelos, que presentamos en las secciones siguientes, consideran el caso general donde tenemosun tiempo de recepci´n de tareas y un tiempo de env´ de resultados para cada esclavo; y estos dos valores o ıopueden ser iguales o diferentes, e incluso tomar el valor 0. As´ mismo, los tiempos de c´mputo no tienen ı oque ser iguales para todos los esclavos. Todas estas consideraciones permiten a nuestros modelos reflejarcualquiera de las situaciones vistas anteriormente, sin necesidad de establecer casos particulares.2.4. Estrategia FIFO de resoluci´n del problema en sistemas o homog´neos e Un sistema hom´geneo es aquel donde todos los procesadores tienen las mismas caracter´ o ısticas (secci´n o1.1). En estos sistemas y en la situaci´n donde el tama˜o de la tarea es igual al tama˜o del resultado, o n nel particionamiento ´ptimo de los datos se obtiene cuando se asigna a todos los procesadores la misma ocantidad de trabajo (m/p), de forma que el tiempo de c´mputo es el mismo para todos los esclavos. Este otiempo de c´mputo depende del tama˜o total del problema y de la cantidad de trabajo asignada a cada o n
  • 30. 26 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOprocesador, por lo que definimos una funci´n que nos devuelva el tiempo de c´mputo de cada esclavo. o oDebido a que en un sistema homog´neo a todos los procesadores se les asigna la misma cantidad de etrabajo, la funci´n la representamos como Ci (m/p) y nos devuelve un valor que es constante para todos olos procesadores. La figura 2.5 representa un diagrama de tiempo t´ ıpico para un problema maestro-esclavohomog´neo donde el tama˜o de la tarea coincide con el tama˜o del resultado. e n nFigura 2.5: Diagrama de tiempo para un problema maestro-esclavo homog´neo donde el tama˜o de la tarea e ncoincide con el tama˜o del resultado. n En la figura 2.5, los rect´ngulos con l´ a ıneas verticales naranjas representan el tiempo, C(m/p), que losesclavos emplean en computar el trabajo asignado; los rect´ngulos con puntos azules representan el tiempo ade comunicaci´n entre el maestro y los esclavos para recibir las tareas (β + τ ∗ w), donde w (el tama˜o o nen bytes de la tarea que el maestro env´ a cada esclavo) es un valor fijo para todos los procesadores; y ıalos rect´ngulos con l´ a ıneas diagonales verdes representan el tiempo de comunicaci´n entre los esclavos y el omaestro para enviar los resultados (β + τ ∗ s), donde s es el n´mero de bytes que ocupa el resultado que ulos esclavos devuelven al maestro. Tambi´n s es un valor fijo para todos los procesadores, pero puede ser eun valor igual o diferente al tama˜o de las tareas. Estos dos valores normalmente dependen del tipo de ndatos, del tama˜o total del problema y de la cantidad de trabajo asignada a cada procesador. n El tiempo total de ejecuci´n viene dado por el tiempo empleado hasta que finaliza el ultimo esclavo o ´(procesador pp ) y se puede obtener mediante la f´rmula: o Tpar = Tp = (p ∗ (β + τ ∗ w)) + C(m/p) + (β + τ ∗ s) Es decir, el tiempo total se calcula como la suma de los tiempos de recepci´n de todos los esclavos om´s el tiempo que tarda el ultimo esclavo en computar su tarea y devolver su resultado al maestro (figura a ´2.5).2.5. Estrategia FIFO de resoluci´n del problema en sistemas o heterog´neos e A diferencia de los sistemas homog´neos, en los entornos heterog´neos consideramos que los tiempos e ede transmisi´n entre el maestro y los diferentes esclavos pueden ser distintos, as´ como el tiempo de o ıc´mputo que necesitan para realizar su tarea (heterogeneidad debida a los procesadores y heterogeneidad odebida a la red (secci´n 1.2)). o En la secci´n 1.5.1 presentamos las caracter´ o ısticas de la plataforma heterog´nea sobre la que realizamos elas pruebas. Utilizando estas caracter´ ısticas definimos tres funciones de tiempo que vamos a utilizar en eldesarrollo de los modelos anal´ıticos. La primera de ellas la denominamos tiempo de c´mputo (C i (mi )) oy nos indica el tiempo que tarda un procesador pi en computar una tarea de tama˜o mi . Esta funci´n n onos permite determinar las diferencias en las velocidades de c´mputo de las m´quinas (heterogeneidad o adebida a los procesadores). Al ser una funci´n dependiente del tipo de tarea a procesar, en cada uno de olos problemas que se resuelven en este cap´ ıtulo se presentan tablas y gr´ficas de la funci´n obtenida. a o Las otras dos funciones hacen referencia a los tiempos de transmisi´n entre dos procesadores (hetero- ogeneidad debida a la red). Sea un procesador cualquiera, pi , vamos a denominar tiempo de recepci´n o
  • 31. ´ ´2.5. ESTRATEGIA FIFO DE RESOLUCION EN SISTEMAS HETEROGENEOS 27de datos al tiempo que tarda el procesador maestro en transmitir los datos y el que necesita el procesadorpi en recibirlos. Este tiempo lo denotamos por Ri (wi ) = βi + τi ∗ wi , donde wi representa el tama˜o en nbytes de la informaci´n que recibe el procesador pi y βi y τi es la latencia y el tiempo de tranferencia por obyte respectivamente entre el maestro y pi . El segundo tiempo que consideramos para el procesador pies el tiempo de env´ de datos. Se obtiene como Si (si ) = βi + τi ∗ si , donde si es el tama˜o en bytes ıo nde los datos transmitidos. Como ocurre en el caso anterior, la comunicaci´n incluye el tiempo que tarda oel procesador en enviar la informaci´n como el tiempo que tarda el procesador maestro en recibirla. o Al definir las funciones anteriores estamos considerando que el tama˜o de la tarea y el tama˜o de la n nsoluci´n pueden ser iguales (wi = si ) o diferentes. Esto nos permite cubrir todas las posibles situaciones oespecificadas en la secci´n 2.3. o Debido a estas circunstancias, en el entorno heterog´neo pueden aparecer situaciones an´malas que e otenemos que considerar dependiendo de la posici´n que ocupe cada procesador en el conjunto total de oprocesadores. El tiempo total que necesita el esclavo pi para finalizar su trabajo lo denominamos Ti , este valorincluye no s´lo el tiempo que el procesador tarda en computar su tarea (Ci (mi )), sino tambi´n el tiempo o enecesario para recibir los datos desde el maestro (Ri (wi )) y el tiempo para devolver el resultado (Si (si )).Por tanto, el tiempo total de un problema maestro-esclavo con p esclavos viene dado por el tiempo quetarda el ultimo esclavo en completar su trabajo (Tpar = Tp ). En lo que resta de cap´ ´ ıtulo y, sin p´rdida ede generalidad, se simplificar´ la notaci´n utilizando unicamente Ri , Ci y Si en lugar de Ri (wi ), Ci (mi ) a o ´y Si (si ) respectivamente. Como coment´bamos en la secci´n 2.2, se han propuesto muchas t´cnicas de planificaci´n de tareas en a o e oentornos heterog´neos. En [66] se presenta una estrategia para resolver este caso, que puede verse como ela extensi´n natural del trabajo desarrollado en [37]. Ellos consideran que la distribuci´n ´ptima en la o o oestrategia FIFO se obtiene cuando Ci + Si = Ri+1 + Ci+1 (figura 2.6). La idea es solapar la computaci´n oy la comunicaci´n y conseguir una distribuci´n equilibrada en carga entre todos los procesadores. La o odistribuci´n se obtiene resolviendo un sistema lineal de p−1 ecuaciones de la forma anterior. Sin embargo, oen este trabajo no se analizan las colisiones en un plataforma heterog´nea. eFigura 2.6: Diagrama de tiempo para la estrategia de distribuci´n Ci + Si = Ri+1 + Ci+1 . Se consigue una odistribuci´n perfectamente equilibrada en carga, pero no se realiza un an´lisis de colisiones en las comunicaciones. o a Si el n´mero de procesadores es demasiado grande, la resoluci´n del sistema podr´ no generar una u o ıadistribuci´n ´ptima, tal y como veremos a continuaci´n. Consideremos un ejemplo en el que se resuelve o o oun problema peque˜o de tama˜o m = 38 empleando 5 esclavos, en una situaci´n donde el tama˜o de la n n o ntarea es igual al tama˜o del resultado que genera, por lo que tenemos wi = si y por lo tanto Ri = Si . En nla figura 2.7-a se puede ver una soluci´n para el sistema de ecuaciones que no produce una distribuci´n o o´ptima debido a que existe un solapamiento de las comunicaciones (la zona sombreada de color amarillo).oEste solapamiento no es posible puesto que el canal de comunicaci´n disponible es un canal exclusivo. oEn esta estrategia se est´ suponiendo que el primer procesador finalizar´ su c´mputo despu´s de que a a o e pel ultimo esclavo haya comenzado a trabajar ( i=2 Ri ≥ C1 ) y no se comprueba que esta suposici´n ´ osea correcta. Cuando se observa el diagrama real de los tiempos de ejecuci´n para esta distribuci´n, sin o osolapamiento en las comunicaciones, se producen huecos en los que los procesadores se encuentran ociososdurante la ejecuci´n. Esto incrementa el tiempo necesario para resolver el problema (figura 2.7-b). o
  • 32. 28 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVO a) b) c) d)Figura 2.7: Comparaci´n de los diagramas de tiempo correspondientes a diferentes distribuciones de tareas para oresolver un problema de tama˜o m = 38 con 5 procesadores. a) Diagrama de tiempo err´neo, la distribuci´n n o oest´ equilibrada en carga, pero en la zona sombreada Si se solapa con Ri ; esto no es posible puesto que el canal ade comunicaci´n es exclusivo. b) Diagrama de tiempo correcto para la distribuci´n obtenida como soluci´n del o o osistema de ecuaciones, donde los huecos aumentan el tiempo de resoluci´n del problema c) Una distribuci´n que o ono es soluci´n del sistema de ecuaciones reduce el tiempo de ejecuci´n con 5 procesadores. d) La distribuci´n o o ooptima para este problema se consigue utilizando unicamente 4 procesadores.´ ´ El tiempo total de ejecuci´n del problema se puede reducir utilizando los 5 procesadores pero con ouna distribuci´n de tareas diferente, que no es soluci´n del sistema de ecuaciones anterior (figura 2.7-c). o oEsto significa que para un n´mero de procesadores fijo, la mejor distribuci´n de trabajos no se obtiene u outilizando esta estrategia. Adem´s, la distribuci´n ´ptima para este problema se consigue cuando se a o oreduce el n´mero de procesadores y se emplean unicamente 4 de los 5 procesadores disponibles (figura u ´2.7-d). Como se puede observar en la figura 2.7 el mejor tiempo obtenido con cinco procesadores es peorque el tiempo obtenido con la distribuci´n ´ptima con cuatro de ellos. o o En este cap´ ıtulo mostramos que para obtener la distribuci´n ´ptima de trabajos para o oun problema maestro-esclavo no s´lo debemos tener en cuenta el tama˜ o del problema a o nresolver, sino que el n´ mero de procesadores empleados para su resoluci´n es tambi´n un u o epar´metro importante en la minimizaci´n del tiempo total de ejecuci´n. a o o El modelo anal´ıtico que presentamos puede ser considerado como una instanciaci´n particular del omodelo estructural descrito en [160]. De acuerdo con nuestro modelo, el tiempo total de ejecuci´n del oproblema es obtenido como Tpar = Tp ; es decir, el tiempo necesario para que finalice la ejecuci´n del oultimo procesador.´ Si consideramos que existe un unico esclavo el tiempo total de ejecuci´n es T par = T1 = R1 + C1 + S1 . ´ o Cuando disponemos de dos esclavos para resolver un problema maestro-esclavo heterog´neo en- econtramos dos posibles situaciones que determinan el tiempo de ejecuci´n (figura 2.8). Si el esclavo op2 no ha terminado su c´mputo cuando el procesador p1 finaliza el env´ del resultado al maestro, o ıola resoluci´n del problema se retrasa porque el maestro debe esperar a que el segundo esclavo ter- omine su c´mputo y devuelva el resultado (figura 2.8-Izquierda); en este caso se cumple la expresi´n o o
  • 33. ´ ´2.5. ESTRATEGIA FIFO DE RESOLUCION EN SISTEMAS HETEROGENEOS 29d2 = g2 = (R2 + C2 ) − (C1 + S1 ) > 0. Por el contrario, si el procesador p2 finaliza el c´mputo cuando p1 oa´n no ha terminado el env´ del resultado (figura 2.8-Derecha), p2 tiene que permanecer ocioso hasta que u ıoel canal de comunicaci´n se libere; en este segundo caso se cumple que d 2 = g2 = (R2 +C2 )−(C1 +S1 ) < 0. oEl tiempo total de ejecuci´n que obtenemos es: T2 = T1 + S2 + max(0, g2 ). De esta forma, en el primer ocaso (figura 2.8-Izquierda) el tiempo total es Tpar = T2 = T1 + S2 + g2 , mientras que en el segundo caso(figura 2.8-Derecha) el tiempo necesario para la ejecuci´n es Tpar = T2 = T1 + S2 . oFigura 2.8: Diagramas de tiempo para el problema del maestro-esclavo heterog´neo con 2 esclavos. Izquierda: eg2 = (R2 + C2 ) − (C1 + S1 ) > 0, entre la recepci´n de los resultado de los esclavos p1 y p2 el maestro se encuentra oocioso. Derecha: g2 = (R2 + C2 ) − (C1 + S1 ) < 0, una vez que el procesador p2 termina de computar la tarea,debe esperar a que p1 termine de enviar su resultado al maestro para poder realizar su propio env´ ıo. Denotamos por gi = (Ri + Ci ) − (Ci−1 + Si−1 ) al hueco (gap) de tiempo que se produce entre elprocesador pi−1 y el procesador pi . Si es positivo, el tiempo de recepci´n del esclavo pi m´s su tiempo o ade c´mputo es superior a la suma de los tiempos de c´mputo y env´ del resultado del procesador p i−1 , o o ıolo que significa que el procesador pi se encuentra todav´ computando su tarea cuando el procesador ıaanterior ya ha finalizado su env´ En caso contrario el valor de gi es menor que 0. ıo. Denominamos di al retraso (delay) acumulado hasta el procesador pi , donde gi si di−1 ≥ 0 di = gi − | di−1 | en otro caso Un retraso negativo para el procesador pi (di < 0) indica que el c´mputo del esclavo pi se solapa ocon el env´ del resultado del procesador anterior, de forma que solamente debemos considerar el tiempo ıoque tarda el esclavo en enviar el resultado al maestro. Un retardo positivo d i para el procesador pisignifica que el c´mputo del procesador pi a´n contin´a cuando el procesador anterior ha terminado o u uel env´ de su resultado. Como no es posible aplicar esta f´rmula al primer esclavo asignamos d 1 = 0 ıo oy, debido a esta asignaci´n inicial, se cumple siempre que para el segundo procesador d 2 = g2 . Por olo tanto, el tiempo total de ejecuci´n necesario para resolver este problema se puede formular como: oTpar = T2 = T1 + S2 + max(0, d2 ). Si incrementamos el n´mero de procesadores observamos que aumentan las situaciones que nos pode- umos encontrar en la ejecuci´n de un problema maestro-esclavo. La figura 2.9 muestra los diagramas de otiempo de dos de las posibles situaciones en la ejecuci´n de un problema cuando utilizamos 3 esclavos. oEn la figura, g2 denota el hueco que se produce entre los esclavos p1 y p2 , y g3 denota el hueco que seproduce entre p2 y p3 . La figura 2.9-Izquierda considera la situaci´n en la que p2 es el procesador m´s o ar´pido y p3 es el procesador m´s lento. Se produce un hueco entre los dos primeros esclavos (d 2 < 0) a aporque p2 necesita un tiempo de R2 + C2 para recibir y computar su tarea, y este tiempo es menor que eltiempo empleado por p1 en computar su tarea y enviar el resultado (C1 + S1 ), por lo que p2 debe esperara que p1 termine para enviar su propio resultado. Sin embargo, cuando p2 finaliza, p3 a´n est´ trabajando u a
  • 34. 30 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVO(g3 > 0). El retraso acumulado para el procesador p3 es positivo y tiene un valor de d3 = g3 − |d2 |. Elmaestro va a pasar un per´ ıodo de tiempo ocioso esperando por el resultado del ultimo esclavo. ´ En la figura 2.9-Derecha se muestra otro posible caso, en el que p3 es el procesador m´s r´pido y a ael esclavo colocado en la posici´n intermedia (p2 ) es el m´s lento. En esta figura se observa que g2 > 0 o ay g3 < 0. El retraso acumulado aqu´ resulta ser negativo (d3 < 0), por lo que p3 no puede enviar su ıresultado hasta que p2 haya finalizado.Figura 2.9: Diagramas de tiempo para el problema maestro-esclavo heterog´neo con 3 esclavos. Izquierda: d 3 > 0, eel maestro se mantiene ocioso entre el env´ del resultado de p2 y el de p3 . Derecha: d3 < 0, el procesador p3 tiene ıoque esperar para poder comunicarse con el maestro. De acuerdo con este modelo, el tiempo total de ejecuci´n para el programa paralelo empleando p oesclavos lo podemos establecer utilizando la siguiente ecuaci´n de recurrencia: o Tpar = Tp = Tp−1 + Sp + m´x(0, dp ) = Tp−2 + Sp−1 + Sp + m´x(0, dp−1 ) + m´x(0, dp ) a a a p p p p = T1 + Si + m´x(0, di ) = R1 + C1 + a Si + m´x(0, di ) a i=2 i=2 i=1 i=1donde d1 = 0 y para i > 1, gi si di−1 ≥ 0 di = con gi − | di−1 | en otro caso gi = (Ri + Ci ) − (Ci−1 + Si−1 ) y p Ri ≤ C 1 i=2 Esta ultima restricci´n del modelo nos permite asegurar que en ning´n caso se producir´ una colisi´n ´ o u a ode las comunicaciones, puesto que la suma de los tiempos de trasmisi´n de las tareas para los esclavos op2 , . . . , pp no puede superar el tiempo de c´mputo del primer esclavo. o2.6. Estrategia LIFO de resoluci´n del problema o La estrategia LIFO para resolver un problema maestro-esclavo se ilustra en la figura 2.2-b. En ellase observa que los esclavos devuelven los resultados en el orden inverso al que reciben sus tareas. Paraevitar que se produzcan huecos y se incremente el tiempo total de resoluci´n del problema, el tiempo que oun procesador tarda en computar su trabajo debe ser igual al tiempo que tarda el siguiente procesador
  • 35. 2.7. VALIDACION DE LOS MODELOS ANAL´ ´ ITICOS 31en recibir su trabajo, realizar su c´mputo y devolver su resultado al maestro. Observando la figura se ocomprueba que en este caso el tiempo total de ejecuci´n viene determinado por el tiempo de ejecuci´n o odel primer esclavo (Tpar = T1 ). Para simplificar las f´rmulas del modelo introducimos una nueva notaci´n: Denotamos por φ i al tiempo o oempleado por el procesador pi hasta la finalizaci´n de su ejecuci´n. Este tiempo incluye el tiempo que o otranscurre desde el instante en que el procesador pi recibe los datos hasta que devuelve su resultado almaestro, y excluye el tiempo inicial de espera para recibir su trabajo. El procesador pp , al ser el ultimo de los esclavos, no tiene que esperar a que finalice el resto de los ´procesadores, sino que es el primero en enviar el resultado al maestro. Esto significa que puede realizar elenv´ en el momento en que termine su c´mputo. El tiempo total que tarda este procesador en finalizar ıo osu ejecuci´n viene dado por la suma del tiempo que permanece esperando a que le lleguen los datos de oentrada, m´s el tiempo necesario para recibir esos datos, procesarlos y devolver el resultado al maestro. aEste tiempo podemos modelizarlo mediante la siguiente ecuaci´n: o p−1 Tp = Ri + φ p , con φ p = Rp + Cp + Sp i=1 El resto de los procesadores, desde p1 hasta pp−1 , tiene que esperar a que el procesador siguiente finaliceel env´ de su resultado al maestro, por lo que el tiempo de ejecuci´n para los restantes procesadores lo ıo opodemos modelar utilizando la ecuaci´n: o i−1 Ti = Rk + φ i , con φi = Ri + m´x(Ci , φi+1 ) + Si a k=1 Como el tiempo total de resoluci´n del problema es el tiempo que tarda el primer esclavo, p 1 , en ofinalizar la ejecuci´n, la f´rmula que determina el tiempo paralelo es: o o Tpar = T1 = φ1 , con φ1 = R1 + m´x(C1 , φ2 ) + S1 a2.7. Validaci´n de los modelos anal´ o ıticos Una vez presentados los modelos anal´ıticos, que predicen el tiempo de ejecuci´n paralelo de los algo- oritmos maestro-esclavo (secciones 2.4, 2.5 y 2.6), el primer paso consiste en validar estos modelos paracomprobar que sus predicciones son correctas. Para realizar esta prueba hemos seleccionado un problemamuy conocido: el problema del producto de matrices [37, 191, 192]. Consideramos dos matrices cuadradas A y B de tama˜o m × m y resolvemos el problema mediante nla siguiente ecuaci´n: o m−1 C[i][j] = A[i][k] ∗ B[k][j] k=02.7.1. Algoritmo Secuencial La funci´n ProductoMatrices (figura 2.10) es la que calcula la matriz resultado del producto. Se pasan ocomo par´metros las dos matrices iniciales, A y B, y la matriz donde se va a almacenar el producto de aambas, C. Todas estas matrices son de tama˜o m × m, por lo que el valor de m tambi´n se le pasa como n epar´metro a la funci´n. a o
  • 36. 32 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVO En las l´ ıneas 4 a 6 del c´digo se realizan los tres bucles que permiten recorrer todos los elementos ode las matrices para realizar el producto. Con el primero se recorren las filas de A y con el segundo lascolumnas de B. Estos dos bucles determinan el elemento a calcular en la matriz producto. El tercer bucle(l´ ınea 6 del c´digo) permite realizar el sumatorio de la f´rmula que resuelve el problema. o o 1 void ProductoMatrices(int **A, int **B, int **C, int m) { 2 int i, j, k; // Variables ´ndices para los bucles ı 3 4 for (i = 0; i < m; i++) // fila matriz producto 5 for (j = 0; j < m; j++) // columna matriz producto 6 for (k = 0; k < m; k++) // sumatorio 7 C[i][j] += A[i][k]*B[k][j]; 8 } Figura 2.10: Funci´n que resuelve el problema del producto de matrices de forma secuencial. o Hemos ejecutado este programa secuencial en las diferentes m´quinas disponibles en el cluster (secci´n a o1.5.1). Realizamos diferentes pruebas variando el tama˜o de la matriz cuadrada entre 700 y 2000, los nresultados obtenidos en estas ejecuciones se muestran en la tabla 2.1. La columna Tama˜o especifica el ntama˜o de la matriz cuadrada (n´mero de filas y de columnas de la matriz); las restantes tres columnas n urepresentan el tiempo de resoluci´n del problema (expresados en segundos) para las m´quinas r´pidas o a a(R), intermedias (I) y lentas (L) respectivamente.Tabla 2.1: Tiempos de ejecuci´n del algoritmo secuencial del producto de matrices en los tres tipos de m´quinas o aque componen el cluster. M´quinas r´pidas (R) M´quinas Intermedias (I) M´quinas Lentas (L) a a a a Tama˜o n Tiempo (seg.) Tiempo (seg.) Tiempo (seg.) 700 20.13 32.84 98.49 1000 59.37 99.15 298.56 1500 205.77 615.89 998.93 2000 593.70 2198.24 2337.662.7.2. Algoritmo Paralelo El algoritmo secuencial visto en la secci´n 2.7.1 puede ser f´cilmente paralelizado: la matriz B es o aenviada previamente a todos los esclavos y, posteriormente, cada esclavo recibe m i filas de la matriz A, pdonde i=1 mi = m. Hemos implementado el algoritmo paralelo seg´n las dos versiones vistas en las secciones 2.5 y 2.6. La ufigura 2.11 muestra el c´digo que resuelve este problema de forma paralela mediante la estrategia FIFO. o La funci´n ProductoMatrices recibe como par´metros las dos matrices originales (A y B) y la matriz o adonde se almacena el resultado (C); el n´mero de filas y columnas de las matrices (m); el identificador udel procesador (id), que toma el valor 0 cuando el procesador es el maestro y un valor entre 1 y p paralos esclavos y un vector con la cantidad de trabajo que le corresponde a cada esclavo (trabajo). Previamente a la llamada a esta funci´n, en el programa principal, el procesador maestro ha enviado ola matriz B completa a todos los esclavos mediante una operaci´n de broadcast. Entre las l´ o ıneas 7 y 14del c´digo el maestro env´ a cada esclavo el trabajo (n´mero de filas de la matriz A) que le corresponde o ıa useg´n el valor del vector trabajo. En las l´ u ıneas 15 a 18 los esclavos reciben el trabajo a realizar: primero
  • 37. 2.7. VALIDACION DE LOS MODELOS ANAL´ ´ ITICOS 33un mensaje con el n´mero de filas de la matriz A que tienen que computar y despu´s otro mensaje con u elas filas correspondientes de la matriz. En el siguiente bloque de c´digo (l´ o ıneas 20 a 25), los esclavos calculan su parte de la matriz resultado.Hay que tener en cuenta que el primer bucle (que recorre las filas de la matriz A y de la matriz resultado)s´lo var´ entre 0 y el n´mero de filas que le asign´ el maestro, mientras que los otros dos bucles var´ o ıa u o ıanentre 0 y el tama˜o total de la matriz. De esta forma, cada esclavo calcula, solamente, la parte de la nmatriz resultado correspondiente a las filas de la matriz A asignadas. En la ultima secci´n del c´digo los esclavos devuelven su parte de la matriz resultado al maestro. Entre ´ o olas l´ ıneas 27 y 29 los esclavos env´ su resultado, mientras que en las l´ ıan ıneas 30 a 36 el maestro recibelos datos de los esclavos en el mismo orden en que realiz´ los env´ combinando todos los resultados o ıos,parciales para obtener la matriz producto completa. 1 void ProductoMatrices(int **A, int **B, int**C, int m, int id, int *trabajo) { 2 int i, j, k; // Variables ´ndices para los bucles ı 3 int n; // Trabajo que le corresponde a un esclavo 4 5 // El maestro ha enviado la matriz B completa a todos los procesadores previamente 6 7 if (id == 0) { // MAESTRO 8 j = 0; // Env´a a los esclavos las filas correspondientes de la matriz A ı 9 for (i = 1; i < numprocs; i++) {10 MPI Send(&trabajo[i], 1, MPI INT, i, 0, MPI COMM WORLD);11 MPI Send(&A[j][0], (m * trabajo[i]), MPI INT, i, 0, MPI COMM WORLD);12 j += trabajo[i];13 }14 }15 else { // ESCLAVOS16 MPI Recv(&nf, 1, MPI INT, 0, 0, MPI COMM WORLD, &status);17 MPI Recv(&A[0][0],(m * nf),MPI INT, 0, 0, MPI COMM WORLD, &status);18 }1920 if (id != 0) { // ESCLAVOS21 for (i = 0; i < nf; i++)22 for (j = 0; j < m; j++)23 for (k = 0; k < m; k++)24 C[i][j] += A[i][k] * B[k][j];25 }2627 if (id != 0) { // ESCLAVOS28 MPI Send(&C[0][0], m * nf, MPI INT, 0, 0, MPI COMM WORLD);29 }30 else { // MAESTRO31 j = 0; // Recibe los resultados: las filas de la matriz producto32 for (i = 1; i < numprocs; i++) {33 MPI Recv(&C[j][0], m * trabajo[i], MPI INT, i, 0, MPI COMM WORLD, &status);34 j += trabajo[i];35 }36 }37 }Figura 2.11: Funci´n que resuelve el problema del producto de matrices de forma paralela mediante la estrategia oFIFO.
  • 38. 34 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVO Para resolver el problema mediante el esquema LIFO s´lo es necesario modificar las l´ o ıneas 31 a 34para invertir el orden de recepci´n de los resultados, empezando por el ultimo esclavo. La figura 2.12 o ´muestra unicamente esta parte del c´digo, puesto que el resto de la funci´n es id´ntica a la del esquema ´ o o eFIFO presentado en la figura 2.11.30 else { // MAESTRO31 j = m - trabajo[numprocs - 1]; // Recibe los resultados:32 for (i = numprocs - 1; i >= 1; i--) { // las filas de la matriz producto33 MPI Recv(&C[j][0], m * trabajo[i], MPI INT, i, 0, MPI COMM WORLD, &status);34 j -= trabajo[i - 1];35 }36 } Figura 2.12: C´digo paralelo que resuelve el problema del producto de matrices mediante la estrategia LIFO. o Hemos modelizado este algoritmo seg´n los dos esquemas presentados (secciones 2.5 y 2.6), por lo que ues posible predecir el tiempo que va a tardar el programa en resolver el problema. En las subseccionessiguientes, comparamos los resultados de los dos modelos con los tiempos reales de ejecuci´n que hemos oobtenido en nuestro cluster (secci´n 1.5.1). o2.7.3. Distribuci´n optima de trabajos en los sistemas homog´neos o ´ e Las primeras ejecuciones paralelas realizadas las hemos llevado a cabo sobre los subsistemas ho-mog´neos existentes en el cluster (secci´n 1.5.1): ejecutamos los problemas en el subsistema formado e ounicamente por los 4 procesadores r´pidos del cluster ; en el subsistema de los 4 procesadores interme-´ adios; y tambi´n en el subsistema de los 6 procesadores lentos. Los problemas utilizados son los mismos eque han sido resueltos con el algoritmo secuencial (secci´n 2.7.1): multiplicar dos matrices cuadradas de otama˜os que var´ entre 700 y 2000. En el caso paralelo hemos realizado las pruebas utilizando los dos n ıanesquemas de resoluci´n (FIFO y LIFO). o Teniendo en cuenta los modelos presentados en las secciones 2.4, 2.5 y 2.6 es necesario conocer inicial-mente las funciones de c´mputo (Ci (m)) para este problema espec´ o ıfico, antes de poder predecir cu´les ason las distribuciones ´ptimas para cada modelo y el tiempo que se tarda en resolverlo. En la figura o2.13 se pueden ver, de forma gr´fica, estas funciones para los 4 problemas resueltos con los tres tipos de aprocesadores disponibles. Se observa en la figura 2.13 el cambio que se produce en la capacidad de las m´quinas intermedias adel cluster : en los problemas peque˜os la velocidad de los procesadores intermedios est´ pr´xima a la n a ovelocidad de los procesadores r´pidos, pero su capacidad se va reduciendo, al incrementar el tama˜o del a nproblema, hasta que para el problema de tama˜o 2000 su velocidad es pr´cticamente id´ntica a la de los n a eprocesadores lentos. El tama˜o de los subsistemas homog´neos para cada tipo de m´quina var´ entre un sistema donde s´lo n e a ıa oexistan el procesador maestro con dos esclavos y el mayor sistema homog´neo disponible, donde trabajen eel mayor n´mero posible de m´quinas del mismo tipo. La tabla 2.2 muestra el resultado obtenido al u aejecutar cada uno de los problemas en los correspondientes subsistemas homog´neos del cluster para los eprocesadores r´pidos (R), intermedios (I) y lentos (L) respectivamente. La columna Tama˜o de estas a ntablas especifica el n´mero de filas y columnas de las matrices cuadradas; la columna N´mero de esclavos u ues el tama˜o del subsistema homog´neo; y por ultimo, existen dos macrocolumnas con los resultados n e ´obtenidos para los dos esquemas de resoluci´n (FIFO y LIFO). Para cada macrocolumna se especifica el otiempo real en segundos que se tarda en resolver el problema (columna Tiempo), el tiempo estimado porel modelo para la ejecuci´n del programa (columna Modelo), el error relativo entre estas dos cantidades o
  • 39. 2.7. VALIDACION DE LOS MODELOS ANAL´ ´ ITICOS 35Figura 2.13: Funciones para el c´lculo de las funciones Ci (m) del tiempo de c´mputo para los 4 tama˜os de a o nproblemas considerados en las pruebas y para los tres tipos de m´quinas existentes en el cluster. aobtenido mediante la f´rmula T iempo−M odelo (columna Error )y, en la ultima columna, la aceleraci´n o T iempo ´ o(columna Acelerac.) correspondiente al tiempo real de ejecuci´n sobre el tiempo secuencial obtenido al oresolver el problema en una de las m´quinas del subsistema (tabla 2.1). a Como se observa en la tabla 2.2 la aceleraci´n conseguida en todos los casos es aceptable, aunque odisminuye al incrementarse el tama˜o de los problemas. Se comprueba la precisi´n del modelo anal´ n o ıtico,que presenta un error de predicci´n bastante bajo en todas las pruebas: unicamente en 7 de las 64 o ´ejecuciones el error supera el 6 %; de las cuales, s´lo en un caso llega a alcanzar un valor del 10 % y en om´s de la mitad de las ejecuciones realizadas el error es menor al 2 %. a En la tabla 2.3 puede consultarse las distribuciones de trabajo realizadas para cada tama˜o de pro- nblema y cada subsistema homog´neo. Las columnas Tama˜o y N´m. esclavos tienen el mismo significado e n uque en la tabla 2.2: el n´mero de filas y columnas de la matriz y el tama˜o del sistema homog´neo respec- u n etivamente. Las dos ultimas columnas muestran la distribuci´n entre los esclavos para los dos esquemas ´ oejecutados. Para el esquema FIFO se ha asignado a todos los procesadores la misma cantidad de trabajo(el mismo n´mero de filas) o el n´mero m´s pr´ximo posible. Hemos establecido esta asignaci´n debido a u u a o oque, en un sistema homog´neo con este esquema de resoluci´n, la mejor distribuci´n posible es repartir el e o otrabajo de forma uniforme entre todos los procesadores (secci´n 2.5). En el esquema LIFO, por la forma oen la que se resuelve el problema, se le asignan cantidades distintas a cada m´quina: un procesador recibe amenos trabajo que el procesador anterior. Las cantidades correspondientes a cada procesador se obtienenal aplicar el m´todo exacto que se ver´ en la secci´n 2.8. Se utiliza la nomenclatura m R , mI y mL para e a oespecificar el n´mero de filas asignado a los procesadores r´pidos, intermedios y lentos respectivamente. u a En la tabla 2.3, para simplificar los datos, se muestra solamente un valor cuando la cantidad detrabajo asignada es la misma para todos los esclavos y, en caso contrario, se anotan todos los valores enorden ascendente de procesadores, comenzando en la cantidad de trabajo asignada a p 1 y finalizando enla asignada a pp .
  • 40. 36 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOTabla 2.2: Tiempos de ejecuci´n del algoritmo paralelo del producto de matrices al ejecutar sobre los distintos osubsistemas homog´neos del cluster con diferentes tama˜os de problemas utilizando los dos esquemas de resoluci´n e n o(FIFO y LIFO). M´quinas r´pidas del cluster (R) a a N´mero de u Esquema FIFO Esquema LIFO Tama˜on esclavos Tiempo Modelo Error Acelerac. Tiempo Modelo Error Acelerac. 700 2 9.64 9.65 0.19 % 2.09 9.64 9.66 0.28 % 2.09 700 3 6.47 6.46 0.23 % 3.11 6.47 6.45 0.28 % 3.11 1000 2 29.52 29.93 1.39 % 2.01 30.15 29.95 0.67 % 1.97 1000 3 19.98 20.01 0.16 % 2.97 19.92 19.98 0.30 % 2.98 1500 2 107.02 113.35 5.91 % 1.92 118.25 113.39 4.11 % 1.74 1500 3 78.43 75.58 3.63 % 2.62 81.68 75.63 7.40 % 2.52 2000 2 318.85 335.06 5.08 % 1.86 345.87 335.13 3.11 % 1.72 2000 3 236.09 221.85 6.03 % 2.51 246.55 221.85 10.02 % 2.41 M´quinas intermedias del cluster (I) a N´mero de u Esquema FIFO Esquema LIFO Tama˜on esclavos Tiempo Modelo Error Acelerac. Tiempo Modelo Error Acelerac. 700 2 15.01 15.05 0.30 % 2.19 15.01 15.07 0.39 % 2.19 700 3 10.11 10.13 0.19 % 3.25 10.11 10.13 0.20 % 3.25 1000 2 49.40 49.68 0.57 % 2.01 49.42 49.68 0.53 % 2.01 1000 3 33.13 33.32 0.57 % 2.99 33.06 33.29 0.70 % 3.00 1500 2 281.31 284.65 1.19 % 2.19 281.25 284.72 1.23 % 2.19 1500 3 188.09 189.73 0.87 % 3.27 188.09 189.89 0.96 % 3.27 2000 2 1503.85 1509.09 0.35 % 1.46 1503.46 1509.81 0.42 % 1.46 2000 3 1004.42 1006.33 0.19 % 2.19 1004.96 1006.33 0.14 % 2.19 M´quinas lentas del cluster (L) a N´mero de u Esquema FIFO Esquema LIFO Tama˜on esclavos Tiempo Modelo Error Acelerac. Tiempo Modelo Error Acelerac. 700 2 49.57 51.76 4.41 % 1.99 49.74 51.80 4.14 % 1.98 700 3 32.99 34.59 4.86 % 2.98 32.92 34.59 5.06 % 2.99 700 4 25.10 25.86 3.04 % 3.92 25.16 25.92 3.02 % 3.92 700 5 20.82 20.68 0.69 % 4.72 20.93 30.74 0.91 % 4.71 1000 2 165.84 180.21 8.66 % 1.80 175.44 180.33 2.79 % 1.70 1000 3 119.14 120.63 1.26 % 2.51 116.43 120.58 3.57 % 2.56 1000 4 92.54 90.49 2.21 % 3.23 92.23 90.61 1.76 % 3.24 1000 5 75.22 72.55 3.55 % 3.97 75.24 72.72 3.34 % 3.97 1500 2 560.59 572.72 2.16 % 1.78 552.44 572.96 3.71 % 1.81 1500 3 388.75 384.35 1.13 % 2.57 392.22 384.41 1.99 % 2.55 1500 4 305.42 290.17 5.00 % 3.27 300.01 290.43 3.19 % 3.33 1500 5 249.74 233.65 6.44 % 4.00 239.76 233.99 2.40 % 4.17 2000 2 1464.71 1573.16 7.40 % 1.60 1530.43 1573.83 2.84 % 1.53 2000 3 1035.86 1042.39 0.63 % 2.26 971.95 1042.39 7.25 % 2.41 2000 4 780.13 776.20 0.50 % 3.00 734.71 776.67 5.71 % 3.18 2000 5 627.95 616.81 1.77 % 3.72 651.33 617.55 5.19 % 3.59
  • 41. 2.7. VALIDACION DE LOS MODELOS ANAL´ ´ ITICOS 37Tabla 2.3: Distribuciones optimas de trabajo para los distintos subsistemas homog´neos del cluster con los dos ´ eesquemas de resoluci´n de los algoritmos maestro-esclavo para el problema del producto de matrices. o M´quinas r´pidas del cluster (R) a a Tama˜o N´m. esclavos n u Esquema FIFO Esquema LIFO 700 2 mR = 350 mR = 350 700 3 mR = 234 233 233 mR = 243 233 233 1000 2 mR = 500 mR = 500 1000 3 mR = 334 333 333 mR = 334 333 333 1500 2 mR = 750 mR = 750 1500 3 mR = 500 mR = 500 2000 2 mR = 1000 mR = 1000 2000 3 mR = 667 667 666 mR = 667 667 666 M´quinas intermedias del cluster (I) a Tama˜o N´m. esclavos n u Esquema FIFO Esquema LIFO 700 2 mI = 350 mI = 352 348 700 3 mI = 234 233 233 mI = 237 233 230 1000 2 mI = 500 mI = 502 498 1000 3 mI = 334 333 333 mI = 336 333 331 1500 2 mI = 750 mI = 751 749 1500 3 mI = 500 mI = 502 500 498 2000 2 mI = 1000 mI = 1001 999 2000 3 mI = 667 667 666 mI = 667 667 666 M´quinas lentas del cluster (L) a Tama˜o N´m. esclavos n u Esquema FIFO Esquema LIFO 700 2 mL = 350 mL = 351 349 700 3 mL = 234 233 233 mL = 235 233 232 700 4 mL = 175 mL = 176 175 175 174 700 5 mL = 140 mL = 141 141 140 139 139 1000 2 mL = 500 mL = 501 499 1000 3 mL = 334 333 333 mL = 334 333 333 1000 4 mL = 250 mL = 251 250 250 249 1000 5 mL = 200 mL = 201 201 200 199 199 1500 2 mL = 750 mL = 751 749 1500 3 mL = 500 mL = 501 500 499 1500 4 mL = 375 mL = 376 375 375 374 1500 5 mL = 300 mL = 301 301 300 299 299 2000 2 mL = 1000 mL = 1001 999 2000 3 mL = 667 667 666 mL = 667 667 666 2000 4 mL = 500 mL = 501 500 500 499 2000 5 mL = 400 mL = 401 400 400 400 399
  • 42. 38 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVO En el bloque correspondiente a las m´quinas r´pidas de la tabla 2.3, se comprueba que las cantidades a aasignadas a los procesadores coinciden en los dos esquemas de resoluci´n. Esta situaci´n se debe a la o ovelocidad en las comunicaciones internas entre los procesadores de la m´quina de memoria compartida a(secci´n 1.5.1), que convierte los valores de las funciones Ri y Si en cantidades despreciables frente a olos tiempos de c´mputo del problema. En los subsistemas de los procesadores intermedios y lentos no osucede lo mismo, las distribuciones para los dos esquemas no son exactamente iguales, aunque, en lamayor´ de los casos, la diferencia es reducida. Esto es debido a que, para este problema, la influencia del ıatiempo de c´mputo en el tiempo total de ejecuci´n es superior a la influencia del tiempo empleado en las o ocomunicaciones entre las m´quinas. a2.7.4. Validaci´n del modelo anal´ o ıtico FIFO en un sistema heterog´neo con e dos tipos de procesadores Una vez comprobado que los modelos presentados han sido validados y que sus predicciones son acep-tables para los sistemas homog´neos, hemos realizado las mismas pruebas para los sistemas heterog´neos. e eInicialmente validamos los modelos en un subconjunto del cluster completo, utilizando unicamente las ´m´quinas intermedias y lentas del cluster, reservando los procesadores r´pidos para pruebas posteriores. a aEsta decisici´n est´ motivada por el hecho de que procesadores r´pidos forman parte de una m´quina de o a a amemoria compartida, mientras que los procesadores intermedios y lentos constituyen un cluster de PCsindependientes. En la secci´n 2.7.3 se consideraba que todas las m´quinas de los subsistemas homog´neos tardaban o a eel mismo tiempo en realizar el trabajo asignado, esa condici´n ha cambiado al considerar un sistema oheterog´neo. En esta secci´n validamos el modelo desarrollando dos series de experimentos. En la primera e oasignamos la misma cantidad de trabajo a todos los procesadores (mI = mL ) sin tener en cuenta lasdiferencias entre los tipos de m´quinas (distribuci´n uniforme). La segunda asume que la cantidad de a otrabajo asignada (mi ) debe ser proporcional a la velocidad de procesamiento de la m´quina (distribuci´n a oproporcional); para esta ultima distribuci´n hemos elegido una proporci´n fija de m I = 3 ∗ mL aunque, ´ o ocomo se puede observar en la tabla 1.1, esta diferencia disminuye al aumentar el tama˜o del problema. n Para el esquema LIFO en el caso homog´neo ya se asigna a cada procesador una cantidad distinta de etrabajo; se est´ considerando que el tiempo total empleado por cada procesador en finalizar su ejecuci´n a oes diferente. El estudio en el caso homog´neo, para esta estrategia, es directamente aplicable a los sistemas eheterog´neos. Por otra parte, debido a que los tiempos totales de ejecuci´n para los procesadores deben e oser distintos, no tiene sentido aplicar una distribuci´n uniforme o proporcional a esta estrategia. Por oestos motivos, en esta secci´n, vamos a concentrarnos en comprobar la validez del modelo FIFO y en las osubsecciones 2.10 y 2.11, al presentar los resultados de las predicciones del tiempo de ejecuci´n m´ o ınimo,tambi´n realizaremos una validaci´n al comparar el tiempo estimado por el modelo, frente al tiempo real e ode ejecuci´n. o Para comprobar la precisi´n del modelo hemos elegido distintos subsistemas heterog´neos con 2, 4, 7 y o e9 esclavos. En primer lugar calculamos la relaci´n entre las velocidades de las m´quinas. Estos valores los o acalculamos a partir de los tiempos secuenciales obtenidos para cada procesador (tabla 2.1) y obtenemosla tabla que hemos presentado como ejemplo en la secci´n 1.5.1 (tabla 1.1). o En la tabla 2.4 presentamos las configuraciones de procesadores utilizadas para realizar las pruebasy les asignamos un nombre que vamos a utilizar posteriormente en el resto de las tablas de este cap´ ıtulo(columna Nombre Configuraci´n). Se muestran en dos columnas diferentes el tipo de procesador que act´a o ucomo maestro y los tipos de los procesadores que act´an como esclavos, donde I representa un procesador uintermedio y L un procesador lento. En esta tabla, tambi´n mostramos la aceleraci´n m´xima posible que e o apodremos obtener para este problema, con las distintas configuraciones de procesadores. Estos valoreslos hemos calculado aplicando la f´rmula vista en las secciones 1.4 y 1.5.1, tomando como referencia el otiempo secuencial del procesador que act´a como maestro. u
  • 43. 2.7. VALIDACION DE LOS MODELOS ANAL´ ´ ITICOS 39Tabla 2.4: Configuraciones de los sistemas heterog´neos utilizados en las pruebas computacionales de este pro- eblema. En todas estas configuraciones se emplean unicamente dos tipos de m´quinas del cluster : intermedias (I) ´ ay lentas (L). Nombre Aceleraciones M´ximas a Configuraci´n Maestro Esclavos o m = 700 m = 1000 m = 1500 m = 2000 c1-2t-3p I IL 1.33 1.33 1.62 1.94 c2-2t-5p I IILL 2.66 2.66 3.23 3.88 c3-2t-5p I IIIL 3.33 3.33 3.61 3.94 c4-2t-8p I IIILLLL 4.33 4.33 5.47 6.76 c5-2t-10p I IIILLLLLL 5.00 5.00 6.70 8.64 En la tabla 2.4 se observa, tambi´n, que la aceleraci´n m´xima que se puede alcanzar est´ por debajo e o a ade lo que ser´ la aceleraci´n m´xima, en un sistema homog´neo con el mismo n´mero de procesadores; ıa o a e upor ejemplo, para la configuraci´n c5-2t-10p, la aceleraci´n m´xima para el problema m´s peque˜o es casi o o a a nla mitad de la aceleraci´n m´xima si el sistema fuese homog´neo (Sp = 9). Sin embargo, en los tama˜os o a e nde problemas grandes la aceleraci´n m´xima aumenta debido al peor comportamiento de las m´quinas o a aintermedias, lo que reduce la diferencia entre los dos tipos de m´quinas con las que estamos ejecutando. aEsto conlleva a que la heterogeneidad del sistema se reduce y se convierte en un entorno pr´cticamente ahomog´neo. e En la tabla 2.5 presentamos los resultados obtenidos al ejecutar los problemas con las dos distribucionesutilizadas (uniforme y proporcional). El formato de esta tabla es muy similar al de la tabla 2.2 dondepresent´bamos los resultados de los subsistemas homog´neos. En este caso, la primera columna indica a eel nombre de la configuraci´n de procesadores utilizada (tabla 2.4). Las dos macrocolumnas muestran olos resultados obtenidos con la distribuci´n uniforme y proporcional respectivamente: tiempo real de oejecuci´n en segundos, tiempo estimado por el modelo anal´ o ıtico, el error cometido por el modelo y laaceleraci´n obtenida en la ejecuci´n, si utilizamos como tiempo secuencial de referencia, el tiempo de o oejecuci´n en el maestro. El n´mero de filas y columnas de las matrices cuadradas se especifica como o ucabecera de cada uno de los bloques de las tablas. Como se observa en la tabla 2.5, el error relativo obtenido en estas pruebas es bastante bajo, solamentehay 3 casos en los que el error supera el 5 % y en la mayor´ de las pruebas est´ por debajo del 2 %. Esto ıa asupone un porcentaje de error asumible y, por lo tanto, podemos considerar que el modelo est´ validado acuando utilizamos el susbsistema de las m´quinas intermedias y lentas. a En los tiempos reales de la tabla 2.5 comprobamos que, al introducir un mayor n´mero de proce- usadores, el tiempo necesario para resolver el problema disminuye, como tambi´n disminuye si sustituimos eun procesador lento por otro intermedio (configuraciones c2-2t-5p y c3-3t-5p). Adem´s, la distribuci´n a oproporcional resulta mejor que la distribuci´n uniforme al tener en cuenta las diferencias en las veloci- odades de c´mputo de las m´quinas, obligando a que los procesadores m´s r´pidos realicen una mayor o a a acantidad de trabajo. Esto reduce el tiempo total de ejecuci´n paralelo. La unica excepci´n se encuentra en o ´ oel problema de mayor tama˜o (m = 2000) debido, como ya hemos mencionado, a la reducci´n de veloci- n odad que nos encontramos en las m´quinas intermedias del cluster al resolver problemas de gran tama˜o a ny a que estamos considerando como fijo el porcentaje utilizado para calcular los valores m I y mL en ladistribuci´n proporcional. Sin embargo, obteniendo valores adecuados de la funci´n C i estamos teniendo o oen cuenta tambi´n esta situaci´n al aplicar el modelo. En la tabla tambi´n mostramos la aceleraci´n e o e oobtenida por el sistema heterog´neo frente al tiempo secuencial cuando ejecutamos en un procesador eintermedio (el procesador maestro). En la figura 2.14 mostramos la relaci´n entre las aceleraciones reales oy las m´ximas para dos de los problemas (m = 700 y m = 1500) y las 5 configuraciones utilizadas. En alas gr´ficas presentadas se observa que la distribuci´n proporcional es siempre mejor que la distribuci´n a o ouniforme. La aceleraci´n de la distribuci´n proporcional se encuentra pr´xima al l´ o o o ımite de la aceleraci´n, oexcepto para los subsistemas grandes con el problema de tama˜o 1500. n
  • 44. 40 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOTabla 2.5: Tiempos de ejecuci´n del algoritmo paralelo del producto de matrices al ejecutar sobre subsistemas oheterog´neos del cluster utilizando unicamente las m´quinas intermedias y lentas, con diferentes tama˜os de e ´ a nproblemas utilizando dos tipos de distribuci´n: uniforme y proporcional. o Tama˜o de problema: 700 n Distribuci´n Uniforme o Distribuci´n Proporcional o Configuraci´n o Tiempo Modelo Error Aceleraci´no Tiempo Modelo Error Aceleraci´n o c1-2t-3p 52.28 51.73 1.06 % 0.63 26.48 25.83 2.48 % 1.24 c2-2t-5p 26.20 25.83 1.39 % 1.25 12.89 13.10 1.65 % 2.55 c3-2t-5p 26.71 25.83 3.30 % 1.23 11.55 10.28 10.96 % 2.84 c4-2t-8p 14.58 14.73 1.03 % 2.25 7.85 7.92 0.95 % 4.19 c5-2t-10p 11.67 11.48 1.60 % 2.82 7.13 6.89 3.47 % 4.60 Tama˜o de problema: 1000 n Distribuci´n Uniforme o Distribuci´n Proporcional o Configuraci´n o Tiempo Modelo Error Aceleraci´no Tiempo Modelo Error Aceleraci´n o c1-2t-3p 167.38 180.14 7.62 % 0.59 88.19 90.42 2.53 % 1.12 c2-2t-5p 86.28 90.43 4.82 % 1.15 43.83 45.57 3.96 % 2.26 c3-2t-5p 85.48 90.43 5.79 % 1.16 36.70 36.60 0.29 % 2.70 c4-2t-8p 52.53 52.04 0.94 % 1.89 27.29 28.35 3.89 % 3.63 c5-2t-10p 42.70 40.66 4.77 % 2.32 24.88 24.77 0.46 % 3.98 Tama˜o de problema: 1500 n Distribuci´n Uniforme o Distribuci´n Proporcional o Configuraci´n o Tiempo Modelo Error Aceleraci´no Tiempo Modelo Error Aceleraci´n o c1-2t-3p 557.37 572.58 2.73 % 1.10 421.98 427.05 1.20 % 1.46 c2-2t-5p 279.85 290.04 3.64 % 2.20 210.73 214.79 1.93 % 2.92 c3-2t-5p 297.11 290.02 2.39 % 2.07 168.86 170.75 1.12 % 3.65 c4-2t-8p 165.84 169.12 1.98 % 3.71 132.32 132.78 0.35 % 4.65 c5-2t-10p 134.98 133.33 1.22 % 4.56 112.80 113.82 0.90 % 5.46 Tama˜o de problema: 2000 n Distribuci´n Uniforme o Distribuci´n Proporcional o Configuraci´n o Tiempo Modelo Error Aceleraci´no Tiempo Modelo Error Aceleraci´n o c1-2t-3p 1535.10 1572.90 2.46 % 1.43 2257.71 2264.02 0.28 % 0.97 c2-2t-5p 753.50 775.97 2.98 % 2.92 1130.33 1131.67 0.12 % 1.94 c3-2t-5p 760.33 775.94 2.05 % 2.89 903.95 905.19 0.14 % 2.43 c4-2t-8p 431.84 434.90 0.71 % 5.09 696.21 696.86 0.09 % 3.16 c5-2t-10p 336.73 336.06 0.20 % 6.53 603.69 604.45 0.46 % 3.64 En las tablas 2.6 y 2.7 pueden consultarse las distribuciones de trabajo empleadas en cada una delas ejecuciones de la tabla 2.5. Para cada ejecuci´n se diferencia entre la cantidad de trabajo asignada oa los procesadores intermedios (mI ) y a los procesadores lentos (mL ). Para simplificar la tabla, cuandola cantidad asignada a todos los procesadores del mismo tipo sea la misma, se escribe el valor una unica ´vez. Por el contrario, cuando a procesadores del mismo tipo se le asignen cantidades diferentes, debidoa problemas de redondeo en la distribuci´n del trabajo, se mostrar´n las distintas cantidades indicando, o aen cada caso, a qu´ procesadores se asigna cada una de ellas mediante la expresi´n i = ´ e o ındices de losprocesadores. En las tablas 2.6 y 2.7 se observan las diferencias en la asignaci´n de las tareas para las dos distribu- ociones. Mientras que para la distribuci´n uniforme se asigna siempre la misma cantidad de trabajo a todos olos procesadores, en la distribuci´n proporcional esa asignaci´n var´ asign´ndole mayor n´mero de filas o o ıa, a ua computar a los procesadores con una velocidad de c´mputo superior (los procesadores intermedios). o
  • 45. 2.7. VALIDACION DE LOS MODELOS ANAL´ ´ ITICOS 41Figura 2.14: Relaci´n entre las aceleraciones reales obtenidas en las ejecuciones de los programas y las acelera- ociones m´ximas, para dos de los problemas (m = 700 y m = 1500) y las 5 configuraciones utilizadas. aTabla 2.6: Distribuciones uniformes y proporcionales de trabajo para los subsistemas heterog´neos del cluster, eutilizando diferentes configuraciones de m´quinas intermedias y lentas para el problema del producto de matrices, autilizando matrices cuadradas de tama˜os 700 y 1000. n Tama˜o de problema: 700 n Tama˜o de problema: 1000 n Distribuci´n o Distribuci´n o Distribuci´no Distribuci´n o Configuraci´no Uniforme Proporcional Uniforme Proporcional c1-2t-3p mI = 350 mI = 525 mI = 500 mI = 750 mL = 350 mL = 175 mL = 500 mL = 250 c2-2t-5p mI = 175 mI = 262 mI = 250 mI = 375 mL = 175 mL = 87, i = 3 mL = 250 mL = 125 mL = 89, i = 4 c3-2t-5p mI = 175 mI = 210 mI = 250 mI = 300 mL = 175 mL = 70 mL = 250 mL = 100 c4-2t-8p mI = 100 mI = 162 mI = 143 mI = 231 mL = 100 mL = 54, i = 4..6 mL = 143, i = 4..6 mL = 77, i = 4..6 mL = 52, i = 7 mL = 142, i = 7 mL = 76, i = 7 c5-2t-10p mI = 78 mI = 140 mI = 112, i = 1 mI = 200 mL = 78, i = 4..7 mL = 47, i = 4..8 mI = 111, i = 2..3 mL = 67, i = 4..8 mL = 78, i = 8..9 mL = 45, i = 9 mL = 111 mL = 55, i = 92.7.5. Validaci´n del modelo anal´ o ıtico FIFO en el sistema heterog´neo con 3 e tipos de procesadores La ultima prueba realizada para validar nuestro modelo consiste en incluir la m´quina de memoria ´ acompartida (los cuatro procesadores r´pidos) en nuestra plataforma de pruebas. En la tabla 2.8 presen- atamos las configuraciones de procesadores que hemos empleado; en este caso todas las configuracionestienen a un procesador r´pido como procesador maestro. Esta tabla mantiene la misma estructura que ala tabla 2.4, donde se encontraban las configuraciones para los subsistemas con m´quinas intermedias y alentas unicamente (secci´n 2.7.4). ´ o Las aceleraciones m´ximas que se pueden obtener con estos sistemas est´n muy lejos, en algunos a acasos, de lo que corresponder´ a un entorno homog´neo con el mismo n´mero de procesadores. Tam- ıa e ubi´n se observa que al incrementar el tama˜o del problema se produce una reducci´n en la aceleraci´n e n o om´xima alcanzable en el sistema. Esto es debido al comportamiento de las m´quinas intermedias que, a acomo ya hemos comentado, ralentizan su capacidad de c´mputo al trabajar con problemas grandes. Esta ocircunstancia aumenta la heterogeneidad del sistema.
  • 46. 42 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOTabla 2.7: Distribuciones uniformes y proporcionales de trabajo para los subsistemas heterog´neos del cluster eutilizando diferentes configuraciones de m´quinas intermedias y lentas para el problema del producto de matrices, autilizando matrices cuadradas de tama˜os 1500 y 2000. n Tama˜o de problema: 1500 n Tama˜o de problema: 2000 n Distribuci´n o Distribuci´n o Distribuci´n o Distribuci´n o Configuraci´no Uniforme Proporcional Uniforme Proporcional c1-2t-3p mI = 750 mI = 1125 mI = 1000 mI = 1500 mL = 750 mL = 375 mL = 1000 mL = 500 c2-2t-5p mI = 375 mI = 562 mI = 500 mI = 750 mL = 375 mL = 187, i = 3 mL = 500 mL = 250 mL = 189, i = 4 c3-2t-5p mI = 375 mI = 450 mI = 500 mI = 600 mL = 375 mL = 150 mL = 500 mL = 200 c4-2t-8p mI = 215, i = 1..2 mI = 346 mI = 286 mI = 462 mI = 214, i = 3 mL = 115, i = 4..6 mL = 286, i = 4..5 mL = 154, i = 4..6 mL = 214 mL = 117, i = 7 mL = 285, i = 6..7 mL = 152, i = 7 c5-2t-10p mI = 167 mI = 300 mI = 223, i = 1..2 mI = 400 mL = 167, i = 4..6 mL = 100 mI = 222, i = 3 mL = 133, i = 4..8 mL = 166, i = 7..9 mL = 222 mL = 135, i = 9Tabla 2.8: Configuraciones de los sistemas heterog´neos utilizados en las pruebas computacionales de este proble- ema y las aceleraciones m´ximas que se pueden alcanzar en cada subsistema. En estas configuraciones se emplean atodos los tipos de m´quinas diferentes existentes en el cluster : r´pidas (R), intermedias (I) y lentas (L). a a Nombre Aceleraciones M´ximas a Configuraci´n Maestro Esclavos o m = 700 m = 1000 m = 1500 m = 2000 c6-2t-5p R RRII 3.23 3.20 2.67 2.54 c7-2t-8p R RRRIIII 5.45 5.40 4.34 4.08 c8-2t-8p R RRRLLLL 3.82 3.80 3.82 4.02 c1-3t-8p R IIIILLL 3.07 2.99 1.95 1.84 c2-3t-8p R RRIILLL 3.84 3.79 3.29 3.30 c3-3t-9p R RRRIIIIL 5.66 5.59 4.54 4.33 c4-3t-13p R RRRIIIILLLLL 6.47 6.39 5.37 5.35 c5-3t-14p R RRRIIIILLLLLL 6.68 6.59 5.57 5.60 Las pruebas que hemos realizado son las mismas que presentamos en la secci´n 2.7.4: ejecutar los o4 tama˜os de problemas con las distintas configuraciones seleccionadas (tabla 2.8) en dos experimentos n(distribuciones uniforme y proporcional). La tabla 2.9 muestra los resultados de estas pruebas siguiendoel mismo formato que la tabla 2.5. Para la distribuci´n proporcional, hemos calculado una proporci´n fija o o 5de mR ≈ 3 mI y mI = 3 ∗ mL , aunque como se observa en la tabla 1.1 estas diferencias no se mantienenconstantes para todos los tama˜os de problemas. n Observando los resultados presentados en la tabla 2.9, comprobamos que solamente existen ocho casos(de 64 ejecuciones) donde el error supera el 7 %, mientras que en la mitad de las ejecuciones el error sesit´a por debajo del 2 %. Con este resultado podemos considerar nuestro modelo validado ya en todas las usituaciones. Como vimos tambi´n en la secci´n 2.7.4, el tiempo de ejecuci´n real se reduce si la distribuci´n e o o ode trabajo entre los procesadores la realizamos en funci´n de las capacidades de las m´quinas, excepto o aen algunos casos al resolver el problema de mayor tama˜o. Por otro lado, la aceleraci´n conseguida en n oestas ejecuciones es bastante alta considerando la aceleraci´n m´xima que se pod´ alcanzar (tabla 2.8). o a ıaLa relaci´n entre ambas, para los problemas m = 700 y m = 1500 con las 8 configuraciones empleadas, se opuede ver gr´ficamente en la figura 2.15. En esta figura, igual que ocurr´ en la figura 2.14, la aceleraci´n a ıa o
  • 47. 2.7. VALIDACION DE LOS MODELOS ANAL´ ´ ITICOS 43Tabla 2.9: Tiempos de ejecuci´n del algoritmo paralelo del producto de matrices al ejecutar sobre subsistemas oheterog´neos del cluster utilizando los tres tipos de m´quinas con diferentes tama˜os de problemas utilizando dos e a ntipos de distribuci´n: uniforme y proporcional. o Tama˜o de problema: 700 n Distribuci´n Uniforme o Distribuci´n Proporcional o Configuraci´no Tiempo Modelo Error Aceleraci´n o Tiempo Modelo Error Aceleraci´n o 6-2t-5p 7.52 7.53 0.10 % 2.68 6.09 6.11 0.35 % 3.31 c7-2t-8p 4.44 4.36 1.69 % 4.54 3.77 3.67 2.51 % 5.35 c8-2t-8p 14.75 14.65 0.66 % 1.36 5.21 5.26 0.96 % 3.86 c1-3t-8p 13.17 14.72 11.73 % 1.53 6.25 6.87 9.96 % 3.22 c2-3t-8p 15.02 14.67 2.30 % 1.34 5.87 5.66 3.71 % 3.43 c3-3t-9p 12.26 12.77 4.20 % 1.64 3.62 3.78 4.45 % 5.56 c4-3t-13p 9.23 8.51 7.83 % 2.18 3.56 3.29 7.45 % 5.66 c5-3t-14p 8.54 7.87 7.81 % 2.36 3.37 3.15 6.42 % 5.98 Tama˜o de problema: 1000 n Distribuci´n Uniforme o Distribuci´n Proporcional o Configuraci´no Tiempo Modelo Error Aceleraci´n o Tiempo Modelo Error Aceleraci´n o c6-2t-5p 24.75 24.85 0.42 % 2.40 19.01 19.02 0.07 % 3.12 c7-2t-8p 14.31 14.33 0.18 % 4.15 11.34 11.36 0.09 % 5.23 c8-2t-8p 53.37 51.87 2.81 % 1.11 18.59 19.44 4.59 % 3.19 c1-3t-8p 53.08 52.02 2.00 % 1.12 24.22 24.74 2.12 % 2.45 c2-3t-8p 49.77 51.92 4.32 % 1.19 19.24 19.68 2.31 % 3.09 c3-3t-9p 44.46 45.42 2.16 % 1.34 12.63 13.22 4.68 % 4.70 c4-3t-13p 29.86 30.50 2.14 % 1.99 11.27 12.08 7.17 % 5.27 c5-3t-14p 28.05 28.26 0.65 % 2.12 12.78 11.42 10.61 % 4.65 Tama˜o de problema: 1500 n Distribuci´n Uniforme o Distribuci´n Proporcional o Configuraci´no Tiempo Modelo Error Aceleraci´n o Tiempo Modelo Error Aceleraci´n o c6-2t-5p 140.55 141.82 0.91 % 1.46 105.38 106.04 0.63 % 1.95 c7-2t-8p 80.50 80.90 0.50 % 2.56 62.86 62.81 0.08 % 3.27 c8-2t-8p 162.42 168.51 3.75 % 1.27 69.26 66.34 4.22 % 2.97 c1-3t-8p 160.61 169.06 5.26 % 1.28 113.53 113.75 0.20 % 1.81 c2-3t-8p 160.73 168.46 4.81 % 1.28 89.18 89.42 0.26 % 2.31 c3-3t-9p 137.18 148.40 8.18 % 1.50 60.61 60.55 0.10 % 3.39 c4-3t-13p 98.49 101.43 2.99 % 2.09 53.23 53.02 0.40 % 3.87 c5-3t-14p 89.88 94.30 4.91 % 2.29 51.35 54.90 6.92 % 4.01 Tama˜o de problema: 2000 n Distribuci´n Uniforme o Distribuci´n Proporcional o Configuraci´no Tiempo Modelo Error Aceleraci´n o Tiempo Modelo Error Aceleraci´n o c6-2t-5p 750.91 753.41 0.33 % 0.79 564.79 564.52 0.05 % 1.05 c7-2t-8p 430.07 430.42 0.08 % 1.38 341.21 336.64 1.34 % 1.74 c8-2t-8p 437.72 434.22 0.80 % 1.36 190.65 177.42 6.94 % 3.11 c1-3t-8p 431.72 434.79 0.71 % 1.38 601.38 604.74 0.56 % 0.99 c2-3t-8p 430.59 434.40 0.89 % 1.38 475.72 477.19 0.31 % 1.28 c3-3t-9p 376.99 376.86 0.03 % 1.58 322.77 321.58 0.37 % 1.84 c4-3t-13p 252.34 251.06 0.51 % 2.35 282.24 290.49 2.92 % 2.10 c5-3t-14p 232.97 231.46 0.65 % 2.55 274.68 273.40 0.47 % 2.16
  • 48. 44 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOpara la distribuci´n proporcional es superior a la alcanzada con la distribuci´n uniforme para cualquiera de o olos problemas. Para el problema de tama˜o 700 la aceleraci´n de la distribuci´n proporcional est´ pr´xima n o o a oa la aceleraci´n m´xima. Sin embargo, para el problema de mayor tama˜o (m = 1500), se encuentra m´s o a n alejos de su valor m´ximo. Por otro lado, tambi´n se observa, en las dos gr´ficas, una reducci´n de las a e a oaceleraciones para la configuraci´n c1-3t-8p, debido a que en esta configuraci´n no hay ninguna m´quina o o ar´pida entre los esclavos y estamos comparando con el tiempo del algoritmo secuencial ejecutado sobre auna m´quina r´pida. a aFigura 2.15: Relaci´n entre las aceleraciones reales obtenidas en las ejecuciones de los programas y las acelera- ociones m´ximas, para dos tama˜os de problemas (m = 700 y m = 1500) y las 8 configuraciones de procesadores a nutilizadas. En las tablas 2.10 y 2.11 pueden consultarse las distribuciones de trabajo con las que se han realizadolas ejecuciones de la tabla 2.9. Para cada ejecuci´n se especifica el n´mero de filas que deben calcular o ulos procesadores r´pidos (mR ), los procesadores intermedios (mI ) y los procesadores lentos (mL ). La aestructura de estas tablas es la misma que la que presentamos en las tablas 2.6 y 2.7. En las tablas 2.10 y 2.11 se observa la diferencia en el trabajo asignado a las m´quinas intermedias y alentas, cuando realizamos la distribuci´n de trabajo acorde con la capacidad de c´mputo de cada una de o oellas (distribuci´n proporcional). o2.8. Un m´todo exacto para obtener la distribuci´n optima e o ´ Las capacidades predictivas de los modelos anal´ ıticos, que presentamos en las secciones 2.5 y 2.6,podemos utilizarlas para predecir los valores de los par´metros para una ejecuci´n ´ptima, es decir, para a o ocalcular la cantidad ´ptima de trabajo que debemos asignar a cada esclavo para conseguir el m´ o ınimotiempo de ejecuci´n posible. Siendo m´s precisos, tenemos que encontrar los tama˜os m 1 , . . . , mp de o a nlas tareas trabajo1 , . . . , trabajop donde las funciones de complejidad anal´ ıtica (Tpar ) alcanzan el valorm´ınimo. Una aproximaci´n anal´ o ıtica que minimice esta funci´n puede resultar un proceso extremadamente ocomplejo. En su lugar proponemos m´todos algor´ e ıtmicos que nos permitan obtener el m´ınimo. En estasecci´n se describe el m´todo exacto para resolver el problema de optimizaci´n general. o e o Podemos modelizar el problema de encontrar la distribuci´n ´ptima de trabajo como un problema o ode asignaci´n de recursos (RAP, Resource Allocation Problem). Un problema de asignaci´n de recursos o ocl´sico ([85, 104]) consiste en asignar una cantidad de recursos limitados a un conjunto de actividades, apara maximizar su efectividad o para minimizar el costo. El problema m´s simple incluye un unico tipo de a ´recurso discreto. Se asume que se dispone de M unidades de un recurso indivisible y de N actividades queconsumen el recurso. Para cada actividad i, la funci´n fi (x) proporciona el beneficio (o coste) obtenido oal asignar a la actividad i una cantidad x del recurso. Matem´ticamente este problema se formula de la asiguiente manera:
  • 49. ´ ´ ´2.8. UN METODO EXACTO PARA OBTENER LA DISTRIBUCION OPTIMA 45Tabla 2.10: Distribuciones uniformes y proporcionales de trabajo para los subsistemas heterog´neos del cluster eutilizando diferentes configuraciones para el problema del producto de matrices, utilizando matrices cuadradas detama˜os 700 y de 1000. n Tama˜o de problema: 700 n Tama˜o de problema: 1000 n Distribuci´n o Distribuci´n o Distribuci´n o Distribuci´n o Configuraci´n o Uniforme Proporcional Uniforme Proporcional c6-2t-5p mR = 175 mR = 219 mR = 250 mR = 312 mI = 175 mI = 131 mI = 250 mI = 187, i = 3 mI = 189, i = 4 c7-2t-8p mR = 100 mR = 130 mR = 143 mR = 185 mI = 100 mI = 78, i = 4..6 mI = 143, i = 4..6 mI = 111, i = 4..6 mI = 76, i = 7 mI = 142, i = 7 mI = 112, i = 7 c8-2t-8p mR = 100 mR = 184 mR = 143 mR = 263 mL = 100 mL = 37 mL = 143, i = 4..6 mL = 53, i = 4..6 mL = 142, i = 7 mL = 52, i = 7 c1-3t-8p mI = 100 mI = 140 mI = 143 mI = 200 mL = 100 mL = 47, i = 5..6 mL = 143, i = 4..6 mL = 67, i = 5..6 mL = 46, i = 7 mL = 142, i = 7 mL = 66, i = 7 c2-3t-8p mR = 100 mR = 184 mR = 143 mR = 263 mI = 100 mI = 111 mI = 143 mI = 158 mL = 100 mL = 37, i = 5..6 mL = 143, i = 5..6 mL = 53, i = 5..6 mL = 36, i = 7 mL = 142, i = 7 mL = 52, i = 7 c3-3t-9p mR = 88 mR = 125 mR = 125 mR = 179 mI = 88, i = 4..5 mI = 75 mI = 125 mI = 107 mI = 87, i = 6..7 mL = 25 mL = 125 mL = 35 mI = 87 c4-3t-13p mR = 59 mR = 109 mR = 84 mR = 156 mI = 59, i = 4 mI = 66 mI = 84, i = 4 mI = 94 mI = 59, i = 5..7 mL = 22, i = 8..11 mI = 83, i = 5..7 mL = 31, i = 8..11 mL = 58 mL = 21, i = 12 mL = 83 mL = 32, i = 12 c5-3t-14p mR = 54 mR = 106 mR = 77 mR = 152 mI = 54 mI = 64 mI = 77 mI = 91 mL = 54, i = 8..11 mL = 21 mL = 77, i = 8..12 mL = 30 mL = 76, i = 13 N m´ ın fi (xi ) i=1 N sujeto a xi = M i=1 y a ≤ xidonde a es el n´mero m´ u ınimo de unidades de recurso que pueden ser asignados a cualquier actividad. Una forma eficiente de encontrar soluciones ´ptimas a este problema de optimizaci´n consiste en o outilizar un algoritmo de programaci´n din´mica. o a Un esquema maestro-esclavo puede ser formulado como un problema de asignaci´n de recursos. Se oconsidera que las unidades de recurso en el problema son, ahora, los tama˜os de los subproblemas (m i ) nque pueden ser asignados a un procesador pi y las actividades est´n representadas por los procesadores a(N = p). La asignaci´n de una unidad de recurso a un procesador significa asignarle una tarea de tama˜o o nuno. La funci´n de costo puede ser expresada en t´rminos de complejidad anal´ o e ıtica.
  • 50. 46 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOTabla 2.11: Distribuciones uniformes y proporcionales de trabajo para los subsistemas heterog´neos del cluster eutilizando diferentes configuraciones para distintos tama˜os del n problema del producto de matrices, utilizandomatrices cuadradas de tama˜os 1500 y 2000. n Tama˜o de problema: 1500 n Tama˜o de problema: 2000 n Distribuci´n o Distribuci´n o Distribuci´n o Distribuci´n o Configuraci´n o Uniforme Proporcional Uniforme Proporcional c6-2t-5p mR = 375 mR = 469 mR = 500 mR = 625 mI = 375 mI = 281 mI = 500 mI = 375 c7-2t-8p mR = 215, i = 1..2 mR = 278 mR = 286 mR = 370 mR = 214, i = 3 mI = 167, i = 4..6 mI = 286, i = 4..5 mI = 222, i = 4..6 mI = 214 mI = 165, i = 7 mI = 285, i = 6..7 mI = 224, i = 7 c8-2t-8p mR = 215, i = 1..2 mR = 395 mR = 286 mR = 526 mR = 214, i = 3 mL = 79, i = 4..6 mL = 286, i = 4..5 mL = 105, i = 4..6 mL = 214 mL = 78, i = 7 mL = 285, i = 6..7 mL = 107, i = 7 c1-3t-8p mI = 215, i = 1..2 mI = 300 mI = 286 mI = 400 mI = 214, i = 3..4 mL = 100 mL = 286, i = 5 mL = 133, i = 5..6 mL = 214 mL = 285, i = 6..7 mL = 134, i = 7 c2-3t-8p mR = 215 mR = 395 mR = 286 mR = 526 mI = 214 mI = 237 mI = 286 mI = 316 mL = 214 mL = 79, i = 5..6 mL = 286, i = 5 mL = 105, i = 5..6 mL = 78, i = 7 mL = 285, i = 6..7 mL = 106, i = 7 c3-3t-9p mR = 188 mR = 268 mR = 250 mR = 357 mI = 188, i = 4 mI = 161 mI = 250 mI = 214 mI = 187, i = 5..7 mL = 52 mL = 250 mL = 73 mL = 187 c4-3t-13p mR = 125 mR = 234 mR = 167 mR = 312 mI = 125 mI = 141 mI = 167 mI = 187 mL = 125 mL = 47, i = 8..11 mL = 167, i = 8 mL = 62, i = 8..11 mL = 46, i = 12 mL = 166, i = 9..12 mL = 68, i = 12 c5-3t-14p mR = 116 mR = 227 mR = 154 mR = 303 mI = 116, i = 4..5 mI = 136 mI = 154 mI = 182 mI = 115, i = 6..7 mI = 45, i = 8..12 mL = 154, i = 8..11 mL = 61, i = 8..12 mL = 115 mL = 50, i = 13 mL = 153, i = 12..13 mL = 58, i = 13 Para el esquema FIFO (figura 2.2-a y secci´n 2.5) la funci´n de coste se puede expresar como f 1 = T1 o o py fi = Si + m´x(0, di ). Esto significa que i=1 fi = Tp = Tpar . El problema de optimizaci´n es: a o m´ Tpar = Tp ın p sujeto a mi = m i=1 y 0 ≤ mi Esto es, minimizar el tiempo total de c´mputo sujeto a que la suma de los tama˜os de los subproblemas o nsea el tama˜o del total del problema; es decir, se haya resuelto el problema completo. n Para la estrategia LIFO (figura 2.2-b y secci´n 2.6), la funci´n de coste se define como f 1 = φp y o ofi = Ri + m´x(Ci , fi−1 ) + Si , con fp = φ1 = T1 . El problema de optimizaci´n lo expresamos como: a o m´ Tpar = T1 ın p sujeto a mi = m i=1 y 0 ≤ mi
  • 51. ´ ´ ´2.8. UN METODO EXACTO PARA OBTENER LA DISTRIBUCION OPTIMA 47 Modelizando el problema de este modo, minimizamos el tiempo total de ejecuci´n del algoritmo oparalelo sobre p procesadores (Tp para la estrategia FIFO y T1 para LIFO). Tambi´n aseguramos que la e pcantidad total de trabajo ha sido distribuida entre todo el conjunto de procesadores ( i=1 mi = m). Unasoluci´n de este problema de optimizaci´n nos proporciona una distribuci´n ´ptima para un problema o o o omaestro-esclavo. La asignaci´n de un valor mi = 0 al procesador pi implica que utilizar el procesador pi ono reduce el tiempo de ejecuci´n, por lo que se elimina del conjunto de procesadores a utilizar. o Para resolver este problema de optimizaci´n hemos utilizado una estrategia de programaci´n din´mica. o o aLa Programaci´n Din´mica es una importante t´cnica de resoluci´n de problemas que puede ser o a e oaplicada a muchos problemas de optimizaci´n combinatoria. Se define como un m´todo de dise˜o de o e nalgoritmos que puede ser empleado cuando la soluci´n a un problema se puede obtener como el resultado ode una secuencia de decisiones. El m´todo comprueba todas las secuencias de decisiones y selecciona la emejor de ellas. El enfoque de la programaci´n din´mica [103] consiste en evitar el c´lculo de la misma o a asoluci´n m´s de una vez, para ello todas las soluciones de los diferentes subproblemas se almacenan en o auna estructura de datos para su uso posterior (se sacrifica espacio para ganar tiempo). La programaci´n odin´mica es una t´cnica ascendente: se comienza con los subproblemas m´s peque˜os y, combinando a e a nsus soluciones, se obtienen los resultados de subproblemas cada vez mayores, hasta resolver el problemacompleto. Es necesario elegir correctamente el orden en que se resuelven, puesto que al calcular unsubproblema los resultados de aquellos que sean necesarios deben estar ya almacenados. Este m´todo eest´ soportado por un conjunto de ecuaciones de recurrencia, de los que se deriva la soluci´n al problema. a oEn el caso que nos ocupa podemos obtener las ecuaciones de recurrencia del siguiente modo: denotamospor G[i][x] al m´ınimo tiempo de ejecuci´n obtenido cuando se utilizan los primeros i procesadores para oresolver el subproblema de tama˜o x, i = 1, . . . , p y x = 1, . . . , m. El resultado ´ptimo de un problema n omaestro-esclavo de tama˜o m con p procesadores se obtiene en G[p][m]. n Las ecuaciones de recurrencia utilizadas para calcular los valores de G[i][x] para la estrategia FIFOson:G[i][x] = m´ ın{G[i − 1][x − j] + fi (j)/0 < j ≤ x}, i = 2, . . . , p,G[1][x] = f1 (x), 0 < x ≤ m,G[i][x] = 0, i = 1, . . . , p; x = 0. Mientras que para la estrategia LIFO, las f´rmulas que aplicamos son: oG[i][x] = m´ i (j, G[i − 1][x − j])/0 < j ≤ x}, i = 2, . . . , p, ın{fG[1][x] = f1 (x, 0), 0 < x ≤ m,G[i][x] = 0, i = 1, . . . , p; x = 0. Estas ecuaciones de recurrencia permiten obtener un algoritmo de programaci´n din´mica de com- o aplejidad O(pm2 ). Utilizando la aproximaci´n presentada en [85] este algoritmo puede ser f´cilmente o aparalelizado usando p procesadores con una complejidad O(p + m2 ). La formulaci´n que presentamos es general, puesto que no se est´ haciendo ninguna consideraci´n o a oespecial sobre los diferentes tipos de procesadores a utilizar para resolver el problema. La complejidad esla misma si el sistema es homog´neo o si es un sistema heterog´neo formado por procesadores de distintas e ecapacidades de c´mputo o de comunicaci´n. El usuario unicamente necesita ejecutar este algoritmo pro- o o ´porcionando como par´metros de entrada las caracter´ a ısticas del conjunto de procesadores y del problemaconsiderado. Una ventaja importante de la programaci´n din´mica es que permite realizar un an´lisis de sensitivi- o a adad, lo que permite comprobar el efecto de asignar una unidad de recurso a un procesador. Este hecho
  • 52. 48 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOpermite que el n´mero de procesadores para una ejecuci´n ´ptima sea obtenido como una aplicaci´n u o o odirecta de este an´lisis. El conjunto de procesadores a ser utilizados en la resoluci´n de un problema a oest´ determinado por la cantidad de tarea asignada a cada uno. Los procesadores que reciban una canti- adad 0 de trabajo para procesar son excluidos del c´mputo. El n´mero ´ptimo de procesadores, p optimo , o u opuede ser definido como el n´mero de procesadores que se mantienen en este conjunto. En un entorno uheterog´neo podemos considerar el conjunto total de procesadores en el sistema cuando ejecutamos el ealgoritmo de programaci´n din´mica; el resultado que obtenemos nos indica cu´les de los procesadores o a adebemos utilizar para resolver el problema. Una caracter´ıstica importante de esta aproximaci´n es que, a partir de la resoluci´n de un problema o ode tama˜o m con p procesadores, disponemos de toda la tabla de resultados. Esto nos permite determinar nla distribuci´n y el n´mero de procesadores ´ptimos para cualquier problema de tama˜o inferior a m con o u o nun m´ximo de p procesadores. a2.9. Metodolog´ aplicada ıa Realizamos una experiencia computacional para verificar que nuestra metodolog´ puede ser aplicada ıasatisfactoriamente e introduce una mejora en la resoluci´n de problemas mediante algoritmos maestro- oesclavo. La figura 2.16 muestra la metodolog´ aplicada para la paralelizaci´n de estos algoritmos. ıa o Figura 2.16: Metodolog´ aplicada en la paralelizaci´n de algoritmos maestro-esclavo. ıa o Hemos desarrollado una herramienta que encuentra los par´metros ´ptimos para una ejecuci´n ´ptima, a o o ousando las dos estrategias (FIFO y LIFO) en nuestro cluster (secci´n 1.5.1). Los modelos anal´ o ıticos quepredicen los tiempos de ejecuci´n de nuestras aplicaciones (secciones 2.5 y 2.6) son minimizados usando oel procedimiento de programaci´n din´mica descrito en la secci´n 2.8. La herramienta es alimentada con o a otodos los par´metros de la arquitectura necesarios para el modelo anal´ a ıtico. A continuaci´n presentamos las experiencias computacionales que hemos realizado para validar las oestrategias propuestas y obtener las distribuciones ´ptimas para dos problemas diferentes: el producto de omatrices y la Transformada R´pida de Fourier bidimensional. En la secci´n 2.7 ya ha sido verificado que a olas predicciones de tiempo de los modelos son correctas y ahora utilizamos el algoritmo de programaci´nodin´mica para obtener las distribuciones ´ptimas para cada una de las estrategias (FIFO y LIFO). a o
  • 53. ´ ´ ´2.10. PREDICCION DE LA DISTRIBUCION OPTIMA: PRODUCTO DE MATRICES 492.10. Predicci´n de la distribuci´n optima: Producto de matri- o o ´ ces En la secci´n 2.7 describimos el problema del producto de matrices, presentamos los c´digos para o oresolverlo y lo utilizamos para validar nuestros modelos en entornos homog´neos y heterog´neos, compro- e ebando que el tiempo que el modelo predice se corresponde con el tiempo real de ejecuci´n del programa. oEn esta secci´n vamos a usar el mismo problema para comprobar que con nuestros modelos tambi´n pode- o emos obtener los valores de los par´metros que hacen que el tiempo de ejecuci´n necesario para resolver a oel problema sea m´ ınimo; y presentamos los resultados obtenidos al predecir la distribuci´n de trabajo o´ptima entre los procesadores seg´n los dos esquemas de resoluci´n (FIFO y LIFO).o u o Siguiendo el mismo procedimiento que utilizamos en la secci´n 2.7, vamos a utilizar inicialmente como oplataforma de pruebas el subsistema formado unicamente por las m´quinas intermedias y lentas del clus- ´ ater (secci´n 1.5.1). Posteriormente incluiremos la m´quina de memoria compartida, disponiendo entonces o aen nuestra plataforma tambi´n de los 4 procesadores r´pidos. e a Sin embargo, antes de comenzar con las ejecuciones para predecir las distribuciones ´ptimas con las que odebemos resolver los problemas, hemos realizado un peque˜o experimento para demostrar que, mediante nel an´lisis de sensitividad, no solamente obtenemos la distribuci´n ´ptima, sino que tambi´n vamos a a o o edeterminar el n´mero ´ptimo de procesadores que debemos emplear en la resoluci´n del problema. Esto u o onos permite ejecutar el m´todo exacto que minimiza nuestros modelos anal´ e ıticos considerando el clustercompleto y que el m´todo seleccione los procesadores a utilizar. e2.10.1. An´lisis de sensitividad a Realizamos el an´lisis de sensitividad utilizando como ejemplo un problema de tama˜o peque˜o a n n(m = 100) ejecutado mediante la estrategia FIFO. Suponiendo que disponemos de un cluster con 10procesadores intermedios y 10 procesadores lentos, vamos a aplicar el m´todo exacto para saber cu´ntos e aprocesadores son realmente necesarios para resolver el problema en el menor tiempo posible, si conside-ramos distintos subsistemas. En la tabla 2.12 se encuentran los resultados que hemos obtenido en estean´lisis de sensitividad, incluyendo la informaci´n sobre el subsistema, la distribuci´n y el tiempo de a o oejecuci´n estimado por el modelo. o Tabla 2.12: An´lisis de sensitividad para un problema peque˜o: m = 100. a n Procesadores Distribuci´n o Tiempo Predecido 10 Intermedios mI = 10 0.03891 10 Intermedios mI = 10 0.03891 1 Lento mL = 0 10 Intermedios mI = 9 0.03869 10 Lentos mS = 5, i = 1..2 mS = 0, i = 3..10 Inicialmente consideramos el subsistema formado unicamente por los 10 procesadores intermedios ´(primera fila de la tabla). En este caso, al ser un sistema homog´neo, se asigna a cada procesador la emisma cantidad de trabajo (10 filas de la matriz A). A continuaci´n, en la segunda fila, a˜adimos al o nsistema homog´neo anterior un unico procesador lento. Como se observa en la tabla, el procesador lento e ´no recibe ninguna carga de trabajo, esto significa que utilizarlo no reduce el tiempo de ejecuci´n del oprograma; por lo que resolvemos el problema sobre el sistema homog´neo de las m´quinas intermedias. e aPor ultimo, en la tercera fila, se considera el cluster completo de procesadores. Ahora el algoritmo de ´
  • 54. 50 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOprogramaci´n din´mica asigna trabajo a todos los procesadores intermedios y solamente a dos de los o aprocesadores lentos. Esto significa que la mejor opci´n para resolver el problema con el cluster disponible oconsiste en no utilizar 8 de los 10 procesadores lentos Con este peque˜o ejemplo ilustramos que el m´todo empleado en el c´lculo de la mejor distribuci´n n e a ode tareas para ejecutar un problema, nos permite tambi´n conocer el n´mero ´ptimo de procesadores. e u oAquellos procesadores a los que se les asigna una cantidad de trabajo igual a 0, deben ser eliminados dela ejecuci´n porque su uso no aporta ning´n beneficio. o u2.10.2. Predicci´n de la distribuci´n optima de trabajos con 2 tipos de proce- o o ´ sadores En esta secci´n vamos a comparar los resultados presentados en la secci´n 2.7 de las distribuciones o ouniforme y proporcional, con los tiempos de ejecuci´n obtenidos al resolver los problemas utilizando las odistribuciones calculadas al aplicar el m´todo exacto (secci´n 2.8) para las estrategias FIFO y LIFO. e oEn estas distribuciones hemos tenido en cuenta las diferencias entre las m´quinas, considerando valores adistintos de velocidades de c´mputo y de las comunicaciones entre cada par de procesadores. Al ejecutar oel programa con las dos distribuciones, podemos concluir cu´l de las dos estrategias es mejor para resolver aeste problema en cada caso. Primero validamos el tiempo que predice el modelo (tabla 2.13) con las dos estrategias. Las ejecucionesse realizan sobre las 5 configuraciones de procesadores definidas en la tabla 2.4 de la secci´n 2.7.4 (columna oConfiguraci´n). Comparamos el tiempo estimado con el tiempo real empleado para resolver el problema oy calculamos el error cometido por los modelos. El formato de la tabla 2.13 es id´ntico al de la tabla 2.5, eunicamente hemos eliminado la columna Aceleraci´n, que se presentar´ en una tabla posterior.´ o a En la tabla 2.13 demostramos que nuestros modelos predicen perfectamente el tiempo real de re-soluci´n de este problema tanto para la estrategia FIFO como para la estrategia LIFO. Si observamos olos valores de los errores cometidos, solamente en 2 de las 40 ejecuciones el error supera el 2 % (para laconfiguraci´n c5-2t-10p en el problema m´s peque˜o para las dos estrategias). o a n A continuaci´n, comparamos los tiempos reales de ejecuci´n (en segundos) y las aceleraciones obtenidas o opara las cuatro distribuciones (uniforme, proporcional, ´ptima para el esquema FIFO y ´ptima para el o oesquema LIFO) Los tiempos de ejecuci´n de las cuatro distribuciones ya han sido presentados en tablas oanteriores: los tiempos correspondientes a las distribuciones uniforme y proporcional en la tabla 2.5 de lasecci´n 2.7.4; y los tiempos de las distribuciones ´ptimas FIFO y LIFO en la tabla 2.13 en esta misma o osecci´n. Sin embargo, la tabla 2.14 considera nuevamente dichos valores para facilitar el estudio compara- otivo de los resultados. El tiempo secuencial de referencia para calcular la aceleraci´n alcanzada es siempre oel correspondiente al procesador maestro (en este caso el tiempo secuencial de un procesador intermedio). En la tabla 2.14 no se observan diferencias significativas entre los resultados obtenidos con las dis-tribuciones ´ptimas para las dos estrategias, aunque en la mayor´ de los casos el tiempo empleado es o ıaligeramente inferior para el esquema LIFO. Por otro lado, comparando los resultados para la estrategiaFIFO comprobamos que las ejecuciones para las distribuciones ´ptimas son mucho m´s eficientes que las o aejecuciones para las distribuciones uniforme y proporcional, excepto para el problema de tama˜o 2000. nPara este problema, la distribuci´n ´ptima FIFO sigue siendo mejor que la distribuci´n uniforme, pero la o o odiferencia entre ellas es m´ ınima. Este hecho se debe al comportamiento de las m´quinas intermedias para aeste tama˜o de problema (figura 2.13), que convierte al sistema pr´cticamente en un entorno homog´neo, n a ede modo que la distribuci´n uniforme est´ muy cerca de la distribuci´n ´ptima. La figura 2.17 muestra o a o ola mejora relativa conseguida al ejecutar con nuestra distribuci´n ´ptima FIFO frente a los resultados o ocorrespondientes a la distribuci´n proporcional para dos problemas (m = 700 y m = 1500). No se incluye ola relaci´n con el tiempo de la distribuci´n LIFO debido a la similitud entre los tiempos de las dos dis- o otribuciones ´ptimas. En la figura se comprueba gr´ficamente que en todos los casos es mejor considerar o ala heterogeneidad en las comunicaciones.
  • 55. ´ ´ ´2.10. PREDICCION DE LA DISTRIBUCION OPTIMA: PRODUCTO DE MATRICES 51Tabla 2.13: Validaci´n del modelo: comparaci´n del tiempo estimado por el modelo para las distribuciones o ooptimas en las dos estrategias de resoluci´n con los tiempos reales de ejecuci´n, sobre subsistemas heterog´neos´ o o edel cluster, utilizando unicamente las m´quinas intermedias y lentas. ´ a Tama˜o de problema: 700 n ´ Optima FIFO ´ Optima LIFO Configuraci´no Tiempo Modelo Error Tiempo Modelo Error c1-2t-3p 23.37 23.25 0.53 % 23.29 23.24 0.20 % c2-2t-5p 11.80 11.70 0.86 % 11.78 11.71 0.58 % c3-2t-5p 9.30 9.24 0.65 % 9.25 9.23 0.18 % c4-2t-8p 7.41 7.33 1.16 % 7.34 7.32 0.24 % c5-2t-10p 7.00 6.44 7.98 % 6.87 6.43 6.31 % Tama˜o de problema: 1000 n ´ Optima FIFO ´ Optima LIFO Configuraci´no Tiempo Modelo Error Tiempo Modelo Error c1-2t-3p 78.79 77.86 1.18 % 78.31 77.82 0.63 % c2-2t-5p 38.93 39.14 0.54 % 39.53 39.19 0.87 % c3-2t-5p 30.41 30.57 0.52 % 30.58 30.58 0.00 % c4-2t-8p 25.11 24.66 1.78 % 24.96 24.65 1.27 % c5-2t-10p 22.17 21.89 1.25 % 21.97 21.83 0.67 % Tama˜o de problema: 1500 n ´ Optima FIFO ´ Optima LIFO Configuraci´no Tiempo Modelo Error Tiempo Modelo Error c1-2t-3p 382.27 381.19 0.28 % 379.82 381.18 0.36 % c2-2t-5p 195.72 192.03 1.89 % 190.10 192.02 1.01 % c3-2t-5p 164.76 163.54 0.74 % 163.19 163.65 0.28 % c4-2t-8p 116.73 116.74 0.01 % 116.75 116.81 0.06 % c5-2t-10p 99.61 98.63 0.98 % 98.03 98.55 0.53 % Tama˜o de problema: 2000 n ´ Optima FIFO ´ Optima LIFO Configuraci´no Tiempo Modelo Error Tiempo Modelo Error c1-2t-3p 1533.83 1540.86 0.46 % 1533.23 1540.24 0.46 % c2-2t-5p 753.23 764.82 1.54 % 754.85 765.20 1.37 % c3-2t-5p 757.89 760.26 0.31 % 759.15 759.84 0.09 % c4-2t-8p 431.11 433.30 0.51 % 431.21 433.26 0.48 % c5-2t-10p 334.12 334.50 0.11 % 334.69 334.46 0.07 % La tabla 2.14 tambi´n muestra las aceleraciones obtenidas. En la figura 2.18 comparamos gr´ficamente e ala aceleraci´n que se obtiene con las distribuciones proporcional y ´ptima de la estrategia FIFO y la o odistribuci´n ´ptima para la estrategia LIFO con las distribuciones m´ximas alcanzables en el sistema o o a(tabla 2.4) para dos de los problemas ejecutados (m = 700 y m = 1500). Las aceleraciones reales obtenidas con las distribuciones ´ptimas, se acercan mucho a las aceleraciones om´ximas que se pueden alcanzar, llegando incluso a la superlinealidad en algunos casos. Esta superlin- aealidad se debe a efectos debidos a la relaci´n entre los tama˜os de problemas y el tama˜o de la memoria o n ncach´ de las m´quinas al ejecutar el algoritmo secuencial (secci´n 1.4). En la figura 2.18 la l´ e a o ınea corres-pondiente a la distribuci´n proporcional se encuentra en todo momento por debajo de las distribuciones o´ptimas.o Las asignaciones de trabajo que hemos utilizado en las distribuciones ´ptimas FIFO y LIFO se mues- otran en las tablas 2.15 y 2.16. Las asignaciones correspondientes a las distribuciones uniforme y propor-cional se pueden consultar en la secci´n 2.7.4 (tablas 2.6 y 2.7). En las tablas se representan por m I y o
  • 56. 52 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOTabla 2.14: Resultados del algoritmo paralelo para el producto de matrices al ejecutar distintas distribucionesde trabajo: uniforme, proporcional y optimo para la estrategia FIFO y optimo para la estrategia LIFO. Todas las ´ ´ejecuciones se realizan sobre subsistemas heterog´neos del cluster utilizando unicamente las m´quinas intermedias e ´ ay lentas. Tama˜o de problema: 700 n Uniforme Proporcional ´ Optima FIFO ´ Optima LIFO Configuraci´no Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. c1-2t-3p 52.28 0.63 26.48 1.24 23.37 1.41 23.29 1.41 c2-2t-5p 26.20 1.25 12.89 2.55 11.80 2.79 11.78 2.79 c3-2t-5p 26.71 1.23 11.55 2.84 9.30 3.53 9.25 3.55 c4-2t-8p 14.58 2.25 7.85 4.19 7.41 4.43 7.34 4.48 c5-2t-10p 11.67 2.82 7.13 4.60 7.00 4.69 6.86 4.78 Tama˜o de problema: 1000 n Uniforme Proporcional ´ Optima FIFO ´ Optima LIFO Configuraci´no Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. c1-2t-3p 167.38 0.59 88.19 1.12 78.79 1.26 78.31 1.27 c2-2t-5p 86.28 1.15 43.83 2.26 38.93 2.55 39.53 2.51 c3-2t-5p 85.48 1.16 36.70 2.70 30.41 3.26 30.58 3.24 c4-2t-8p 52.53 1.89 27.29 3.63 25.11 3.95 24.96 3.97 c5-2t-10p 42.70 2.32 24.88 3.98 22.17 4.47 21.97 4.51 Tama˜o de problema: 1500 n Uniforme Proporcional ´ Optima FIFO ´ Optima LIFO Configuraci´no Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. c1-2t-3p 557.37 1.10 421.98 1.46 382.27 1.61 379.82 1.62 c2-2t-5p 279.85 2.20 210.73 2.92 195.72 3.15 190.10 3.24 c3-2t-5p 297.11 2.07 168.86 3.65 164.76 3.74 163.19 3.77 c4-2t-8p 165.84 3.71 132.32 4.65 116.73 5.28 116.75 5.28 c5-2t-10p 134.98 4.56 112.80 5.46 99.61 6.18 98.03 6.28 Tama˜o de problema: 2000 n Uniforme Proporcional ´ Optima FIFO ´ Optima LIFO Configuraci´no Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. Tiempo Aceleraci´n o c1-2t-3p 1535.10 1.43 2257.71 0.97 1534.32 1.43 1533.23 1.43 c2-2t-5p 753.50 2.92 1130.33 1.94 753.23 2.92 754.85 2.91 c3-2t-5p 760.33 2.89 903.95 2.43 757.89 2.90 759.15 2.90 c4-2t-8p 431.84 5.09 696.21 3.16 431.11 5.10 431.21 5.10 c5-2t-10p 336.73 6.53 603.69 3.64 334.12 6.58 334.69 6.57mL la cantidad de filas asignadas a los procesadores intermedios y lentos respectivamente. Cuando lacantidad asignada a todos los procesadores del mismo tipo es la misma, incluimos en la tabla un unico ´valor. Si existen valores distintos en la distribuci´n FIFO en la tabla aparece una fila por cada valor y ose indica a qu´ procesadores se les asigna el valor mediante la expresi´n i = ´ e o ındice de los procesadores.En el caso de la estrategia LIFO, al poder ser todas las cantidades asignadas diferentes, en la tabla seespecifican escribiendo una unica vez el tipo de procesador (mI o mL ) y a continuaci´n una lista con ´ olos valores asignados a todos los procesadores de ese tipo. Por ejemplo, para el problema de tama˜o 700 ny la configuraci´n c4-2t-5p, las cantidades que aparecen en la distribuci´n ´ptima FIFO significan que o o ose le asignan 167 filas de la matriz A a los tres procesadores intermedios; y de los 4 procesadores lentosde la configuraci´n, los tres primeros reciben 50 filas, mientras que al ultimo procesador se le asignan o ´solamente 49. En la distribuci´n para el esquema LIFO y la misma configuraci´n aparece m I = 171 169 o o166 y mL = 49 49 48 48 ; esto indica que las cantidades asignadas son: m1 = 171, m2 = 169 y m3 = 166(los tres esclavos intermedios), y para los esclavos lentos: m4 = 49, m5 = 49, m6 = 48 y m9 = 48.
  • 57. ´ ´ ´2.10. PREDICCION DE LA DISTRIBUCION OPTIMA: PRODUCTO DE MATRICES 53Figura 2.17: Mejora relativa obtenida al resolver el problema con la distribuci´n optima FIFO frente a la dis- o ´tribuci´n proporcional, para dos problemas (m = 700 y m = 1500) y las 5 configuraciones utilizadas. oFigura 2.18: Comparativa de las aceleraciones conseguidas al ejecutar el problema con la distribuci´n propor- ocional, la distribuci´n optima FIFO y la distribuci´n optima LIFO con las aceleraciones m´ximas, para dos o ´ o ´ aproblemas (m = 700 y m = 1500) y las 5 configuraciones utilizadas. En las tablas 2.15 y 2.16 el n´mero de filas asignadas a los procesadores intermedios, en cada caso, es umuy superior al trabajo asignado a los procesadores lentos. Para el problema de mayor tama˜o, nuestros nmodelos tienen en cuenta la reducci´n del rendimiento en las m´quinas intermedias, y la diferencia entre o ael n´mero de filas que tienen que computar los procesadores disminuye, o incluso llega a ser superior upara los procesadores lentos (configuraci´n c5-2t-10p). En estas tablas tambi´n incluimos el tiempo que o ese tarda en ejecutar el algoritmo exacto que calcula las distribuciones ´ptimas. Teniendo en cuenta la oreducci´n que se obtiene en los tiempos de ejecuci´n real, el tiempo empleado en la obtenci´n de la o o odistribuci´n ´ptima es asumible para la resoluci´n del problema, puesto que considerando la suma de o o oestos dos tiempos, en la mayor´ de los casos, a´n se reduce el tiempo empleado al ejecutar utilizando ıa ula distribuci´n proporcional. Existen algunos casos donde esto no sucede: las configuraciones c4-2t-8p y oc5-2t-10p para el problema m´s peque˜o. Esto es debido a que al incrementar el n´mero de procesadores, a n uel tiempo necesario para ejecutar el m´todo exacto tambi´n aumenta, aunque en estos dos casos siga e esiendo menor de un segundo. Sin embargo, el problema es muy peque˜o, por lo que un segundo supone nun porcentaje importante respecto al tiempo total de ejecuci´n del programa. Debido al bajo tiempo ode ejecuci´n en los problemas peque˜os no puede haber una reducci´n importante; mientras que en los o n oproblemas grandes s´ es posible reducir el tiempo invertido en la resoluci´n del problema. ı o
  • 58. 54 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOTabla 2.15: Distribuciones optimas FIFO y LIFO calculadas por el modelo y tiempo empleado para ejecutar el ´m´todo exacto que las calcula para los subsistemas heterog´neos del cluster, utilizando diferentes configuraciones e ede m´quinas intermedias y lentas para el problema del producto de matrices, utilizando matrices cuadradas de atama˜os 700 y 1000. n Tama˜o de problema: 700 n ´ Optima FIFO ´ Optima LIFO Configuraci´n o Distribuci´n o Tiempo Distribuci´no Tiempo c1-2t-3p mI = 543 0.11 mI = 544 0.10 mL = 157 mL = 156 c2-2t-5p mI = 271 0.40 mI = 274 270 0.31 mL = 79 mL = 78 c3-2t-5p mI = 213, i = 1..2 0.36 mI = 216 213 210 0.30 mI = 212, i = 3 mL = 61 mL = 62 c4-2t-8p mI = 167 0.71 mI = 171 169 166 0.61 mL = 50, i = 4..6 mL = 49 49 48 48 mL = 49, i = 7 c5-2t-10p mI = 146 0.94 mI = 150 148 146 0.81 mL = 44, i = 4..7 mL = 43 43 43 43 42 42 mL = 43, i = 8..9 Tama˜o de problema: 1000 n ´ Optima FIFO ´ Optima LIFO Configuraci´n o Distribuci´n o Tiempo Distribuci´no Tiempo c1-2t-3p mI = 785 0.24 mI = 786 0.21 mL = 215 mL = 214 c2-2t-5p mI = 393 0.72 mI = 396 392 0.62 mL = 107 mL = 106 c3-2t-5p mI = 306, i = 1..2 0.72 mI = 308 306 304 0.62 mI = 305, i = 3 mL = 61 mL = 83 c4-2t-8p mI = 246, i = 1 1.43 mI = 248 246 245 1.23 mI = 245, i = 2..3 mL = 66 65 65 65 mL = 66 c5-2t-10p mI = 217 1.92 mI = 220 218 216 1.68 mL = 59, i = 4 mL = 58 58 58 58 57 57 mL = 58, i =5..92.10.3. Predicci´n de la distribuci´n optima de trabajos con 3 tipos de proce- o o ´ sadores Por ultimo, vamos a calcular las distribuciones ´ptimas que obtenemos al aplicar el m´todo exacto a ´ o enuestros modelos, cuando introducimos en el cluster los procesadores r´pidos. Las pruebas realizadas han asido las mismas que cuando consideramos el subsistema de las m´quinas intermedias y lentas unicamente a ´(secci´n 2.10.2): calculamos las distribuciones ´ptimas para las estrategias FIFO y LIFO, ejecutamos el o oprograma paralelo utilizando estas distribuciones, comprobamos que el tiempo estimado por el modelocoincide con el tiempo real de ejecuci´n, y comparamos los resultados con los presentados en la secci´n o o2.7.5 (distribuciones uniforme y proporcional). Las configuraciones de procesadores, con las que hemosrealizado las pruebas, son las mismas de la secci´n 2.7 y se encuentran especificadas en la tabla 2.8. oLa tabla 2.17 compara el tiempo que predice el modelo con el tiempo real empleado en la ejecuci´n, ocalculando el error cometido. Los resultados que se muestran en la tabla 2.17 nos permiten considerar los modelos validados para
  • 59. ´ ´ ´2.10. PREDICCION DE LA DISTRIBUCION OPTIMA: PRODUCTO DE MATRICES 55Tabla 2.16: Distribuciones optimas FIFO y LIFO calculadas por el modelo y tiempo empleado para ejecutar el ´m´todo exacto que las calcula para los subsistemas heterog´neos del cluster, utilizando diferentes configuraciones e ede m´quinas intermedias y lentas para el problema del producto de matrices, utilizando matrices cuadradas de atama˜os 1500 y 2000. n Tama˜o de problema: 1500 n ´ Optima FIFO ´ Optima LIFO Configuraci´no Distribuci´n o Tiempo Distribuci´n o Tiempo c1-2t-3p mI = 1004 0.54 mI = 1005 0.47 mL = 496 mL = 495 c2-2t-5p mI = 506 1.62 mI = 507 506 1.40 mL = 244 mL = 244 243 c3-2t-5p mI = 431 1.64 mI = 433 431 430 1.42 mL = 207 mL = 206 c4-2t-8p mI = 307 2.28 mI = 309 308 307 2.78 mL = 145, i = 4..6 mL = 144 mL = 144, i = 7 c5-2t-10p mI = 260 4.27 mI = 261 261 260 3.73 mL = 120 mL = 120 120 120 120 119 119 Tama˜o de problema: 2000 n ´ Optima FIFO ´ Optima LIFO Configuraci´no Distribuci´n o Tiempo Distribuci´n o Tiempo c1-2t-3p mI = 1021 0.95 mI = 1021 0.82 mL = 979 mL = 979 c2-2t-5p mI = 507 2.91 mI =508 507 2.44 mL = 493 mL = 493 492 c3-2t-5p mI = 504, i = 1 2.92 mI = 504 504 503 2.48 mI = 503, i = 2..3 mL = 489 mL = 490 c4-2t-8p mI = 287 5.86 mI = 288 288 287 4.89 mL = 285, i = 4..6 mL = 285 284 284 284 mL = 284, i = 7 c5-2t-10p mI = 221 7.87 mI = 222 6.65 mL = 223, i = 4..8 mL = 223 223 222 222 222 222 mL = 222, i = 9estas distribuciones: en 26 de las 64 ejecuciones realizadas, el error cometido es inferior al 2 % y s´lo en o12 supera el 8 %. Los resultados para el problema m = 2000 ofrecen los peores resultados, ya que el errorse sit´a en torno al 11 %. u La tabla 2.18 muestra los tiempos de ejecuci´n reales expresados en segundos y las aceleraciones para olas diferentes distribuciones de trabajo. Los datos de las distribuciones uniforme y proporcional ya hansido presentados en la tabla 2.9 (secci´n 2.7.5), y los resultados correspondientes a las distribuciones o´ptimas FIFO y LIFO en la tabla 2.17. Volvemos a incluirlos en la tabla 2.18 para poder comparar todosolos resultados obtenidos. En estas ejecuciones, el tiempo de referencia para calcular las aceleraciones esel tiempo secuencial de los procesadores r´pidos, puesto que en todas las configuraciones es el tipo del aprocesador que act´a como maestro. u Observamos en la tabla 2.18 que al introducir los procesadores r´pidos la diferencia entre las dis- atribuciones ´ptimas y las distribuciones uniforme y proporcional ha aumentado, siendo menor el tiempo ode ejecuci´n al utilizar nuestras distribuciones. Tambi´n comprobamos que s´lo hay 3 casos en los que o e ola distribuci´n ´ptima FIFO es mejor que la distribuci´n ´ptima LIFO, aunque en la mayor´ de las o o o o ıaejecuciones, se trate de diferencias reducidas.
  • 60. 56 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOTabla 2.17: Validaci´n del modelo: comparaci´n del tiempo estimado por el modelo, para las distribuciones o ooptimas en las dos estrategias de resoluci´n con los tiempos reales de ejecuci´n, al trabajar con subsistemas´ o oheterog´neos del cluster con diferentes tama˜os de problemas. e n Tama˜o de problema: 700 n ´ Optima FIFO ´ Optima LIFO Configuraci´n o Tiempo Modelo Error Tiempo Modelo Error c6-2t-5p 5.94 5.94 0.04 % 5.90 5.90 0.14 % c7-2t-8p 3.64 3.56 2.19 % 3.60 3.52 2.11 % c8-2t-8p 5.21 5.18 0.63 % 5.20 5.14 1.31 % c1-3t-8p 6.24 6.28 0.61 % 6.28 6.28 0.08 % c2-3t-8p 5.16 5.08 1.37 % 5.14 5.04 1.82 % c3-3t-9p 3.52 3.45 1.83 % 3.47 3.39 2.12 % c4-3t-13p 3.19 3.06 4.09 % 3.11 3.01 3.38 % c5-3t-14p 3.28 2.96 9.60 % 3.14 2.92 7.21 % Tama˜o de problema: 1000 n ´ Optima FIFO ´ Optima LIFO Configuraci´n o Tiempo Modelo Error Tiempo Modelo Error c6-2t-5p 18.71 18.80 0.47 % 18.70 18.73 0.13 % c7-2t-8p 11.33 11.24 0.82 % 11.30 11.16 1.23 % c8-2t-8p 16.97 16.55 2.47 % 16.86 16.48 2.29 % c1-3t-8p 20.74 20.89 0.73 % 21.04 20.94 0.48 % c2-3t-8p 16.41 16.37 0.25 % 16.40 16.30 0.66 % c3-3t-9p 11.08 10.95 1.24 % 11.06 10.85 1.95 % c4-3t-13p 9.94 9.86 0.77 % 9.87 9.77 1.02 % c5-3t-14p 9.94 9.62 3.24 % 9.75 9.56 2.00 % Tama˜o de problema: 1500 n ´ Optima FIFO ´ Optima LIFO Configuraci´n o Tiempo Modelo Error Tiempo Modelo Error c6-2t-5p 86.42 81.09 6.17 % 83.11 80.97 2.58 % c7-2t-8p 53.46 49.45 7.50 % 52.84 49.26 6.77 % c8-2t-8p 62.53 61.24 2.06 % 62.14 61.17 1.57 % c1-3t-8p 105.20 105.40 0.19 % 104.81 105.42 0.58 % c2-3t-8p 73.55 68.10 7.40 % 71.36 67.97 4.75 % c3-3t-9p 51.01 47.62 6.65 % 50.92 47.48 6.75 % c4-3t-13p 45.27 41.95 7.35 % 44.09 41.82 5.15 % c5-3t-14p 44.89 40.82 9.07 % 43.82 40.54 7.49 % Tama˜o de problema: 2000 n ´ Optima FIFO ´ Optima LIFO Configuraci´n o Tiempo Modelo Error Tiempo Modelo Error c6-2t-5p 287.58 273.44 4.92 % 285.76 273.22 4.39 % c7-2t-8p 191.46 170.49 10.95 % 191.32 170.41 10.93 % c8-2t-8p 188.68 168.15 10.88 % 188.54 167.96 10.92 % c1-3t-8p 433.28 432.57 0.16 % 433.31 432.73 0.13 % c2-3t-8p 224.96 212.76 5.42 % 224.32 212.41 5.31 % c3-3t-9p 178.67 160.69 10.06 % 178.28 160.35 10.06 % c4-3t-13p 144.41 129.63 10.24 % 143.96 129.38 10.13 % c5-3t-14p 138.93 123.55 11.07 % 139.07 123.24 11.38 %
  • 61. ´ ´ ´2.10. PREDICCION DE LA DISTRIBUCION OPTIMA: PRODUCTO DE MATRICES 57Tabla 2.18: Comparaci´n de los tiempos de ejecuci´n del algoritmo paralelo del producto de matrices al ejecutar o ocon las distintas distribuciones de trabajo: uniforme, proporcional y optima para la estrategia FIFO y optima ´ ´para la estrategia LIFO. Tama˜o de problema: 700 n Uniforme Proporcional ´ Optima FIFO ´ Optima LIFO Configuraci´no Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. 6-2t-5p 7.52 2.68 6.09 3.31 5.94 3.39 5.89 3.41 c7-2t-8p 4.44 4.54 3.77 5.35 3.64 5.52 3.60 5.59 c8-2t-8p 14.75 1.36 5.21 3.86 5.21 3.86 5.20 3.87 c1-3t-8p 13.17 1.53 6.25 3.22 6.24 3.22 6.28 3.20 c2-3t-8p 15.02 1.34 5.87 3.43 5.16 3.90 5.14 3.92 c3-3t-9p 12.26 1.64 3.62 5.56 3.52 5.72 3.47 5.80 c4-3t-13p 9.23 2.18 3.56 5.66 3.19 6.31 3.11 6.47 c5-3t-14p 8.54 2.36 3.37 5.98 3.28 6.14 3.14 6.41 Tama˜o de problema: 1000 n Uniforme Proporcional ´ Optima FIFO ´ Optima LIFO Configuraci´no Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. c6-2t-5p 24.75 2.40 19.01 3.12 18.71 3.17 18.70 3.17 c7-2t-8p 14.31 4.15 11.34 5.23 11.33 5.24 11.30 5.25 c8-2t-8p 53.37 1.11 18.59 3.19 16.97 3.50 16.86 3.52 c1-3t-8p 53.08 1.12 24.22 2.45 20.74 2.86 21.04 2.82 c2-3t-8p 49.77 1.19 19.24 3.09 16.41 3.62 16.40 3.62 c3-3t-9p 44.46 1.34 12.63 4.70 11.08 5.36 11.06 5.37 c4-3t-13p 29.86 1.99 11.27 5.27 9.94 5.97 9.87 6.01 c5-3t-14p 28.05 2.12 12.78 4.65 9.94 5.97 9.75 6.09 Tama˜o de problema: 1500 n Uniforme Proporcional ´ Optima FIFO ´ Optima LIFO Configuraci´no Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. c6-2t-5p 140.55 1.46 105.38 1.95 86.42 2.38 83.11 2.48 c7-2t-8p 80.50 2.56 62.86 3.27 53.46 3.84 52.84 3.89 c8-2t-8p 162.42 1.27 64.36 3.20 62.53 3.29 62.14 3.31 c1-3t-8p 160.61 1.28 113.53 1.81 105.20 1.96 104.81 1.96 c2-3t-8p 160.73 1.28 89.18 2.31 73.55 2.80 71.36 2.88 c3-3t-9p 137.18 1.50 60.61 3.39 51.01 4.03 50.92 4.04 c4-3t-13p 98.49 2.09 53.23 3.87 45.27 4.55 44.09 4.67 c5-3t-14p 89.88 2.29 51.35 4.01 44.89 4.58 43.82 4.70 Tama˜o de problema: 2000 n Uniforme Proporcional ´ Optima FIFO ´ Optima LIFO Configuraci´no Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. c6-2t-5p 750.91 0.79 564.79 1.05 287.58 2.06 285.76 2.08 c7-2t-8p 430.07 1.38 341.21 1.74 191.46 3.10 191.32 3.10 c8-2t-8p 437.72 1.36 190.65 3.11 188.68 3.15 188.54 3.15 c1-3t-8p 431.72 1.38 601.38 0.99 433.28 1.37 433.31 1.37 c2-3t-8p 430.59 1.38 475.72 1.28 224.96 2.64 224.32 2.65 c3-3t-9p 376.99 1.58 322.77 1.84 178.67 3.32 178.28 3.3 c4-3t-13p 252.34 2.35 282.24 2.10 144.41 4.11 143.96 4.12 c5-3t-14p 232.97 2.55 274.68 2.16 138.93 4.27 139.07 4.27
  • 62. 58 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVO La figura 2.19 muestra la mejora relativa conseguida al utilizar la distribuci´n ´ptima FIFO frente o oa la distribuci´n proporcional y la mejora que se obtiene con la distribuci´n ´ptima LIFO frente a la o o odistribuci´n ´ptima FIFO. o oFigura 2.19: Mejoras relativas para dos problema (m = 700 y m = 1500) y las 8 configuraciones utilizadas.Izquierda: Mejora obtenida al resolver el problema con la distribuci´n optima FIFO frente a la ejecuci´n del o ´ oprograma con la distribuci´n proporcional. Derecha: Mejora conseguida por la distribuci´n optima LIFO frente a o o ´la distribuci´n optima FIFO. o ´ En la figura 2.19-Izquierda se observa que la distribuci´n ´ptima FIFO es mejor que la distribuci´n o o oproporcional: obtenemos un mejora relativa mayor que 0 al utilizar nuestra distribuci´n; excepto para olas configuraciones c8-2t-8p y c1-3t-8p con el tama˜o 700, donde las diferencias son m´ n ınimas. La figura2.19-Derecha muestra la relaci´n entre las dos distribuciones ´ptimas. Calculamos la mejora relativa de o ola distribuci´n LIFO frente a la distribuci´n FIFO: observamos que los resultados en las 2 estrategias o oson muy similares (´nicamente en una ejecuci´n la mejora obtenida supera el 4 %); y solamente en un u ocaso (configuraci´n c1-3t-8p y el problema de tama˜o 700) la distribuci´n FIFO es la mejor estrategia o n o(la mejora relativa en la gr´fica aparece negativa). a En la figura 2.20 se muestra gr´ficamente la relaci´n entre las aceleraciones m´ximas y las que obte- a o anemos al ejecutar con la distribuci´n proporcional y las distribuciones ´ptimas para los dos esquemas de o oresoluci´n, para dos tama˜os de problemas (m = 700 y m = 1500). o nFigura 2.20: Aceleraciones conseguidas al ejecutar el problema con la distribuci´n proporcional, la distribuci´n o ooptima FIFO y la distribuci´n optima LIFO y su comparaci´n con las aceleraciones m´ximas, para dos problemas´ o ´ o a(m = 700 y m = 1500) y todas las configuraciones utilizadas. Comparando las aceleraciones reales con las aceleraciones m´ximas que aparecen en la tabla 2.18 y en ala figura 2.20 podemos ver que para el problema m´s peque˜o las aceleraciones obtenidas est´n muy cerca a n ade la aceleraci´n m´xima, e incluso la superan (superlinealidad) en algunos casos. Como ya coment´bamos o a aen la secci´n 2.10.2, la superlinealidad puede deberse a los efectos producidos por el tama˜o de la memoria o ncach´, frente a los tama˜os de problemas en las ejecuciones secuenciales. Para el problema de tama˜o e n n1500 las aceleraciones alcanzadas se encuentran m´s lejos de los valores m´ximos, aunque es mejor para a alas dos distribuciones ´ptimas que para la proporcional. o
  • 63. ´ ´ ´2.10. PREDICCION DE LA DISTRIBUCION OPTIMA: PRODUCTO DE MATRICES 59 Las distribuciones de trabajo uniforme y proporcional se encuentran en las tablas 2.15 y 2.16 dela secci´n 2.10.3. En las tablas 2.19, 2.20, 2.21 y 2.22 incluimos unicamente el n´mero de filas que se o ´ uasignan a los procesadores en las distribuciones ´ptimas FIFO y LIFO, as´ como el tiempo necesario para o ıla ejecuci´n del m´todo exacto. El formato de la tabla es id´ntico al utilizado en la tabla 2.15 y 2.16, o e edonde mR , mI y mL son las cantidades de trabajo asignadas a los procesadores r´pidos, intermedios y alentos respectivamente.Tabla 2.19: Distribuciones optimas FIFO y LIFO calculadas por el modelo y tiempo empleado para ejecutar el ´m´todo exacto que los calcula para los subsistemas heterog´neos del cluster utilizando diferentes configuraciones, e epara el problema del producto de matrices de tama˜o 700. n Tama˜o de problema: 700 n ´ Optima FIFO ´ Optima LIFO Configuraci´no Distribuci´n o Tiempo Distribuci´n o Tiempo c6-2t-5p mR = 212 0.52 mR = 214 213 0.32 mI = 138 mI = 137 136 c7-2t-8p mR = 126 1.05 mR = 127 0.60 mI = 81, i = 4..6 mI = 82 80 79 78 mI = 79, i = 7 c8-2t-8p mR = 186 1.05 mR = 186 186 185 0.62 mL = 36, i = 4..6 mL = 36 36 36 35 mL = 34, i = 7 c1-3t-5p mI = 143 1.05 mI = 147 145 143 141 0.60 mL = 43, i = 5..6 mL = 42 41 41 mL = 42, i = 7 c2-3t-8p mR = 181 1.04 mR = 183 182 0.60 mI = 117 mI = 117 116 mL = 35, i = 5..6 mL = 34 mL = 34, i = 7 c3-3t-9p mR = 117 1.22 mR = 123 122 122 0.75 mI = 76, i = 4..6 mI = 79 78 77 76 mI = 75, i = 7 mL = 23 mL = 23 c4-3t-13p mR = 107 1.92 mR = 109 108 108 1.25 mI = 69 mI = 70 69 68 67 mL = 21, i = 8..11 mL = 21 20 20 20 20 mL = 19, i = 12 c5-3t-14p mR = 103 2.06 mR = 105 1.29 mI = 67, i = 4 mI = 67 67 66 65 mI = 66, i = 5..7 mL = 20 mL = 21 En las distribuciones de las tablas 2.19, 2.20, 2.21 y 2.22, el m´todo no ha asignado una cantidad de etrabajo 0 a ning´n procesador, lo que significa que, en ning´n caso, el n´mero ´ptimo de procesadores es u u u omenor que el n´mero de procesadores disponibles en los subsistemas. Por otro lado, el tiempo invertido upor la ejecuci´n del m´todo exacto aumenta considerablemente al incrementar el n´mero de procesadores o e uen el sistema y el tama˜o del problema. Para problemas peque˜os, el tiempo necesario para calcular las n ndistribuciones ´ptimas no compensa las mejoras obtenidas, debido a que el tiempo de ejecuci´n paralelo es o omuy reducido. Sin embargo, para problemas grandes, donde el tiempo total de ejecuci´n paralelo supera oun minuto, el tiempo necesario para obtener las distribuciones ´ptimas es menor que la mejora obtenida oal ejecutar con la distribuci´n proporcional o uniforme, por lo que aplicar este m´todo s´ resulta ser o e ırentable.
  • 64. 60 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOTabla 2.20: Distribuciones optimas FIFO y LIFO calculadas por el modelo y tiempo empleado para ejecutar el ´m´todo exacto que los calcula para los subsistemas heterog´neos del cluster utilizando diferentes configuraciones, e epara el problema del producto de matrices de tama˜o 1000. n Tama˜o de problema: 1000 n ´ Optima FIFO ´ Optima LIFO Configuraci´no Distribuci´n o Tiempo Distribuci´n o Tiempo c6-2t-5p mR = 311 1.07 mR = 313 312 0.63 mI = 189 mI = 188 187 c7-2t-8p mR = 184 2.15 mR = 186 1.22 mI = 112 mI = 112 111 110 109 c8-2t-8p mR = 275 2.11 mR = 275 275 274 1.24 mL = 44, i = 4..6 mI = 44 mL = 43, i = 7 c1-3t-5p mI = 208 2.14 mI = 211 210 208 206 1.19 mL = 56 mL = 55 c2-3t-8p mR = 270 2.14 mR = 272 1.22 mI = 164 mI = 164 163 mL = 44 mL = 43 c3-3t-9p mR = 179 2.51 mR = 181 181 180 1.42 mI = 109, i = 4..5 mI = 109 108 107 106 mI = 108, i = 6..7 mL = 28 mL = 29 c4-3t-13p mR = 161 3.89 mR = 163 163 162 2.30 mI = 97 mI = 98 98 97 96 mL = 26, i = 8..11 mL = 25 mL = 25, i = 12 c5-3t-14p mR = 157 4.27 mR = 159 2.44 mI = 95 mI = 96 95 94 94 mL = 25, i = 8..12 mL = 24 mL = 24, i = 13
  • 65. ´ ´ ´2.10. PREDICCION DE LA DISTRIBUCION OPTIMA: PRODUCTO DE MATRICES 61Tabla 2.21: Distribuciones optimas FIFO y LIFO calculadas por el modelo y tiempo empleado para ejecutar el ´m´todo exacto que los calcula para los subsistemas heterog´neos del cluster utilizando diferentes configuraciones, e epara el problema del producto de matrices de tama˜o 1500. n Tama˜o de problema: 1500 n ´ Optima FIFO ´ Optima LIFO Configuraci´no Distribuci´n o Tiempo Distribuci´n o Tiempo c6-2t-5p mR = 535 2.37 mR = 536 535 1.42 mI = 215 mI = 215 214 c7-2t-8p mR = 325 4.80 mR = 326 326 325 2.87 mI = 132, i = 4 mI = 131 131 131 130 mI = 131, i = 5..7 c8-2t-8p mR = 404 4.89 mR = 405 404 404 2.84 mL = 72 mL = 72 72 72 71 c1-3t-5p mI = 278, i = 1..2 4.81 mI = 279 279 278 277 2.78 mI = 277, i = 3..4 mL = 129 mL = 130 c2-3t-8p mR = 448 4.72 mR = 450 449 2.75 mI = 181, i = 3 mI = 181 180 mI = 180, i = 4 mL = 80 mL = 81 c3-3t-9p mR = 313 5.58 mR = 314 3.17 mI = 127 mI = 127 126 126 126 mL = 53 mL = 53 c4-3t-13p mR = 275 8.71 mR = 277 276 276 5.10 mI = 112 mI = 112 112 111 111 mL = 46, i = 8..11 mL = 45 mL = 43, i = 12 c5-3t-14p mR = 267 9.58 mR = 268 5.59 mI = 109, i = 4..6 mI = 109 108 108 mI = 108, i = 7 mI = 44 44 44 44 44 43 mL = 442.10.4. Herramienta de predicci´n de esquema y distribuci´n optima de tra- o o ´ bajos Para aprovechar todas las ventajas de nuestros dos modelos, hemos desarrollado tambi´n una herra- emienta que permite determinar el mejor m´todo para resolver un problema maestro-esclavo: secuencial o eparalelo y, en este ultimo caso, cu´l de las dos estrategias debemos utilizar y con qu´ distribuci´n. En la ´ a e otabla 2.23 aparece el m´todo con el que deber´ e ıamos resolver el problema (columna Forma de Resoluci´n). oEsta columna puede tomar uno de los tres valores siguientes: Secuencial, FIFO o LIFO. Al comparar los resultados de la tabla 2.23 con las tablas de los tiempos de ejecuci´n paralelo de las osecciones anteriores (secciones 2.10.2 y 2.10.3), podemos comprobar el alto porcentaje de acierto de nuestraherramienta al predecir correctamente la estrategia adecuada de resoluci´n. En las tablas encontramos oque de las 52 ejecuciones realizadas del m´todo exacto unicamente en 8 el resultado no es correcto; lo que e ´supone un porcentaje de acierto del 84,62 %. En 5 de las ejecuciones err´neas las aceleraciones obtenidas oal utilizar ambas estrategias es la misma, por lo que no puede considerarse realmente un error. Estoincrementa el porcentaje de acierto hasta el 94,23 %. En las otras tres ejecuciones la diferencia entre lasaceleraciones no supera el 0,03, lo que en tiempo real de ejecuci´n supone aproximadamente 1,5 segundos oen un total de m´s de 160 (configuraci´n c3-2t-5p para el problema de tama˜o m = 1500). Este porcentaje a o nresulta un valor aceptable del error. Por otro lado, en la tabla se comprueba que en la mayor´ de los ıacasos, lo m´s conveniente para resolver un problema del producto de matrices, es utilizar la estrategia a
  • 66. 62 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOTabla 2.22: Distribuciones optimas FIFO y LIFO calculadas por el modelo y tiempo empleado para ejecutar el ´m´todo exacto que los calcula para los subsistemas heterog´neos del cluster utilizando diferentes configuraciones, e epara el problema del producto de matrices de tama˜o 2000. n Tama˜o de problema: 2000 n ´ Optima FIFO ´ Optima LIFO Configuraci´no Distribuci´n o Tiempo Distribuci´n o Tiempo c6-2t-5p mR = 818 4.33 mR = 818 2.43 mI = 182 mI = 182 c7-2t-8p mR = 515 8.60 mR = 516 515 515 5.10 mI = 114, i = 4..6 mI = 114 114 113 113 mI = 113, i = 7 c8-2t-8p mR = 508 8.64 mR = 508 4.94 mL = 119 mL = 119 c1-3t-5p mI = 287 8.67 mI = 288 287 287 287 4.74 mL = 284 mL = 284 284 283 c2-3t-8p mR = 638 8.62 mR = 639 4.84 mI = 142, i = 3 mI = 142 141 mI = 141, i = 4 mL = 147 146 146 mL = 147 c3-3t-9p mR = 486 10.15 mR = 486 5.70 mI = 107 mI = 107 mL = 114 mL = 114 c4-3t-13p mR = 394 16.05 mR = 395 9.11 mI = 86 mI = 87 86 86 86 mL = 95, i = 8..11 mL = 94 mL = 94, i = 12 c5-3t-14p mR = 376 17.35 mR = 377 377 376 9.95 mI = 82 mI = 83 82 82 82 mL = 91, i = 8..12 mL = 91 90 90 90 90 90 mL = 89, i = 13Tabla 2.23: Resultados obtenidos con la herramienta: estrategia que debemos usar en la resoluci´n de los proble- omas. Configuraci´no m = 700 m = 1000 m = 1500 m = 2000 c1-2t-3p LIFO LIFO LIFO LIFO c2-2t-5p FIFO FIFO LIFO FIFO c3-2t-5p LIFO FIFO FIFO LIFO c4-2t-8p LIFO LIFO FIFO LIFO c5-2t-10p LIFO LIFO LIFO LIFO c6-2t-5p LIFO LIFO LIFO LIFO c7-2t-8p LIFO LIFO LIFO LIFO c8-2t-8p LIFO LIFO LIFO LIFO c1-3t-5p LIFO FIFO FIFO FIFO c2-3t-8p LIFO LIFO LIFO LIFO c3-3t-9p LIFO LIFO LIFO LIFO c4-3t-13p LIFO LIFO LIFO LIFO c5-3t-14p LIFO LIFO LIFO LIFOLIFO; y en ning´n caso una ejecuci´n secuencial resulta ser la opci´n m´s acertada. u o o a
  • 67. ´ ´ ´2.11. PREDICCION DE LA DISTRIBUCION OPTIMA: FFT-2D 632.11. Predicci´n de la distribuci´n optima: Transformada R´pi- o o ´ a da de Fourier bidimensional (FFT-2D) En esta secci´n aplicamos la metodolog´ presentada en la secci´n 2.9 al problema de la Transfor- o ıa omada R´pida de Fourier bidimensional (FFT-2D), para resolverlo de forma ´ptima en un sistema a oheterog´neo. e La Transformada R´pida de Fourier (FFT) juega un papel importante en numerosas aplicaciones acient´ ıficas y t´cnicas: la f´ e ısica computacional, el procesamiento de se˜ales digitales, el procesamiento de nim´genes, etc. El estudio lo realizamos sobre las FFT-2D, que son particularmente importantes en la areconstrucci´n de im´genes tridimensionales y han sido estudiadas en [21, 22, 74, 122, 157, 177]. En la o amayor´ de las paralelizaciones de este algoritmo, los autores dividen el proceso en dos fases, aplicando ıasucesivamente una FFT unidimensional a cada una de las dos dimensiones (filas y columnas). En [122]los autores implementan dos versiones paralelas del c´lculo de la Transformada de Fourier bidimensional, aestudiando la cantidad de informaci´n desplazada entre procesadores y el rendimiento obtenido con los odos m´todos. En [22] el autor implementa un filtro para procesar im´genes empleando una FFT-2D e asecuencial y en [21] se presenta un algoritmo paralelo para resolverla. En [157] los autores desarrollan unaFFT-2D paralela sobre threads y en [177] se puede consultar una implementaci´n de este algoritmo sobre oun cluster de PCs. Uno de los trabajos m´s importantes sobre la FFT se encuentra en [74, 75], la FFTW a(Fast Fourier Transform in the West), donde se presenta una librer´ de software libre, que permite ıarealizar transformadas de Fourier para una o m´s dimensiones, con matrices de tama˜os arbitrarios, a ntanto para datos reales como complejos, soportada por una amplia variedad de plataformas con un altorendimiento. El problema general de la FFT-2D consiste en operar sobre una matriz bidimensional de n´meros ucomplejos, de tama˜o M × N . Al tratarse de una matriz de n´meros complejos, existen dos valores para n ucada una de las celdas de la matriz: uno para representar la parte real del n´mero y otro que representa la uparte imaginaria. Sin embargo, para representar una imagen, en ocasiones se asigna un valor 0 a la parteimaginaria y la parte real del n´mero contiene el valor de un pixel de la imagen. La transformaci´n a u orealizar viene dada por las siguientes ecuaciones, dependiendo de la direcci´n en la que se vaya a aplicar: o Directa: M N 1 F (u, v) = f (x, y) ∗ e−j∗2∗π∗(u∗x/M +v∗y/N ) N ∗M x=0 y=0 Inversa: M N F (u, v) = f (x, y) ∗ ej∗2∗π∗(u∗x/M +v∗y/N ) x=0 y=0 Las f´rmulas anteriores equivalen a aplicar una FFT unidimensional sobre cada una de las filas de ola matriz que se quiere transformar y, a continuaci´n, una FFT unidimensional sobre cada una de las ocolumnas de la matriz resultante. Esto significa que puede implementarse el algoritmo mediante 4 pasos: 1. Ejecutar la FFT unidimensional sobre cada fila 2. Calcular la traspuesta de la matriz resultado 3. Ejecutar la FFT unidimensional sobre cada fila de la matriz resultado 4. Calcular la traspuesta de la matriz obtenida en el paso anterior Los tres ultimos pasos del algoritmo equivalen a realizar una FFT unidimensional por columnas sobre ´la matriz original.
  • 68. 64 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVO2.11.1. Algoritmo Secuencial El algoritmo secuencial que resuelve el problema de la FFT-2D transforma la matriz de entrada deacuerdo a las ecuaciones anteriores (secci´n 2.11). Asumiendo que se va a transformar una matriz de otama˜o M × N , los pasos 1 y 3 del algoritmo tienen una complejidad de O(M N log(M N )), mientras nque los pasos 2 y 4 (calcular las matrices traspuestas) requieren O(M N ) operaciones. En la figura 2.21mostramos el c´digo de la funci´n que realiza la transformada [22]. La funci´n recibe como par´metros de o o o aentrada la matriz sobre la que se va a realizar la transformada, c; el tama˜o de la matriz (M, N ), donde nM y N denotan el n´mero de filas y columnas respectivamente; y el par´metro dir que indica el tipo de u atransformada que se va a realizar (operaci´n de tipo directa o inversa). La matriz es de un tipo definido ollamado COMPLEX, que representa un n´mero complejo e incluye dos valores flotantes: la parte real y ula parte imaginaria del n´mero complejo. u 1 int FFT2D(COMPLEX **c,int M, int N, int dir) { 2 int i, m; 3 double *real, *imag; 4 // FFT por filas 5 if (!AsignarMemoria(real, imag, N)) 6 return(FALSE); 7 8 if (!Potencia2(N, &m)) // Comprobar si el n´mero de columnas es potencia de 2: N = 2^m u 9 return(FALSE);1011 for (i = 0; i < M; i++) {12 Inicializar(N, real, imag, c);13 FFT(dir, m, real, imag); // FFT unidimensional para una fila14 CopiarResultados(N, real, imag, c);15 }16 LiberarMemoria(real, imag);1718 CalcularTraspuesta(c, M, N); // C´lculo de la traspuesta a1920 // FFT por filas de la matriz traspuesta21 if (!AsignarMemoria(real, imag, M))22 return(FALSE);2324 if (!Potencia2(M, &m)) // Comprobar si el n´mero de filas es potencia de 2: M = 2^m u25 return(FALSE);2627 for (i = 0; i < N; i++) {28 Inicializar(M, real, imag, c);29 FFT(dir, m, real, imag); // FFT unidimensional para una fila de la traspuesta30 CopiarResultados(M, real, imag, c);31 }32 LiberarMemoria(real, imag);3334 CalcularTraspuesta(c, N, M); // C´lculo de la traspuesta a3536 return(TRUE);37 }Figura 2.21: Funci´n que resuelve el problema de la FFT-2D secuencialmente: realiza llamadas a la funci´n que o ocalcula la FFT unidimensional
  • 69. ´ ´ ´2.11. PREDICCION DE LA DISTRIBUCION OPTIMA: FFT-2D 65 En primer lugar se realiza la transformada unidimensional en las filas de la matriz original: se asignamemoria a dos arrays auxiliares (real e imag) para almacenar la informaci´n de cada una de las columnas o(l´ ınea 5 del c´digo) y se comprueba que el n´mero de columnas de la matriz sea una potencia de 2, puesto o uque es un requisito de la FFT unidimensional que se est´ aplicando (l´ a ınea 8 del c´digo). Si en alguno de oestos dos pasos se retorna un error no se puede ejecutar la FFT-2D y finaliza la ejecuci´n. Si no se produce oning´n error, se copian los datos de la fila de la matriz inicial c a los arrays auxiliares (l´ u ınea 12) y, acontinuaci´n, se aplica la FFT unidimensional sobre la fila (l´ o ınea 13); por ultimo, se copian nuevamente ´los resultados desde los arrays auxiliares a la matriz (l´ ınea 14). Una vez finalizado el c´mputo de las FFT ounidimensionales sobre todas las filas de la matriz, se libera la memoria utilizada en los arrays auxiliaresy se calcula la matriz traspuesta (paso 2 del algoritmo de la secci´n 2.11) en la l´ o ınea 18 del c´digo. A ocontinuaci´n se repite el proceso, pero esta vez sobre cada una de las filas de la matriz traspuesta (l´ o ıneas21 a 32 de c´digo). Por ultimo, en la l´ o ´ ınea 35 se realiza el ultimo paso del algoritmo, que consiste en ´volver a calcular la traspuesta de la matriz, con lo que obtenemos el resultado del problema. La tabla 2.24 muestra los tiempos obtenidos en la ejecuci´n de este algoritmo secuencial sobre los tres otipos de m´quinas disponibles en el cluster (secci´n 1.5.1). Hemos realizado las pruebas para problemas a ode diferentes tama˜os, donde el n´mero de filas y el n´mero de columnas son siempre potencias de 2, n u u(requisito para aplicar la FFT unidimensional). Consideramos entradas donde las matrices son im´genes acuadradas, es decir, donde el n´mero de filas es igual al n´mero de columnas y el valor de la parte u uimaginaria es siempre 0. Los tama˜os de las im´genes var´ entre 1024 × 1024 y 8192 × 8192 para las n a ıanm´quinas r´pidas, mientras que en los procesadores intermedios y lentos el mayor tama˜o que se ha a a npodido ejecutar es 4096 × 4096. Las columnas con etiquetas Filas y Columnas de la tabla 2.24 especificanel tama˜o del problema a resolver; el resto de las columnas representan el tiempo, expresado en segundos, nobtenido al ejecutar el algoritmo secuencial en las m´quinas r´pidas (R), intermedias (I) y lentas (L) del a acluster respectivamente.Tabla 2.24: Tiempos de ejecuci´n del algoritmo secuencial de la FFT-2D en los tres tipos de m´quinas que o acomponen el cluster M´quinas r´pidas (R) M´quinas Intermedias (I) M´quinas Lentas (L) a a a a Filas Columnas Tiempo (seg.) Tiempo (seg.) Tiempo (seg.) 1024 1024 1.44 1.82 5.11 2048 2048 6.24 9.56 24.10 4096 4096 29.33 170.01 261.34 8192 8192 168.39 – – En la tabla 2.24 se observa que, al incrementar el tama˜o del problema, los tiempos necesarios para nresolverlo de forma secuencial aumentan considerablemente, especialmente para los procesadores inter-medios y lentos.2.11.2. Algoritmo Paralelo Es un hecho conocido que la FFT-2D pertenece a una clase de aplicaciones que no escala bien ensistemas distribuidos, debido a la alta carga de comunicaciones entre los procesadores para el intercambiode los datos [177]. Por tratarse de un problema que no escala bien resulta de inter´s la aplicaci´n de nuestra e ometodolog´ para comprobar la mejora obtenida frente a las distribuciones uniforme y proporcional. ıa Aplicamos la paralelizaci´n unicamente sobre los pasos 1 y 3 del algoritmo presentado en la secci´n o ´ o2.11.1, mientras que los pasos 2 y 4 los ejecuta el maestro de forma secuencial. La figura 2.22 ilustragr´ficamente el proceso para resolver este problema en un sistema con 4 esclavos: inicialmente el maestro aalmacena todos los datos de la matriz (1), agrupa las filas seg´n alguna pol´ u ıtica de distribuci´n y env´ o ıaa cada esclavo la cantidad de trabajo que le corresponda. Los esclavos ejecutan una FFT unidimensionalsobre cada fila que le haya correspondido (2) y devuelven el resultado al maestro. El maestro reagrupa
  • 70. 66 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOlos resultados (3) y realiza la traspuesta sobre la matriz obtenida (4). A continuaci´n se vuelve a repetir oel proceso anterior: sobre esta matriz traspuesta el maestro vuelve a aplicar la pol´ ıtica de distribuci´n o ´y env´ de nuevo el trabajo a los esclavos. Estos aplican una FFT unidimensional sobre cada una de ıasus filas (5) y devuelven el resultado. El maestro reagrupa la matriz (6) y calcula su traspuesta (7).La matriz obtenida en este ultimo paso es la soluci´n del problema. Si se realiza un particionado por ´ obloques de los datos, la cantidad de informaci´n que se env´ a cada esclavo es del orden O( MpN ) y para o ıarealizar un c´mputo se invierte un tiempo del orden O( MpN log(M N )). Si comparamos estos 2 valores, la odiferencia entre ellos es unicamente del orden O(log(M N )). Esta cantidad tan reducida explica la falta ´de escalabilidad de este problema. Figura 2.22: Proceso de resoluci´n del problema de la FFT bidimensional de forma paralela. o En la versi´n paralela se han implementado dos c´digos distintos, uno para cada estrategia de resolu- o oci´n presentado en las secciones 2.4, 2.5 y 2.6. La diferencia entre los dos c´digos reside exclusivamente o oen el orden de recepci´n de los resultados por parte del maestro. En la figura 2.23 se presenta el c´digo o oque resuelve el problema de la FFT-2D mediante la estrategia FIFO. La primera funci´n se denomina oFFT2D y se encarga de comprobar que tanto el n´mero de filas como el n´mero de columnas de la u umatriz son potencias de 2. Los par´metros que recibe son: la matriz original de datos (c); el tama˜o de la a nmatriz (M y N son el n´mero de filas y de columnas respectivamente); la direcci´n de la ecuaci´n para u o oresolver el problema: directa o inversa (dir ); el nombre del procesador (id ), que valdr´ 0 para el maestro ay contendr´ la posici´n que ocupa el procesador que est´ ejecutando el c´digo dentro del conjunto de los a o a oesclavos, 1, . . . , p; y vfilas, que es un vector que contiene la distribuci´n de datos que se va a realizar, es odecir, el n´mero de filas que le corresponde a cada esclavo. u En la funci´n FFT2D primero se realiza la transformaci´n por filas: se comprueba si el n´mero de filas o o ues potencia de 2 (l´ınea 8) y llama a la funci´n que se encarga de la distribuci´n de tareas a los esclavos o o(l´ ınea 11). En las l´ ıneas 14 a 17 del c´digo se repite el proceso para la transformaci´n de las columnas. o o
  • 71. ´ ´ ´2.11. PREDICCION DE LA DISTRIBUCION OPTIMA: FFT-2D 67 1 /************************************************************************* 2 * FFT bidimensional paralela 3 * ***********************************************************************/ 4 boolean FFT2D(int *c, int M, int N, int dir, int id, int* vfilas) { 5 int i, j, m, *t, *t2; // t y t2: matrices auxiliares 6 7 // Transformar las filas 8 if (!Potencia2 (M, &m)) // Comprueba si el n´mero de filas es potencia de 2: M = 2^m u 9 return(FALSE);1011 t = distribuir trabajo (c, M, N, dir, num proc, id, m, vfilas);1213 // Transformar las columnas14 if (!Potencia2 (N, &m)) // Comprueba si el n´mero de columnas es potencia de 2: N = 2^m u15 return (FALSE);1617 t2 = distribuir trabajo (t, N, M, dir, num proc, id, m, vfilas);18 return(TRUE);19 }2021 /*************************************************************************************22 * Distribuci´n de trabajo a los esclavos y c´mputo de las filas de la matriz o o23 * ***********************************************************************************/24 int *distribuir tareas (int *c, int filas, int cols, int dir, int id, int m, int* vfilas) {25 int i, nf; // nf = n´mero de filas que le corresponden a un esclavo u26 t par par; // par´metros de env´o y recepci´n a ı o27 int *mat, *res; // matrices auxiliares2829 if (id == 0) { // MASTER30 inic param (&par, num proc); // Env´a el trabajo a los esclavos ı31 for (i = 1; i < num proc; i++) {32 enviar (&vfilas[i], 1, MPI INT, i, TAGN);33 enviar ((c + par.ini), (2 * vfilas[i] * cols), MPI INT, i, TAG);34 variar par (&par, vfilas[i], cols);35 }36 inic param (&par, num proc); // Recibe el trabajo de los esclavos:37 res = inic matrix(filas, cols); // se utiliza una matriz auxiliar38 for (i = 1; i < num proc; i++) {39 recibir ((res + par.ini), (2 * vfilas[i] * cols), MPI INT, i, TAG);40 variar par (&par, vfilas[i], cols);41 }42 mat = traspuesta matriz(res, filas, cols); // C´lculo de la traspuesta a43 return mat;44 }45 else { // ESCLAVOS46 recibir (&nf, 1, MPI INT, 0, TAGN); // Recibe el trabajo a realizar47 mat = inic matrix (nf, cols);48 recibir (mat, (2 * cols * nf), MPI INT, 0, TAG);49 mat = Realizar FFT (mat, nf, cols, dir, m); // FFT unidimensional50 enviar (mat, (2 * nf * cols), MPI INT, 0, TAG); // Env´a la soluci´n al master ı o51 }52 } Figura 2.23: C´digo que resuelve el problema de la FFT-2D mediante la estrategia FIFO o
  • 72. 68 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVO La funci´n distribuir tareas recibe los mismos par´metros que la funci´n FFT2D, a˜adiendo solamente o a o nun par´metro m, tal que M = 2m . El maestro env´ a cada esclavo el trabajo que le corresponde (l´ a ıa ıneas30 a 35 del c´digo) y, a continuaci´n, recibe los resultados que devuelven los esclavos (l´ o o ıneas 36 a 41 delc´digo). De acuerdo con la estrategia FIFO de resoluci´n, se reciben los resultados de los esclavos en el o omismo orden en el que se enviaron (secci´n 2.5). Para resolver el problema mediante la estrategia LIFO o(secci´n 2.6) unicamente es necesario modificar estas l´ o ´ ıneas para recibir los resultados en el orden inverso.Por ultimo, el maestro calcula la traspuesta de la matriz (l´ ´ ınea 42 del c´digo). Entre las l´ o ıneas 45 a 51,los esclavos ejecutan su c´digo: reciben las filas que le corresponden, realizan una llamada a la funci´n o oque ejecuta la FFT unidimensional y devuelven su resultado al maestro. Este algoritmo de la FFT-2D no permite la aplicaci´n de nuestra metodolog´ a toda la ejecuci´n. o ıa o´Unicamente se utiliza sobre la transformaci´n por filas de la matriz de entrada (paso 1 del algoritmo). El otiempo necesario para ejecutar el paso 3 es el mismo que para completar el paso 1: aquella distribuci´n de otrabajo que minimice el tiempo para la primera ejecuci´n de la FFT unidimensional tambi´n minimiza o eel tiempo del conjunto de las dos ejecuciones. A pesar de no paralelizar el c´lculo de la traspuesta, ala ejecuci´n seguir´ siendo ´ptima, ya que, en ambos casos, son realizadas por el maestro y el tiempo o a oinvertido no depende de los esclavos que se utilicen, ni de la distribuci´n de tareas asignada. Por lo otanto, aunque el tiempo que se obtiene con el modelo no es el tiempo real de ejecuci´n del algoritmo, ola distribuci´n que minimiza el modelo s´ es la distribuci´n ´ptima para el problema completo bajo la o ı o oestrategia de resoluci´n considerada. o2.11.3. Caracterizaci´n de la plataforma heterog´nea o e En las secciones 1.5.1 y 2.7.3 caracterizamos nuestra plataforma heterog´nea para el problema del eproducto de matrices, determinando la relaci´n entre las velocidades de los distintos tipos de m´quinas o a(tabla 1.1), las potencias computacionales escaladas para cada uno de ellos y el valor de la heterogeneidaddel sistema (tabla 1.2), las aceleraciones m´ximas posibles para todos los tama˜os de problemas, con- a nsiderando la plataforma heterog´nea (figura 1.4) y la definici´n de las funciones C i (m), que determinan e oel tiempo de c´mputo (figura 2.13). En esta subsecci´n vamos a realizar los mismos c´lculos para nuestro o o asistema heterog´neo, cuando resolvemos el problema de la FFT bidimensional para los 4 tama˜os de e nproblemas que hemos resuelto con el algoritmo secuencial (tabla 2.24). La tabla 2.25 presenta las relaciones obtenidas entre los tiempos secuenciales de las m´quinas. El aformato de esta tabla es id´ntico al de la tabla 1.1: se incluye el tama˜o de los problemas (columnas e netiquetadas como Filas y Columnas) y la relaci´n entre cada par de m´quinas: lentas / r´pidas (L / R), o a aintermedias / r´pidas (I / R) y lentas / intermedias (L / I ). aTabla 2.25: Relaci´n para diferentes tama˜o del problema de la FFT-2D entre los tiempos secuenciales obtenidos o nen los tres tipos de m´quinas que componen HN : lentas / r´pidas (L / R), intermedias / r´pidas (I / R) y lentas a a a/ intermedias (L / I). Filas Columnas L/R I/R L/I 1024 1024 3.54 2.81 1.26 2048 2048 3.86 2.52 1.53 4096 4096 8.91 1.54 5.80 En este caso, tambi´n comprobamos que estas relaciones entre las m´quinas var´ al incrementar el e a ıantama˜o del problema. Como ya observamos en la tabla de los tiempos secuenciales (tabla 2.24), para el nproblema 4096 × 4096 las relaciones L / R y L / I sufren un aumento considerable frente a las obtenidaspara los otros dos problemas. No hemos podido obtener la relaci´n existente entre los tiempos para el oproblema de 8192 × 8192 puesto que no ha sido posible resolver el problema de forma secuencial para lasm´quinas intermedias y lentas. a
  • 73. ´ ´ ´2.11. PREDICCION DE LA DISTRIBUCION OPTIMA: FFT-2D 69 A continuaci´n calculamos la heterogeneidad que presenta nuestro cluster completo para este problema o p−1 (1−CP E )(secci´n 1.4): H = i=0 p o i . Para aplicar esta f´rmula es necesario obtener previamente los valores oescalados para las potencias computacionales de los tres tipos de m´quinas, asign´ndole a los procesadores a a Er´pidos el valor m´s alto (CPR = 1). La tabla 2.26 muestra los valores de las potencias computacionales a a E Eescaladas para las m´quinas r´pidas (columna CPR ), intermedias (columna CPI ) y lentas (columna a a ECPL ); as´ como el valor obtenido para la heterogeneidad con los 14 procesadores que componen el ısistema.Tabla 2.26: Potencia computacional escalada para los tres tipos de m´quinas del cluster (r´pidas, intermedias y a alentas) y valor de la heterogeneidad al resolver cuatro problemas de distintos tama˜os de la FFT bidimensional. n E E E Filas Columnas CPR CPI CPL Heterogeneidad 1024 1024 1 0.79 0.28 0.37 2048 2048 1 0.65 0.26 0.42 4096 4096 1 0.17 0.11 0.62 En la tabla 2.26 se observa como la heterogeneidad del sistema aumenta al incrementar el tama˜o ndel problema, pasando del 37 % de heterogeneidad para el problema de 1024 × 1024 al 62 % en el pro-blema de 4096 × 4096. Analizando las potencias computacionales escaladas, podemos ver que la potenciacomputacional escalada para las m´quinas lentas se reduce a algo m´s de la mitad entre el primer y el a atercer problema, mientras que para las m´quinas intermedias esta reducci´n supone m´s del 75 %. Para a o ael problema de tama˜o 8192 × 8192 no podemos calcular la heterogeneidad al no disponer de los datos nsecuenciales de los procesadores intermedios y lentos, pero es probable que la heterogeneidad del sistemafuese a´n mayor que para el problema 4096 × 4096. u La tercera de las m´tricas aplicadas es el c´lculo de las aceleraciones m´ximas que se pueden obtener e a aen el sistema al utilizar las 14 m´quinas disponibles en el cluster (secci´n 1.4). En la figura 2.24 mostramos a ola relaci´n entre las aceleraciones m´ximas alcanzables en nuestro sistema, al compararla con la que se o aobtendr´ en un sistema homog´neo del mismo tama˜o donde se cumple Sp max = p. ıa e nFigura 2.24: Aceleraciones m´ximas posibles para los tres problemas de la transformada r´pida de Fourier a abidimensional, utilizando las 14 m´quinas disponibles en el sistema, comparadas con la aceleraci´n m´xima en un a o asistema homog´neo del mismo tama˜o. e n La aceleraci´n m´xima se encuentra bastante por debajo de la aceleraci´n correspondiente en un o a osistema homog´neo. En la figura 2.24 se observa de forma gr´fica como se produce un descenso en el e arendimiento del sistema al resolver problemas grandes. Por ultimo, hemos calculado las funciones que determinan los tiempos de c´mputo (funciones C i (m)) ´ opara el problema de la FFT-2D, puesto que sin esta informaci´n no es posible aplicar el m´todo exacto o e
  • 74. 70 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOpara minimizar los modelos. La figura 2.25 muestra gr´ficamente estas funciones para el c´mputo de los a o4 tama˜os de problemas ejecutados en los tres tipos de m´quinas. n aFigura 2.25: Funciones para el c´lculo de las funciones Ci (m) del tiempo de c´mputo para los 4 tama˜os de a o nproblemas considerados en las pruebas y los tres tipos de m´quinas existentes en el cluster. a En la figura 2.25 se observa que el tiempo de c´mputo de las m´quinas intermedias se mantiene o apr´ximo al tiempo requerido por los procesadores m´s r´pidos, mientras que los procesadores lentos o a atardan mucho m´s tiempo en realizar el mismo trabajo. Sin embargo, hay que destacar el efecto producido aen las m´quinas intermedias con el problema de mayor tama˜o (8192 × 8192). Para este problema los a nprocesadores intermedios presentan un comportamiento similar a las m´quinas r´pidas cuando se les a aasigna una cantidad de trabajo inferior a 4000 filas de la matriz, pero cuando el n´mero de filas aumenta use produce un salto en el tiempo de c´mputo, pasando a comportarse casi como una m´quina lenta. Este o aefecto es parecido al que presentaban estas m´quinas en el problema del producto de matrices, tambi´n a econ los problemas grandes, debido probablemente al efecto del tama˜o de la memoria cach´. n e2.11.4. Distribuci´n optima de trabajos en los sistemas homog´neos o ´ e En primer lugar hemos ejecutado el algoritmo paralelo en tres diferentes subsistemas homog´neos, ecompuestos por m´quinas r´pidas (R), intermedias (I) y lentas (L). En estos subsistemas homog´neos a a evariamos el n´mero de esclavos entre 2 y el n´mero m´ximo de procesadores disponibles seg´n el tipo de u u a um´quina considerada. a La tabla 2.27 muestra los tiempos de ejecuci´n sobre los sistemas paralelos de las m´quinas r´pidas, o a aintermedias y lentas, expresados en segundos, y las aceleraciones obtenidas cuando resolvemos los mismosproblemas utilizados en la ejecuci´n del algoritmo secuencial (secci´n 2.24). En esta tabla, las columnas o odenominadas Filas y Columnas representan el tama˜o del problema; la columna N´mero de esclavos n uespecifica el tama˜o del sistema homog´neo y dos macrocolumnas con los resultados obtenidos al ejecutar n eel problema con el primer y segundo esquema de resoluci´n respectivamente (FIFO y LIFO). En cada o
  • 75. ´ ´ ´2.11. PREDICCION DE LA DISTRIBUCION OPTIMA: FFT-2D 71una de estas macrocolumnas se encuentran los tiempos y las aceleraciones conseguidas. Los tiempossecuenciales utilizados para calcular las aceleraciones son los que se muestran en la tabla 2.24.Tabla 2.27: Tiempos de ejecuci´n del algoritmo paralelo de la FFT-2D al ejecutar sobre los distintos subsistemas ohomog´neos del cluster con diferentes tama˜os de problemas empleando las dos estrategias de resoluci´n (FIFO e n oy LIFO). M´quinas r´pidas del cluster (R) a a N´mero de u Esquema FIFO Esquema LIFO Filas Columnas esclavos Tiempo Aceleraci´n o Tiempo Aceleraci´n o 1024 1024 2 1.93 0.74 1.35 1.06 1024 1024 3 1.51 0.95 1.09 1.32 2048 2048 2 8.43 0.74 5.65 1.10 2048 2048 3 6.37 0.98 4.42 1.41 4096 4096 2 36.89 0.80 25.21 1.16 4096 4096 3 28.42 1.03 19.85 1.48 8192 8192 2 167.36 1.01 – – 8192 8192 3 130.84 1.29 96.78 1.74 M´quinas intermedias del cluster (I) a N´mero de u Esquema FIFO Esquema LIFO Filas Columnas esclavos Tiempo Aceleraci´n o Tiempo Aceleraci´n o 1024 1024 2 4.97 0.37 5.25 0.35 1024 1024 3 4.28 0.42 4.67 0.39 2048 2048 2 20.25 0.47 21.50 0.44 2048 2048 3 16.93 0.56 18.91 0.51 M´quinas lentas del cluster (L) a N´mero de u Esquema FIFO Esquema LIFO Filas Columnas esclavos Tiempo Aceleraci´n o Tiempo Aceleraci´n o 1024 1024 2 8.56 0.60 9.01 0.57 1024 1024 3 6.84 0.78 7.47 0.68 1024 1024 4 6.03 0.85 6.81 0.75 1024 1024 5 5.54 0.92 6.44 0.79 2048 2048 2 36.22 0.67 37.97 0.63 2048 2048 3 28.88 0.83 31.29 0.77 2048 2048 4 25.35 0.95 28.51 0.84 2048 2048 5 23.28 1.03 27.42 0.88 En la tabla 2.27 se observa que unicamente utilizando los procesadores m´s r´pidos se consigue ejecutar ´ a alos 4 tama˜os de problemas. Para los sistemas considerados, la estrategia LIFO muestra mejores tiempos nde ejecuci´n en el subsistema de las m´quinas r´pidas, mientras que la estrategia FIFO es siempre el mejor o a am´todo para los procesadores intermedios y lentos. Las aceleraciones son muy reducidas en la mayor´ de e ıalos casos: con las m´quinas intermedias no se consigue mejorar el resultado de la ejecuci´n secuencial en a oninguna de las pruebas; mientras que para las m´quinas lentas s´lo existe un valor donde la aceleraci´n a o osea superior a 1 (para el problema m´s grande, con el mayor n´mero posible de esclavos utilizando la a u ´estrategia FIFO). Unicamente para los procesadores r´pidos con la estrategia LIFO se mejora siempre ael tiempo secuencial. Se observa tambi´n que al aumentar el n´mero de procesadores empleados en la e uresoluci´n del problema se mejora el rendimiento del sistema, reduciendo el tiempo ejecuci´n. o o Del mismo modo que en la tabla de tiempos de ejecuci´n, en la tabla con las distribuciones (tabla 2.28) olas columnas Filas y Columnas muestran el tama˜o del problema y la columna N´mero de esclavos el n utama˜o del sistema homog´neo. Las dos ultimas columnas especifican las distribuciones de trabajo entre n e ´los esclavos para las dos estrategias de resoluci´n. En la estrategia FIFO, al ser un sistema homog´neo, o e
  • 76. 72 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOse asigna a todos los procesadores la misma carga de trabajo siempre que sea posible. Mientras que en laestrategia LIFO la cantidad de trabajo asignada a cada procesador viene determinada por la ejecuci´n ode nuestro m´todo exacto (secci´n 2.8) sobre los subsistemas homog´neos. Las cantidades enviadas a los e o eprocesadores r´pidos, intermedios y lentos se representan en la tabla por m R , mI y mL respectivamente. aTabla 2.28: Distribuciones optimas de trabajo para los subsistemas homog´neos del cluster para los dos esquemas ´ ede resoluci´n de los algoritmos maestro-esclavo con el problema de la FFT bidimensional. o M´quinas r´pidas del cluster (R) a a N´mero de u Estrategia Estrategia Filas Columnas esclavos FIFO LIFO 1024 1024 2 mR = 512 mR = 553 471 1024 1024 3 mR = 342 341 341 mR 398 339 288 2048 2048 2 mR = 1024 mR = 1099 949 2048 2048 3 mR = 683 683 682 mR = 785 678 585 4096 4096 2 mR = 2048 mR = 2188 1908 4096 4096 3 mR = 1366 1365 1365 mR = 1556 1357 1183 8192 8192 2 mR = 4096 mR = 4357 3835 8192 8192 3 mR = 2731 2731 2730 mR = 3086 2716 2390 M´quinas intermedias del cluster (I) a N´mero de u Estrategia Estrategia Filas Columnas esclavos FIFO LIFO 1024 1024 2 mI = 512 mI = 691 333 1024 1024 3 mI = 342 341 341 mI = 597 288 139 2048 2048 2 mI = 1024 mI = 1365 683 2048 2048 3 mI = 683 683 682 mI = 1169 586 293 M´quinas lentas del cluster (L) a N´mero de u Estrategia Estrategia Filas Columnas esclavos FIFO LIFO 1024 1024 2 mL = 512 mL = 610 414 1024 1024 3 mL = 342 341 341 mL = 478 325 221 1024 1024 4 mL = 256 mL = 417 283 193 131 1024 1024 5 mL = 205 205 205 205 204 mL = 384 261 177 120 82 2048 2048 2 mL = 1024 mL = 1207 841 2048 2048 3 mL = 683 683 682 mL = 939 654 455 2048 2048 4 mL = 512 mL = 811 567 395 275 2048 2048 5 mL = 410 410 410 409 409 mL = 743 518 361 251 175 Las diferencias existentes entre las cantidades de trabajo asignadas a los procesadores en la estrategiaLIFO reflejan la importancia de las comunicaciones en el tiempo total de ejecuci´n para este problema. oEn el problema del producto de matrices (tabla 2.3) coment´bamos que la distribuci´n realizada entre a olos procesadores para las estrategias FIFO y LIFO eran pr´cticamente id´nticas, debido a que el costo de a elas comunicaciones era despreciable frente al tiempo invertido en el c´mputo. En el problema de la FFT obidimensional encontramos el caso opuesto: existe una gran cantidad de informaci´n que se transmite oentre los procesadores, lo que incrementa el tiempo de las comunicaciones y produce que el rendimientoen un cluster se vea reducido.
  • 77. ´ ´ ´2.11. PREDICCION DE LA DISTRIBUCION OPTIMA: FFT-2D 732.11.5. Predicci´n de la distribuci´n optima de trabajos con 2 tipos de proce- o o ´ sadores Hemos utilizado inicialmente el sistema heterog´neo donde s´lo participan procesadores de dos tipos e ode m´quinas distintas: las m´quinas intermedias y lentas (el cluster de PCs independientes). En esta a asubsecci´n vamos a comparar los resultados obtenidos para diferentes distribuciones de trabajo. o En la tabla 2.29 mostramos las diferentes configuraciones de m´quinas con las que hemos realizado las aejecuciones, y las aceleraciones m´ximas que podremos obtener en cada caso para los distintos tama˜os de a nproblemas. Las configuraciones utilizadas figuran en la tabla 2.4; sin embargo, es necesario incluir la tabla2.29 para actualizar las aceleraciones m´ximas en el nuevo problema. La columna Nombre Configuraci´n a oasigna un nombre a las configuraciones. La columna Maestro especifica el tipo de m´quina del procesador aque trabaja como maestro y la columna Esclavos muestra los tipos de cada uno de los esclavos ordenadosascendentemente, de p1 a pp . Como se observa en la tabla, los procesadores se han ordenado de forma quetodos los procesadores m´s r´pidos est´n situados en las primeras posiciones. En todas las configuraciones a a econsideradas, el maestro siempre ha sido un procesador de las m´quinas m´s r´pidas incluidas en el cluster, a a aen este caso, un procesador de tipo intermedio y se ha variado el n´mero de esclavos del sistema y su utipo. La ultima de las configuraciones, c5-2t-10p, contiene el m´ximo n´mero de procesadores posible ´ a uen el cluster considerado: 4 m´quinas intermedias (el maestro y 3 esclavos) y 6 m´quinas lentas que a ase comportan como esclavos. Por ultimo, en la tabla existe una macrocolumna con los datos de las ´aceleraciones m´ximas para cada tama˜o del problema (1024 × 1024 y 2048 × 2048); los problemas m´s a n agrandes no han podido ser ejecutados sobre estos sistemas heterog´neos. eTabla 2.29: Configuraciones de los sistemas heterog´neos utilizados en las pruebas computacionales de este eproblema. En todas estas distribuciones se emplean unicamente dos tipos de nodos del cluster: intermedios (I) y ´lentos (L). Aceleraciones M´ximas a Nombre Configuraci´n Maestro Esclavos o 1024 × 1024 2048 × 2048 c1-2t-3p I IL 1.36 1.40 c2-2t-5p I IILL 2.71 2.79 c3-2t-5p I IIIL 3.36 3.40 c4-2t-8p I IIILLLL 4.42 4.59 c5-2t-10p I IIILLLLLL 5.14 5.38 En la tabla 2.29 se observa que la aceleraci´n m´xima se incrementa al aumentar el tama˜o del proble- o a nma. Sin embargo, en todos los casos, la aceleraci´n que se puede alcanzar en estos sistemas est´ bastante o alejos del m´ximo en los sistemas homog´neos. Los valores calculados en esta tabla nos permitir´n poste- a e ariormente conocer el rendimiento de nuestro sistema al resolver los problemas. Hemos considerado 4 distribuciones distintas para resolver el problema (tabla 2.30): uniforme, pro-porcional y ´ptima para la estrategia FIFO y ´ptima para la estrategia LIFO. Del mismo modo que o osucedi´ con los sistemas homog´neos de las m´quinas intermedias y lentas, en el cluster formado exclu- o e asivamente por estos dos tipos de m´quinas, no ha sido posible ejecutar problemas de tama˜o superior a a n2048 × 2048. El tiempo secuencial de referencia para calcular la aceleraci´n es el tiempo de ejecuci´n en o oel maestro, un procesador intermedio (tabla 2.24). En la tabla 2.30 se comprueba nuevamente que este problema no escala bien sobre un cluster dememoria distribuida. En ning´n caso el tiempo obtenido en el sistema heterog´neo mejora el resultado u esecuencial sobre una m´quina intermedia. Sin embargo, se observa que el tiempo de ejecuci´n se reduce a oal utilizar la distribuci´n ´ptima FIFO frente a las distribuciones uniforme y proporcional. Analizando o olos resultados es evidente que no es eficiente resolver el problema con la estrategia LIFO, puesto que enning´n caso mejora el tiempo de la distribuci´n ´ptima FIFO y, en la mayor´ de las pruebas, el tiempo u o o ıade ejecuci´n es incluso peor que el que tarda el algoritmo con la distribuci´n uniforme. En la figura 2.26 o o
  • 78. 74 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOTabla 2.30: Comparaci´n de los tiempos de ejecuci´n del algoritmo paralelo de la FFT-2D en un sistema het- o oerog´neo para diferentes distribuciones empleando unicamente dos tipos de nodos del cluster: intermedios (I) y e ´lentos (L). Tama˜o de problema: 1024 n Uniforme Proporcional ´ Optima FIFO ´ Optima LIFO Configuraci´n o Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. c1-2t-3p 7.63 0.24 5.97 0.30 5.81 0.31 6.35 0.29 c2-2t-5p 5.15 0.35 4.33 0.42 4.31 0.42 5.37 0.34 c3-2t-5p 5.13 0.35 4.33 0.42 4.33 0.42 5.25 0.35 c4-2t-8p 4.48 0.41 4.46 0.41 4.45 0.41 5.10 0.36 c5-2t-10p 4.55 0.40 4.55 0.40 4.53 0.40 5.05 0.36 Tama˜o de problema: 2048 n Uniforme Proporcional ´ Optima FIFO ´ Optima LIFO Configuraci´n o Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. c1-2t-3p 31.93 0.30 24.53 0.39 23.95 0.40 26.09 0.37 c2-2t-5p 21.16 0.45 17.29 0.55 17.18 0.56 21.79 0.44 c3-2t-5p 20.99 0.46 17.00 0.56 16.99 0.56 21.21 0.45 c4-2t-8p 17.41 0.55 17.23 0.55 17.20 0.56 20,60 0.46 c5-2t-10p 17.48 0.55 17.30 0.55 17.29 0.55 20.44 0.47se observa, de forma g´fica, las mismas conclusiones que ya obtuvimos al comparar los tiempos de la atabla 2.30.Figura 2.26: Mejora relativa al resolver los problemas (1024 × 1024 y 2048 × 2048) con las 5 configuracionesutilizadas. Izquierda: Mejora al resolver el problema con la distribuci´n optima FIFO frente a la ejecuci´n del o ´ oprograma con la distribuci´n proporcional. Derecha: Mejora obtenida al resolver el problema con la distribuci´n o ooptima LIFO frente a la distribuci´n optima FIFO.´ o ´ La figura 2.26-Izquierda muestra la mejora relativa que se consigue al ejecutar con nuestra distribuci´n o´ptima FIFO frente a la distribuci´n proporcional para los dos problemas. En todos los casos la distribu-o oci´n ´ptima FIFO es mejor que la distribuci´n proporcional, aunque sea por un porcentaje de tiempo o o omuy escaso. El bajo porcentaje de mejora se debe al reducido tiempo de ejecuci´n total del programa opara resolver el problema de mayor tama˜o (2048 × 2048), solamente con la configuraci´n c1-2t-3p el n otiempo de ejecuci´n supera los 20 segundos. Presentamos tambi´n la mejora relativa al ejecutar con la o edistribuci´n ´ptima LIFO frente a la distribuci´n ´ptima FIFO (figura 2.26-Derecha). Se observa en la o o o ogr´fica la ventaja de utilizar la estrategia FIFO, puesto que, para los dos problemas, obtenemos valores anegativos en la mejora relativa LIFO / FIFO. El beneficio de utilizar la estrategia FIFO llega en ocasionesa m´s del 25 %. a
  • 79. ´ ´ ´2.11. PREDICCION DE LA DISTRIBUCION OPTIMA: FFT-2D 75 En la figura 2.27 se muestra gr´ficamente la relaci´n obtenida entre las aceleraciones reales de las a oejecuciones con las 4 distribuciones utilizadas. En esta figura no se incluye la aceleraci´n m´xima en el o asistema para cada configuraci´n, debido a que las aceleraciones reales se encuentran muy por debajo de oellas.Figura 2.27: Comparativa de las aceleraciones conseguidas al ejecutar el problema con las 4 distribuciones, paralos dos problemas (1024 × 1024 y 2048 × 2048) y las 5 configuraciones utilizadas. Comparando las aceleraciones de forma gr´fica (figura 2.27), comprobamos que la aceleraci´n obtenida a ocon la distribuci´n ´ptima para la estrategia LIFO se encuentra en todo momento por debajo de las o odistribuciones proporcional y ´ptima para la estrategia FIFO. Para estas dos ultimas distribuciones o ´las aceleraciones son pr´cticamente id´nticas para todas las configuraciones y los dos problemas. La a eaceleraci´n conseguida con la distribuci´n uniforme es la peor de todas para el sistema m´s peque˜o o o a n(configuraci´n c1-2t-3p), en las dos configuraciones intermedias se mantiene similar a la distribuci´n o o´ptima LIFO y para los sistemas de mayor tama˜o se consigue una aceleraci´n pr´xima a la aceleraci´no n o o o´ptima FIFO.o En la tabla 2.31 se pueden consultar las distribuciones realizadas para las pruebas mostradas de latabla 2.30. La distribuci´n uniforme no se incluye en la tabla puesto que la asignaci´n es la misma para o otodos los procesadores. En la tabla se incluye tambi´n el tiempo que tarda el m´todo exacto en calcular e elas distribuciones ´ptimas para las estrategias FIFO y LIFO. o Si comparamos las cantidades asignadas en las distribuciones proporcional y ´ptima FIFO, observa- omos que las diferencias entre el n´mero de filas que corresponde a los procesadores intermedios y a los uprocesadores lentos se reduce en la distribuci´n ´ptima. Esto se debe al efecto del costo de las comu- o onicaciones en los tiempos de ejecuci´n. El tiempo necesario para transferir los datos desde y hacia el omaestro provoca que las ventajas obtenidas, por la mayor velocidad de c´mputo de las m´quinas inter- o amedias, queden anuladas. De forma que la distribuci´n ´ptima se obtiene cuando se reduce el n´mero o o ude filas asignado a los procesadores intermedios; equilibrando el tiempo de c´mputo con el tiempo de ocomunicaci´n. o En la tabla 2.31 se muestra el tiempo que tarda el algoritmo exacto en calcular las distribuciones´ptimas para los dos modelos. Como se puede observar, el tiempo aumenta a medida que se incrementaoel tama˜o del problema o el n´mero de esclavos en el sistema. Adem´s se puede comprobar, igual que n u asucedi´ en el problema descrito en la secci´n 2.10, que el tiempo para obtener la distribuci´n ´ptima o o o opara la estrategia LIFO es, aproximadamente, la mitad del tiempo necesario para la distribuci´n de la oestrategia FIFO en todos los casos. En estas pruebas no resulta rentable utilizar el m´todo exacto, puesto que si sumamos el tiempo inver- etido en el c´lculo de la distribuci´n ´ptima FIFO, con el tiempo necesario para ejecutar el programa con a o oesta distribuci´n, el valor obtenido es superior al invertido al utilizar la distribuci´n proporcional. El tiem- o opo total de ejecuci´n del programa es muy peque˜o (menos de 30 segundos) y el m´todo exacto est´ pen- o n e asado para problemas m´s grandes, que requieran m´s tiempo de ejecuci´n, como ya se coment´ para el a a o o
  • 80. 76 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOTabla 2.31: Distribuciones de tareas a los procesadores calculadas por el modelo y tiempo empleado para ejecutarel m´todo exacto que las calcula para los subsistemas heterog´neos del cluster utilizando diferentes configuraciones e ede m´quinas intermedias y lentas para el problema de la FFT-2D. a Problema 1024 × 1024 Proporcional ´ Optima FIFO ´ Optima LIFO Conf. Distribuci´n o Distribuci´n o Tiempo Distribuci´n o Tiempo c1-2t-3p mI = 731 mI = 694 0.22 mI = 811 0.11 mL = 293 mL = 339 mL = 213 c2-2t-5p mI = 366 mI = 347 0.67 mI = 604 291 0.34 mL = 146 mL = 165 mL = 76 53 c3-2t-5p mI = 301 mI = 295, i = 1..2 0.67 mI = 577 278 0.36 mL = 121 mI = 294, i = 3 mL = 134 35 mL = 140 c4-2t-8p mI = 223 mI = 210, i = 1 1.36 mI = 549 265 127 0.67 mL = 89, i = 4..6 mI = 209, i = 2,3 mL = 33 23 mL = 88, i = 7 mL = 99 16 11 c5-2t-10p mI = 190 mI = 176, i = 1 1.82 mI = 541 262 126 0.91 mL = 76, i = 4..8 mI = 175, i = 2,3 mL = 33 23 16 mL = 74, i = 9 mL = 83 11 7 5 Problema 2048 × 2048 Proporcional ´ Optima FIFO ´ Optima LIFO Conf. Distribuci´n o Distribuci´n o Tiempo Distribuci´n o Tiempo c1-2t-3p mI = 1463 mI = 1395 0.86 mI = 1616 0.50 mL = 585 mL = 653 mL = 432 c2-2t-5p mL = 731 mI = 698 2.92 mI = 1185 593 1.48 mL = 293 mL = 326 mL = 158 112 c3-2t-5p mI = 602 mI = 591, i = 1,2 2.68 mI = 1127 564 282 1.62 mL = 242 mL = 590, i = 3 mL = 75 mL = 276 c4-2t-8p mI = 445 mI = 421 6.27 mI = 1065 534 267 3.21 mL = 178, i = 4..6 mL = 197, i = 4 mL = 71 50 mL = 179, i = 7 mL =196, i = 5..7 36 25 c5-2t-10p mI = 379 mI = 353 8.05 mI = 1049 526 263 4.32 mL = 152, i = 4..8 mL = 165, i = 4..8 mL = 69 50 35 mL = 151, i = 9 mL = 164, i = 9 25 18 13problema del producto de matrices (secci´n 2.10.2). Como en el cluster utilizado, con m´quinas interme- o adias y lentas unicamente, no se pueden ejecutar problemas m´s grandes, comprobaremos la eficiencia del ´ am´todo exacto en la secci´n 2.11.6, donde trabajamos con todas las m´quinas disponibles en el sistema. e o a2.11.6. Predicci´n de la distribuci´n optima de trabajos con 3 tipos de proce- o o ´ sadores El siguiente paso consiste en a˜adir la m´quina de memoria compartida (los 4 procesadores m´s n a ar´pidos) en nuestro cluster de pruebas. Como se comprueba en los resultados presentados durante esta asecci´n, la inclusi´n de esta nueva m´quina modifica considerablemente los resultados obtenidos. o o a Utilizamos las mismas configuraciones de procesadores en las pruebas que las empleadas en el problemadel producto de matrices. En la tabla 2.32 volvemos a mostrar las configuraciones elegidas para incluirlas aceleraciones m´ximas, que es posible alcanzar en el sistema para cada una de estas configuraciones ay para cada tama˜o de problema al resolver la FFT-2D. n
  • 81. ´ ´ ´2.11. PREDICCION DE LA DISTRIBUCION OPTIMA: FFT-2D 77Tabla 2.32: Configuraciones de los sistemas heterog´neos utilizados en las pruebas computacionales de este eproblema y aceleraciones m´ximas que se pueden alcanzar en estos sistemas. En estas configuraciones se emplean atodos los tipos de m´quinas diferentes existentes en el cluster : r´pidos (R), intermedios (I) y lentos (L). a a Nombre Aceleraciones M´ximas a Configuraci´n Maestro Esclavos o 1024 × 1024 2048 × 2048 4096 × 4096 c6-2t-5p R RRII 3.58 3.31 2.35 c7-2t-8p R RRRIIII 6.16 5.61 3.69 c8-2t-8p R RRRLLLL 4.13 4.04 3.45 c1-3t-8p R IIIILLL 4.01 3.39 1.03 c2-3t-8p R RRIILLL 4.43 4.08 2.68 c3-3t-9p R RRRIIIIL 6.45 5.87 3.80 c4-3t-13p R RRRIIIILLLLL 7.57 6.91 4.25 c5-3t-14p R RRRIIIILLLLLL 7.86 7.16 4.36 Como se observa en la tabla 2.32, la aceleraci´n m´xima que se puede alcanzar en estos subsistemas o ase reduce considerablemente al trabajar sobre el problema de 4096 × 4096, debido al incremento en eltiempo de ejecuci´n para las m´quinas intermedias y lentas (se puede comprobar en la tabla 2.24 los o atiempos secuenciales para los distintos tipos de m´quinas y tama˜os de problemas). Para el problema de a nmayor tama˜o, 8192 × 8192, no podemos obtener las aceleraciones m´ximas, puesto que este problema n ano fue posible ejecutarlo de forma secuencial en los dos tipos de m´quinas m´s lentos. a a La tabla 2.33 presenta los tiempos obtenidos para las pruebas realizadas. El formato de esta tabla esel mismo que el de la tabla 2.30: se muestra el tiempo obtenido al ejecutar, utilizando las distribucionesuniforme, proporcional, ´ptima para la estrategia FIFO y ´ptima para la estrategia LIFO. Al introducir o olas m´quinas r´pidas en las ejecuciones, se ha conseguido incrementar el tama˜o de los problemas de a a nprueba hasta 8192 × 8192 mientras que sin ellas, unicamente se pod´ llegar a 2048 × 2048. ´ ıa Los tiempos de la tabla 2.33 se han reducido notablemente frente a los presentados en la tabla 2.30,lo que se refleja en el hecho de mejorar el resultado secuencial pr´cticamente con todas las configura- aciones seleccionadas; la unica configuraci´n para la que no se consigue mejorar el resultado secuencial ´ oes c1-3t-8p, donde todos los esclavos son m´quinas intermedias y lentas, y no hay ning´n procesador a ur´pido trabajando; el problema de mayor tama˜o no ha podido ser ejecutado con la estrategia LIFO a npara esta distribuci´n. Las diferencias entre los tiempos obtenidos con las configuraciones ´ptimas y las o odistribuciones proporcional y uniforme son muy superiores a las obtenidas con el cluster anterior. En lafigura 2.28-Izquierda mostramos de forma gr´fica esta mejora relativa, que obtenemos al utilizar la dis- atribuci´n ´ptima FIFO, frente a la distribuci´n proporcional para dos de los problemas ejecutados: uno o o ode los problemas peque˜os (1024 × 1024) y uno de los dos problemas grandes (4096 × 4096). El beneficio nobtenido al utilizar la distribuci´n ´ptima alcanza incluso el 50 %. o o Un aspecto que llama la atenci´n es el cambio producido en la comparaci´n entre los tiempos ´ptimos o o ode las dos estrategias de resoluci´n (figura 2.28-Derecha). Mientras que en el cluster de las m´quinas o aintermedias y lentas, siempre es mejor resolver el problema mediante la estrategia FIFO, ahora la es-trategia ´ptima de resoluci´n es la estrategia LIFO, mejorando hasta en un 40 % los resultados FIFO. o oLa unica excepci´n la constituye la combinaci´n c1-3t-8p. Para esta configuraci´n se obtienen tiempos ´ o o omuy superiores al resto de las configuraciones, especialmente para las distribuciones ´ptimas; se observa otambi´n que la diferencia entre las distribuciones ´ptimas y las distribuciones uniforme y proporcional es e omucho m´s reducida. Es decir, al utilizar una configuraci´n donde s´lo existan esclavos de los dos tipos a o ode m´quinas m´s lentos, el comportamiento del sistema es similar al obtenido al utilizar un cluster donde a as´lo existan estos dos tipos de procesadores. Con la ventaja de que, al utilizar un procesador r´pido como o amaestro hemos podido ejecutar los problemas de mayor tama˜o. n En la figura 2.29 mostramos tambi´n de forma gr´fica la relaci´n entre las aceleraciones obtenidas con e a olas 4 distribuciones para dos problemas (1024 × 1024 y 4096 × 4096). En estas gr´ficas tampoco incluimos a
  • 82. 78 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOTabla 2.33: Comparaci´n de los tiempos de ejecuci´n del algoritmo paralelo de la FFT bidimensional al ejecutar o ocon las distintas distribuciones de trabajo: uniforme, proporcional y optima para la estrategia FIFO y optima ´ ´para la estrategia LIFO. Tama˜o de problema: 1024 × 1024 n Uniforme Proporcional ´ Optima FIFO ´ Optima LIFO Configuraci´no Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. Tiempo Acelerac. c6-2t-5p 2.54 0.57 2.21 0.65 1.93 0.74 1.25 1.15 c7-2t-8p 2.53 0.57 2.29 0.63 1.44 1.00 1.12 1.27 c8-2t-8p 3.01 0.48 1.83 0.78 1.51 0.95 1.09 1.32 c1-3t-8p 3.74 0.38 3.69 0.39 3.64 0.39 3.63 0.37 c2-3t-8p 3.19 0.45 2.43 0.59 1.93 0.74 1.27 1.13 c3-3t-9p 2.91 0.49 2.40 0.60 1.44 1.00 1.13 1.27 c4-3t-13p 3.22 0.45 2.75 0.52 1.44 1.00 1.13 1.27 c5-3t-14p 3.33 0.43 2.86 0.50 1.44 1.00 1.13 1.27 Tama˜o de problema: 2048 × 2048 n c6-2t-5p 10.15 0.61 8.77 0.71 8.43 0.74 5.10 1.22 c7-2t-8p 9.48 0.66 8.55 0.73 6.37 0.98 4.34 1.44 c8-2t-8p 12.06 0.52 7.00 0.89 6.36 0.98 4.26 1.46 c1-3t-8p 14.57 0.43 14.32 0.44 14.04 0.44 14.38 0.43 c2-3t-8p 12.77 0.49 9.19 0.68 8.37 0.74 5.04 1.24 c3-3t-9p 11.33 0.55 8.85 0.70 6.36 0.98 4.34 1.44 c4-3t-13p 11.85 0.53 9.90 0.63 6.36 0.98 4.45 1.40 c5-3t-14p 12.17 0.51 10.30 0.60 6.36 0.98 4.45 1.40 Tama˜o de problema: 4096 × 4096 n c6-2t-5p 43.30 0.68 37.83 0.78 36.80 0.80 22.57 1.30 c7-2t-8p 39.74 0.74 35.87 0.82 26.09 1.12 18.71 1.57 c8-2t-8p 52.80 0.56 31.13 0.94 26.02 1.13 19.11 1.53 c1-3t-8p 62.07 0.47 59.04 0.50 57.39 0.51 59.16 0.50 c2-3t-8p 55.97 0.52 38.47 0.76 36.80 0.80 21.98 1.33 c3-3t-9p 50.38 0.58 36.95 0.79 26.09 1.12 18.81 1.56 c4-3t-13p 48.91 0.60 40.93 0.72 26.09 1.12 19.19 1.53 c5-3t-14p 49.81 0.60 44.16 0.66 26.09 1.12 19.22 1.53 Tama˜o de problema: 8192 × 8192 n c6-2t-5p 462.28 0.36 188.82 0.89 166.45 1.01 106.79 1.58 c7-2t-8p 172.21 0.98 157.21 1.07 130.84 1.29 89.50 1.88 c8-2t-8p 345.40 0.49 197.76 0.85 130.84 1.29 97.22 1.73 c1-3t-8p 352.71 0.48 267.47 0.63 241.41 0.70 – – c2-3t-8p 361.79 0.47 213.00 0.79 166.45 1.01 105.85 1.59 c3-3t-9p 259.19 0.65 167.28 1.01 130.84 1.29 89.77 1.88 c4-3t-13p 259.57 0.65 177.77 0.95 130.84 1.29 89.77 1.88 c5-3t-14p 255.69 0.66 183.14 0.92 130.84 1.29 89.77 1.88
  • 83. ´ ´ ´2.11. PREDICCION DE LA DISTRIBUCION OPTIMA: FFT-2D 79Figura 2.28: Mejora relativa al resolver los problemas 1024 × 1024 y 4096 × 4096 con las 8 configuracionesutilizadas. Izquierda: Mejora relativa al resolver el problema con la distribuci´n optima FIFO frente a la ejecuci´n o ´ odel programa con la distribuci´n proporcional. Derecha: Mejora al emplear la distribuci´n optima de la estrategia o o ´LIFO frente a la distribuci´n optima en la estrategia FIFO. o ´las aceleraciones m´ximas posibles en el sistema, debido a que las aceleraciones son muy reducidas. aFigura 2.29: Aceleraciones conseguidas al ejecutar el problema con las 4 distribuciones para dos problemas(1024 × 1024 y 4096 × 4096) y todas las configuraciones utilizadas. La forma de las gr´ficas de la figura 2.29 para los dos problemas es la misma. Se observan las 4 al´ ıneas de las aceleraciones separadas y manteniendo siempre el mismo orden; y el efecto de la distribuci´n oc1-3t-8p, donde las aceleraciones de las distribuciones ´ptimas se reducen considerablemente, debido a la oausencia de m´quinas r´pidas entre los esclavos. a a En la tabla 2.33 podemos ver tambi´n que los tiempos de la distribuci´n ´ptima FIFO en las confi- e o oguraciones c7-2t-8p, c8-2t-8p c3-3t-9p, c4-3t-13p y c5-3t-14p coinciden en la mayor´ de los tama˜os de ıa nproblemas, para las dos estrategias de resoluci´n. Lo mismo sucede entre las configuraciones c6-2t-5p y oc2-3t-8p. Esto ocurre porque el m´todo exacto tambi´n permite determinar el n´mero ´ptimo de proce- e e u osadores, como ya comprobamos en la secci´n 2.10.1, por lo que en todos estos casos, realmente se ejecuta ola misma distribuci´n sobre los mismos procesadores y se asigna una cantidad de trabajo igual a cero a los orestantes procesadores. Todas las distribuciones con las que se han realizado las pruebas proporcionalesy ´ptimas, se pueden comprobar en la tabla 2.34 para el problema 1024 × 1024, en la tabla 2.35 para oel problema 2048 × 2048, en la tabla 2.36 para 4096 × 4096 y en la tabla 2.37 para 8192 × 8192. Lainformaci´n sobre la distribuci´n uniforme no est´ incluida en las tablas, puesto que se asigna a todos los o o aprocesadores la misma cantidad de trabajo, independiente de su velocidad de c´mputo y comunicaci´n. o o Para la estrategia FIFO se observa que, la distribuci´n ´ptima para la mayor parte de las configura- o ociones, se obtiene cuando se considera el subsistema homog´neo de los procesadores r´pidos del cluster, e asin introducir otros procesadores m´s lentos que no reducen el tiempo total, sino que retrasan la resolu- aci´n del problema. Las distribuciones para las configuraciones c6-2t-5p y c2-3t-8p son iguales: se asigna o
  • 84. 80 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOTabla 2.34: Distribuciones de tareas a los procesadores calculadas por el modelo y tiempo empleado para ejecutarel m´todo exacto que las calcula para los subsistemas heterog´neos del cluster para el problema de la FFT-2D, e epara el problema 1024 × 1024. Proporcional ´ Optima FIFO ´ Optima LIFO Conf. Distribuci´n o Distribuci´n o Tiempo Distribuci´n o Tiempo c6-2t-5p mR = 299 mR = 512 0.69 mR = 468 398 0.33 mI = 213 mI = 0 mI = 106 52 c7-2t-8p mR = 175 mR = 341 1.37 mR = 350 297 253 0.66 mI = 125, i = 4..6 mI = 1, i = 4 mI = 67 33 16 8 mI = 124, i = 7 mI = 0, i = 5..7 c8-2t-8p mR = 247 mR = 342, i = 1 1.37 mR = 360 308 262 0.66 mL = 71, i = 4..6 mR = 341, i = 2,3 mL = 37 26 18 13 mL = 70, i = 70 mL = 0 c1-3t-8p mI = 197 mI = 190, i = 1 1.44 mI = 531 262 130 64 0.71 mL = 79, i = 5,6 mI = 189, i = 2..4 mL = 17 12 8 mL = 78, i = 7 mL = 89 c2-3t-8p mR = 239 mR = 512 1.37 mR = 454 387 0.68 mI = 171 mI = 0 mI = 103 51 mL = 68 mL = 0 mL = 12 10 7 c3-3t-9p mR = 167 mR = 341 1.62 mR = 349 297 252 0.82 mI = 119 mI = 1, i = 4 mI = 67 33 16 8 mL = 47 mI = 0, i = 5..7 mL = 2 mL = 0 c4-3t-13p mR = 141 mR = 341 2.51 mR = 348 296 252 1.25 mI = 100 mI = 1, i = 4 mI = 67 33 16 8 mL = 40, i = 8..11 mI = 0, i = 5..7 mL = 2 1 1 mL = 41, i = 12 mL = 0 mL = 0, i =11,12 c5-3t-14p mR = 135 mR = 341 2.72 mR = 348 296 252 1.34 mI = 97 mI = 1, i = 4 mI = 67 33 16 8 mL = 39, i = 8..12 mI = 0, i = 5..7 mL = 2 1 1 mL = 38, i = 13 mI = 0 mL = 0, i = 11..13una cantidad de filas a procesar a las m´quinas r´pidas y no se utilizan las m´quinas intermedias y a a alentas. Lo mismo sucede con las configuraciones c7-2t-8p, c8-2t-8p, c3-3t-9p, c4-3t-13p y c5-3t-14p paralos problemas 2048 × 2048 y 8192 × 8192. Para los problemas de tama˜o 1024 × 1024 y 4096 × 4096, nlas distribuciones ´ptimas para las configuraciones c7-2t-8p, c3-3t-9p, c4-3t-13p y c5-3t-14p son tambi´n o eiguales, pero en este caso se asigna 1 unidad de trabajo a la primera m´quina intermedia. Sin embargo, apara estos dos problemas la distribuci´n ´ptima en la configuraci´n c8-2t-8p es diferente, debido a que o o ono existen m´quinas intermedias entre los esclavos, por lo que el trabajo de la m´quina intermedia en a alas otras configuraciones se asigna aqu´ a un procesador r´pido en lugar de a uno lento. Tambi´n para ı a eel m´todo LIFO, se observa que para el problema m´s grande no es eficiente utilizar todos los proce- e asadores en la resoluci´n del problema. En la estrategia LIFO y la configuraci´n c1-3t-8p para el problema o o8192×8192 observamos la distribuci´n ´ptima que obtenemos con el m´todo exacto. El motivo de que esta o o edistribuci´n no haya podido ser ejecutada est´ en la cantidad de filas que se asigna al primer procesador o aintermedio (3749 filas), ya que este procesador no tiene capacidad para poder recibirlas. En las tablas 2.34, 2.35, 2.36 y 2.37 se presentan tambi´n los tiempos invertidos por el m´todo exacto e een minimizar los modelos presentados en la secci´n 2.5 y 2.6 y obtener las distribuciones ´ptimas para o ocada tama˜o de problema y configuraci´n. Como tambi´n se ha observado anteriormente, el tiempo que n o etarda el m´todo exacto en obtener la distribuci´n ´ptima para el segundo esquema de resoluci´n, est´ en e o o o atorno a la mitad del tiempo necesario para el primero. Calculando la suma entre el tiempo de ejecuci´n del om´todo exacto, m´s el tiempo de resoluci´n del problema con la distribuci´n ´ptima LIFO, comprobamos e a o o oque este tiempo es menor que el tiempo de ejecuci´n de la distribuci´n proporcional FIFO en la mayor´ o o ıa
  • 85. ´ ´ ´2.11. PREDICCION DE LA DISTRIBUCION OPTIMA: FFT-2D 81Tabla 2.35: Distribuciones de tareas a los procesadores calculadas por el modelo y tiempo empleado para ejecutarel m´todo exacto que las calcula para los subsistemas heterog´neos del cluster para el problema de la FFT-2D, e epara el problema 2048 × 2048. Proporcional ´ Optima FIFO ´ Optima LIFO Conf. Distribuci´n o Distribuci´n o Tiempo Distribuci´n o Tiempo c6-2t-5p mR = 597 mR = 1024 2.81 mR = 917 791 1.33 mI = 427 mI = 0 mI = 225 115 c7-2t-8p mR = 350 mR = 683, i = 1..2 5.32 mR = 680 587 507 2.93 mI = 250, i = 4..6 mR = 682, i = 3 mI = 143 74 38 19 mI = 248, i = 7 mI = 0 c8-2t-8p mR = 494 mR = 683, i = 1,2 5.32 mR = 707 610 526 2.82 mL = 141, i = 4..6 mR = 682, i = 3 mL = 78 57 41 29 mL = 143, i = 7 mL = 0 c1-3t-8p mI = 394 mI = 380 5.85 mI = 1026 529 271 139 2.98 mL = 158, i = 5,6 mL = 176 mL = 37 27 19 mL = 156, i = 7 c2-3t-8p mR = 478 mR = 1024 5.67 mR = 887 766 2.78 mI = 341 mI = 0 mI = 217 112 mL = 137, i = 5,6 mL = 0 mL = 30 21 15 mL = 136, i = 7 c3-3t-9p mR = 333 mR = 683, i = 1,2 6.19 mR = 678 586 505 3.69 mI = 238 mR = 682, i = 3 mI = 143 74 38 19 mL = 97 m I = mL = 0 mL = 5 c4-3t-13p mR = 281 mR = 683, i = 1,2 9.97 mR = 675 583 504 5.63 mI = 201 mR = 682, i = 3 mI = 142 74 38 19 mL = 80, i = 8..11 m I = mL = 0 mL = 5 3 2 2 1 mL = 81, i = 12 c5-3t-14p mR = 270 mR = 683, i = 1,2 11.23 mR = 676 583 503 5.88 mI = 193 mR = 682, i = 3 mI = 141 74 38 19 mL = 77, i = 8..12 m I = mL = 0 mL = 5 3 2 2 1 1 mL = 81, i = 13de las pruebas, exceptuando la configuraci´n c1-3t-8p, donde no trabajan las m´quinas r´pidas. o a a2.11.7. Herramienta de predicci´n de esquema y distribuci´n optima de tra- o o ´ bajos Como ya se especific´ en la secci´n 2.10 (el problema del producto de matrices), se ha desarrollado o ouna herramienta que permite determinar la mejor forma de resolver el problema (de forma secuencial oparalela y, en este ultimo caso, cu´l de las dos estrategias y su distribuci´n). En la tabla 2.38 aparece el ´ a om´todo que debe utilizarse para resolver el problema para cada una de las distribuciones con s´lo 2 tipos e ode m´quinas y en el cluster con los 3 tipos de procesadores. La columna Forma de Resoluci´n puede a otomar uno de los tres siguiente valores: Secuencial, FIFO o LIFO. Las distribuciones ´ptimas de trabajos a los esclavos, para cada caso, es la misma que se obtuvo en olas secciones anteriores (2.11.5 y 2.11.6), por lo que puede consultarse en las tablas correspondientes. En la tabla 2.38 podemos comprobar el alto porcentaje de acierto de nuestra herramienta, al compararestos resultados con los presentados en las tablas de los tiempos de ejecuci´n de esta secci´n (2.30 y 2.33). o oEn las configuraciones con 2 tipos de procesadores, el mejor resultado se obtiene cuando se ejecuta elproblema en un procesador intermedio de forma secuencial, para tres de las configuraciones la herramientano selecciona el resultado secuencial, sino que elige la estrategia FIFO. En estas 6 ejecuciones de las 42
  • 86. 82 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVOTabla 2.36: Distribuciones de tareas a los procesadores calculadas por el modelo y tiempo empleado para ejecutarel m´todo exacto que las calcula para los subsistemas heterog´neos del cluster para el problema de la FFT-2D, e epara el problema 4096 × 4096. Proporcional ´ Optima FIFO ´ Optima LIFO Conf. Distribuci´n o Distribuci´n o Tiempo Distribuci´n o Tiempo c6-2t-5p mR = 1195 mR = 2048 10.27 mR = 1805 1575 5.25 mI = 853 mI = 0 mI = 468 248 c7-2t-8p mR = 699 mR = 1365 21.04 mR = 1332 1161 1013 10.49 mI = 500, i = 4..6 mI = 1, i = 4 mI 300 160 85 45 mI = 499, i = 7 mI = 0, i = 5..7 c8-2t-8p mR = 989 mR = 1366, i = 1 20.74 mR = 1393 1215 1060 10.72 mL = 282, i = 4..6 mR = 1365, i = 2,3 mL = 156 118 88 66 mL = 283, i = 7 mI = 1, i = 4 mI = 0, i = 5..7 c1-3t-8p mI = 788 mI = 774 22.93 mI = 1191 1060 562 298 10.74 mL = 315, i = 5,6 mL = 334 mL = 80 60 45 mL = 314, i =7 c2-3t-8p mR = 1911 mR = 4096 21.26 mR = 1740 1518 10.72 mI = 1365 mI = 0 mI = 451 239 mL = 546, i = 5,6 mL = 0 mL = 64 48 36 mL = 548, i = 7 c3-3t-9p mR = 667 mR = 1365 25.08 mR = 1327 1158 1009 12.44 mI = 476 mI = 1, i = 4 mI = 300 159 84 45 mL = 191 mI = 0, i = 5..7 mL = 14 mL = 0 c4-3t-13p mR = 562 mR = 1365 39.45 mR = 1318 1150 1002 19.91 mI = 402 mI = 1, i = 4 mI = 298 158 84 44 mL = 161, i = 8..11 mI = 0, i = 5..7 mL = 14 10 8 6 4 mL = 158, i = 12 mL = 0 c5-3t-14p mR = 541 mR = 1365 42.91 mR = 1317 1149 1002 21.57 mI = 386 mI = 1, i = 4 mI = 297 158 84 44 mL = 155, i = 8..12 mI = 0, i = 5..7 mL = 14 10 8 6 4 3 mL = 154, i = 13 mL = 0ejecuciones totales, el m´todo exacto no ofrece el resultado correcto; es decir, el error producido es s´lo del e o14 %. Adem´s, a pesar de no ser la forma ´ptima de resoluci´n, el m´todo elige ejecutar con la mejor de a o o elas dos estrategias paralelas. En el resto de las ejecuciones, el m´todo proporciona la estrategia correcta ede resoluci´n, la estrategia LIFO para todas las pruebas, excepto para la configuraci´n c1-3t-5p, donde o oel mejor m´todo para resolver el problema es la ejecuci´n secuencial. e o2.12. Conclusiones En este cap´ıtulo hemos presentado una metodolog´ general para una amplia clase de algoritmos ıamaestro-esclavo, basada en modelos anal´ ıticos, que permite sintonizar aplicaciones paralelas en sistemasheterog´neos; considerando la heterogeneidad debida tanto a las diferencias en las velocidades de c´mputo e ode los procesadores, como a las diferencias en las comunicaciones entre ellos. Hemos propuesto un algoritmo de programaci´n din´mica para resolver el problema de optimizar la o aasignaci´n de recursos, basado en el modelo anal´ o ıtico anterior, que nos permite encontrar los par´metros ade una ejecuci´n ´ptima; incluyendo entre los par´metros, el conjunto ´ptimo de procesadores a utilizar o o a oen la resoluci´n de un problema. o
  • 87. 2.12. CONCLUSIONES 83Tabla 2.37: Distribuciones de tareas a los procesadores calculadas por el modelo y tiempo empleado para ejecutarel m´todo exacto que las calcula para los subsistemas heterog´neos del cluster para el problema de la FFT-2D, e epara el problema 8192 × 8192. Proporcional ´ Optima FIFO ´ Optima LIFO Conf. Distribuci´n o Distribuci´n o Tiempo Distribuci´n o Tiempo c6-2t-5p mR = 2389 mR = 4096 42.51 mR = 1805 1575 20.96 mI = 2389 mI = 0 mI = 468 248 c7-2t-8p mR = 1399 mR = 2731, i = 1,2 85.41 mR = 2615 2301 2025 43.13 mI = 999, i = 4..6 mR = 2730, i = 3 mI = 616 342 189 104 mI = 998, i = 7 mI = 0 c8-2t-8p mR = 989 mR = 2731, i = 1,2 88.48 mR = 2860 2518 2216 44.81 mL = 565, i = 4..6 mR = 2730, i = 3 mL = 192 160 134 112 mL = 566, i = 7 mL = 0 c1-3t-8p mI = 1575 mI = 1711 94.81 mI = 3749 2267 1252 692 44.99 mL = 630, i = 5,6 mL = 450, i = 5 mL = 92 76 64 mL = 632, i = 7 mL = 449, i = 6,7 c2-3t-8p mR = 1911 mR = 4096 88.13 mR = 3502 3082 44.50 mI = 1365 mI = 0 mI = 940 519 mL = 546, i = 5,6 mL = 0 mL = 59 49 41 mL = 548, i = 7 c3-3t-9p mR = 1334 mR = 2731, i = 1,2 101.42 mR = 2615 2301 2025 51.21 mI = 953 mR = 2730, i = 3 mI = 616 342 189 104 mL = 378 m I = mL = 0 mL = 0 c4-3t-13p mR = 1124 mR = 2731, i = 1,2 162.05 mR = 2615 2301 2025 85.05 mI = 803 mR = 2730, i = 3 mI = 616 342 189 104 mL = 321, i = 9..11 m I = mL = 0 mL = 0 mL = 324, i = 12 c5-3t-14p mR = 1082 mR = 2731, i = 1,2 178.46 mR = 2615 2301 2025 91.21 mI = 773 mR = 2730, i = 3 mI = 616 342 189 104 mL = 309 m I = mL = 0 mL = 0Tabla 2.38: Resultados obtenidos con la herramienta: estrategia que debemos usar en la resoluci´n de los proble- omas. Configuraci´no 1024 × 1024 2048 × 2048 4096 × 4096 8192 × 8192 c1-2t-3p Secuencial Secuencial - - c2-2t-5p Secuencial Secuencial - - c3-2t-5p FIFO FIFO - - c4-2t-8p FIFO FIFO - - c5-2t-10p FIFO FIFO - - c6-2t-5p LIFO LIFO LIFO LIFO c7-2t-8p LIFO LIFO LIFO LIFO c8-2t-8p LIFO LIFO LIFO LIFO c1-3t-5p Secuencial Secuencial Secuencial Secuencial c2-3t-8p LIFO LIFO LIFO LIFO c3-3t-9p LIFO LIFO LIFO LIFO c4-3t-13p LIFO LIFO LIFO LIFO c5-3t-14p LIFO LIFO LIFO LIFO Esta metodolog´ ha sido probada satisfactoriamente en un cluster heterog´neo con 2 problemas de ıa eprueba: el producto de matrices y la Transformada R´pida de Fourier bidimensional. a
  • 88. 84 CAP´ ITULO 2. EL PARADIGMA MAESTRO-ESCLAVO Hemos incluido esta metodolog´ en una herramienta autom´tica, que proporciona la estrategia a ıa autilizar en la resoluci´n del problema maestro-esclavo en una plataforma heterog´nea y la distribuci´n o e o´ptima de trabajos a los procesadores.o En cualquier caso, a´n existen problemas abiertos que nos permitir´n ampliar este trabajo: aunque u alas estrategias FIFO y LIFO representan a un amplio rango de problemas del tipo maestro-esclavo, elgrupo de problemas donde los resultados de los esclavos son aceptados por el maestro tan pronto comoest´n disponibles, no ha sido considerado por nuestra herramienta. Nos planteamos ahora, como trabajo efuturo, extender nuestra metodolog´ para cubrir tambi´n esta ultima clase de problemas. ıa e ´ Tambi´n pretendemos establecer una estrategia din´mica de distribuci´n de tareas basada en la carga e a ode las m´quinas del sistema: al iniciar la ejecuci´n, el programa comprueba la carga de cada m´quina y a o apredice la mejor distribuci´n de trabajo a los procesadores, resolviendo el problema con los par´metros o acalculados.
  • 89. Cap´ ıtulo 3El Paradigma Pipeline en SistemasHeterog´neos e3.1. Resumen En este cap´ıtulo estudiamos el rendimiento de una amplia clase de algoritmos pipeline en entornosheterog´neos. Del mismo modo que hicimos en el cap´ e ıtulo 2 para los algoritmos maestro-esclavo, norestringimos el concepto de heterogeneidad en el sistema unicamente a las diferencias en las velocidades de ´c´mputo de las m´quinas, sino que tambi´n consideramos las distintas capacidades en las comunicaciones o a e(secci´n 1.2). o La asignaci´n de tareas a los procesadores es un factor crucial que determina el rendimiento del algo- oritmo paralelo. Equilibrar la carga asignada a cada procesador, tomando en consideraci´n las diferencias oentre ellos, requiere una distribuci´n de tareas que asigne un n´mero diferente de procesos virtuales a cada o uprocesador. En este cap´ ıtulo abordamos el problema de encontrar la distribuci´n ´ptima en algoritmos o opipeline sobre un anillo de procesadores, desarrollamos un modelo anal´ ıtico que predice el rendimientodel sistema para el caso general y proponemos estrategias que nos permiten estimar los par´metros nece- asarios para resolver el problema en el menor tiempo posible: n´mero de procesos virtuales por procesador uy tama˜o de los paquetes enviados. n Hemos desarrollado tambi´n la herramienta llpW, que nos permite realizar de forma autom´tica una e adistribuci´n c´ o ıclica por bloques para los algoritmos pipeline en entornos heterog´neos. Esta herramienta esoporta pipelines con un n´mero de etapas muy superior al n´mero de procesadores f´ u u ısicos disponiblesen el sistema. Hemos probado nuestra herramienta con varios algoritmos de programaci´n din´mica. La progra- o amaci´n din´mica es una t´cnica de optimizaci´n combinatoria, ampliamente utilizada en la resoluci´n o a e o ode problemas, f´cilmente paralelizable mediante el paradigma pipeline. Los resultados computacionales, allevados a cabo sobre un cluster de PCs (secci´n 1.5.1) demuestran la utilidad de la herramienta y la oprecisi´n de las predicciones realizadas por el modelo anal´ o ıtico propuesto.3.2. Introducci´n o El paradigma pipeline ha sido extensamente estudiado en arquitecturas homog´neas [11, 12, 85, 107, e133, 149] y constituye la base de una importante clase de aplicaciones; por ejemplo, de muchos algoritmosparalelos para problemas de programaci´n din´mica [84, 126]. La mayor´ de algoritmos pipeline parale- o a ıa 85
  • 90. 86 CAP´ ITULO 3. EL PARADIGMA PIPELINElos presentan un comportamiento ´ptimo si se consideran simplemente desde el punto de vista te´rico, o ocuando se dispone de tantos procesadores como el tama˜o de la entrada. Sin embargo, muchos de ellos nmuestran un mal rendimiento cuando se ejecutan sobre las arquitecturas paralelas actuales, debido a quela implementaci´n de los algoritmos est´ fuertemente condicionada por la asignaci´n de procesos virtuales o a oa los procesadores f´ısicos y su simulaci´n, y por la granularidad del problema a resolver y de la arquitec- otura. Existen diversos estudios dedicados a caracterizar los par´metros de la arquitectura, especialmente ala latencia de la red para determinar su valor ´ptimo [46, 167] y a caracterizar los par´metros del pro- o ablema [11, 12, 85, 133]. Para conseguir una ejecuci´n ´ptima de un algoritmo pipeline, debemos emplear o ouna combinaci´n apropiada de todos estos factores, como se deduce de numerosos trabajos publicados o[36, 117, 148, 166, 168]. Se han proporcionado distintas aproximaciones software para intentar facilitar la programaci´n de opipelines. HPF [65, 97] es un lenguaje orientado a paralelismo de datos y en las approved extensions dela versi´n 2.0 se introducen constructores para expresar el paralelismo pipeline. Sin embargo, la unica o ´implementaci´n existente de HPF de acuerdo con algunas de estas extensiones, no considera la asig- onaci´n ´ptima de estos recursos. Algo similar ocurre con P 3 L [3, 59], un lenguaje orientado a esqueletos o oque permite expresar tales algoritmos y su combinaci´n con otros paradigmas de programaci´n. Se han o odesarrollado tambi´n librer´ para facilitar el dise˜o de programas paralelos pipeline: en [110, 111] se e ıas nencuentra la descripci´n de una librer´ de esqueletos que proporciona m´todos para la paralelizaci´n de o ıa e odatos y de tareas; y en [182] encontramos una librer´ que permite disponer de un pipeline y sub-pipelines; ıaes decir, un pipeline donde una de las etapas es, a su vez, otro pipeline. Sin embargo, ninguna de estaslibrer´ resuelve el problema de la distribuci´n ´ptima y en muy pocos casos se implementa un pipeline ıas o odonde el n´mero de etapas sea superior al n´mero de procesadores. u u llp (La Laguna Pipeline) [85, 129, 131] es una herramienta orientada a algoritmos pipeline en sis-temas homog´neos que hemos desarrollado. llp intentaba cubrir la ausencia de este tipo de herramientas epara simplificar la tarea del programador y facilitar el desarrollo de programas pipeline parametrizadosy mecanismos para obtener la distribuci´n ´ptima de trabajo a los procesadores. Est´ implementada o o autilizando las librer´ de paso de mensajes PVM [63, 78] y MPI [89, 134]; soporta la asignaci´n c´ ıas o ıclicapura y c´ıclica por bloques de acuerdo con las especificaciones del usuario; y trabaja con pipelines donde eln´mero de etapas puede ser mucho mayor que el n´mero de procesadores f´ u u ısicos disponibles en el sistema.Asimismo, el usuario puede determinar el tama˜o de los paquetes transmitidos entre los procesadores. nEsta misma idea ha sido incorporada al lenguaje llc [64], donde el usuario puede expresar el paralelismopipeline mediante el uso de pragmas de OpenMP [143, 144]. En entornos heterog´neos, el n´mero de trabajos realizados sobre algoritmos pipeline es m´s reducido e u a[33, 54, 56, 60, 112, 150, 170, 184]. En [54], por ejemplo, se compara la resoluci´n de problemas sobre oun anillo de procesadores en entornos homog´neos y heterog´neos. En [170] los autores buscan una bue- e ena distribuci´n de tareas mediante heur´ o ısticas, buscando el equilibrio de la carga y un volumen de lascomunicaciones adecuado; mientras que en [33] consideran la heterogeneidad debida al tipo de recursoy a las pol´ıticas de distribuci´n; y en [150] emplean pipelines donde el c´mputo y las comunicaciones o ose producen de forma solapada. Encontramos tambi´n sistemas para facilitar la distribuci´n de aplica- e ociones paralelas en sistemas heterog´neos, en [184] presentan un sistema denominado Prophet (Portable eResource management On Parallel HETerogeneous networks) al que le han a˜adido un soporte para nla distribuci´n equilibrada de carga din´mica. Sin embargo, la mayor´ de los trabajos [60, 112] est´n o a ıa apensados para problemas donde el n´mero de etapas es igual al n´mero de procesadores disponibles y u uno se permite la virtualizaci´n de los procesos. En [56] se presenta un trabajo que estudia heur´ o ısticaspara resolver el problema de optimizar la ejecuci´n de algoritmos de programaci´n din´mica sobre un o o aentorno heterog´neo, considerando distinto n´mero de procesos virtuales por procesador. Consideran que e ulos par´metros del sistema deben ser funciones de los par´metros del algoritmo e implementan el algorit- a amo de programaci´n din´mica realizando una fase de comunicaci´n, donde se produce la sincronizaci´n o a o ode todos los procesadores. Para poder trabajar en entornos heterog´neos, hemos introducido nuevas funcionalidades en nuestra eherramienta llp, generando una nueva versi´n denominada llpW (llp Weighted ). Esta nueva versi´n de o o
  • 91. 3.3. EL PARADIGMA PIPELINE 87la herramienta permite asignar un n´mero diferente de procesos virtuales a cada procesador y definir udistintos tama˜os de paquetes de datos a comunicar, dependiendo del tipo de las m´quinas. Adem´s, n a allpW puede ser utilizada en cualquier entorno, puesto que considera la plataforma homog´nea como un ecaso particular del entorno heterog´neo general, donde todas las m´quinas son del mismo tipo. e a Hemos realizado experimentos con nuestra herramienta para resolver varios problemas mediante pro-gramaci´n din´mica: el problema de la mochila unidimensional (subsecci´n 3.6.1), el problema de los o a ocaminos m´ ınimos (subsecci´n 3.6.2), el problema de la asignaci´n de recursos (subsecci´n 3.6.3) y el pro- o o oblema de la b´squeda de la subsecuencia com´n m´s larga (subsecci´n 3.6.4). Hemos utilizado algoritmos u u a ode programaci´n din´mica porque es una t´cnica f´cilmente paralelizable, mediante pipelines, sobre un o a e aanillo de procesadores. Los resultados computacionales obtenidos al realizar ejecuciones de algoritmospipeline sobre un cluster de PCs (secci´n 1.5.1) demuestran la utilidad de nuestra herramienta frente a ola versi´n homog´nea. o e Tambi´n hemos desarrollado un modelo anal´ e ıtico que considera la heterogeneidad debida tanto alc´mputo como a las comunicaciones entre los procesadores. Para predecir el tiempo de ejecuci´n so- o obre una plataforma heterog´nea, tomamos en consideraci´n el hecho de que el c´mputo de un pipeline e o oest´ fuertemente influido por el procesador m´s lento que trabaja en ´l. La capacidad predictiva del mode- a a elo la utilizamos para resolver el problema de la distribuci´n (o mapping) ´ptima (encontrar los par´metros o o aque minimizan el tiempo predicho por el modelo anal´ ıtico), en lugar de requerir una b´squeda ad hoc uentre varios par´metros. Implementamos un m´todo exacto de fuerza bruta y un m´todo heur´ a e e ıstico pararesolver esta minimizaci´n y verificamos la precisi´n de nuestras predicciones. o o El resto del cap´ıtulo lo hemos estructurado de la siguiente manera: En la secci´n 3.3 definimos el oparadigma pipeline y presentamos la librer´ que desarrollamos para resolver algoritmos pipeline sobre un ıaanillo de procesadores homog´neos, llp (secci´n 3.4) y su nueva versi´n, adaptada a entornos heterog´neos, e o o ellpW (secci´n 3.5). Validamos nuestra herramienta, comparando los resultados obtenidos con ambas oversiones (secci´n 3.6). En la secci´n 3.7 presentamos los modelos anal´ o o ıticos que hemos desarrollado parapredecir el tiempo de resoluci´n de estos problemas, considerando tres alternativas: cuando el n´mero de o uetapas del pipeline es igual al n´mero de procesadores (subsecci´n 3.7.1), cuando el n´mero de etapas es u o usuperior al n´mero de procesadores y se utiliza una distribuci´n c´ u o ıclica pura (subsecci´n 3.7.2) y cuando oel n´mero de etapas es superior y se resuelve mediante una distribuci´n c´ u o ıclica por bloques (subsecci´n o3.7.3). Validamos nuestro modelo anal´ ıtico comparando el tiempo estimado por el modelo con el tiemporeal obtenido en la ejecuci´n del programa (secci´n 3.8). Por ultimo, desarrollamos dos m´todos para o o ´ ecalcular los valores ´ptimos de los par´metros: un m´todo exacto y un m´todo heur´ o a e e ıstico (secci´n 3.9) y orealizamos una experiencia computacional que demuestra la precisi´n de nuestras predicciones (secci´n o o3.10). En la secci´n 3.11 se encuentran las conclusiones de este cap´ o ıtulo.3.3. El paradigma pipeline Tradicionalmente, una t´cnica que ha permitido aumentar la capacidad de ejecuci´n de instrucciones e oen un procesador consiste en dividir la ejecuci´n completa de la instrucci´n en varias actividades que o ose puedan realizar de forma solapada: b´squeda de la siguiente instrucci´n, b´squeda de los operandos, u o uejecuciones artim´ticas, etc. A esta t´cnica se le denomina pipeline y forma parte de la base del dise˜o e e nde muchos procesadores. Esta t´cnica de divisi´n del trabajo ha sido adaptada como t´cnica algor´ e o e ıtmica paralela de resoluci´n ode problemas, obteniendo el paradigma de programaci´n pipeline. Para resolver un problema es necesario oparticionar el conjunto de tareas en n partes, cada una de las cuales se denominan etapas del algoritmo.Una vez establecidas estas etapas, se reparten entre los p procesadores f´ ısicos disponibles en el sistema, quese encuentran configurados en forma de array unidimensional de procesadores. Cada etapa se alimentade datos que provienen del procesador situado a su izquierda en el array y env´ datos al procesador ıaque se encuentra a su derecha. La situaci´n m´s simple consiste en trabajar con un pipeline ideal donde o a
  • 92. 88 CAP´ ITULO 3. EL PARADIGMA PIPELINEdisponemos de tantos procesadores como etapas. Sin embargo, en la pr´ctica, el n´mero de etapas puede a usuperar al n´mero de procesadores f´ u ısicos disponibles. En este caso es habitual configurar el conjunto realde procesadores siguiendo una estructura de anillo unidireccional sobre el que se virtualiza el pipeline(figura 3.1).Figura 3.1: Topolog´ del sistema: todos los procesadores est´n unidos mediante una configuraci´n de anillo ıa a ounidireccional. Consideramos que el c´digo ejecutado en cada etapa del pipeline puede representarse mediante el oc´digo gen´rico de la figura 3.2: M iteraciones de un bucle, que consiste en recibir datos de la etapa o eanterior, operar con esos datos y enviar los valores calculados a la siguiente etapa. Hemos elegido estepseudoc´digo porque representa un amplio rango de c´mputos pipelines, por ejemplo, muchos algoritmos o oparalelos de programaci´n din´mica [84, 126, 129, 130]. Es necesario indicar que la primera etapa no o arecibe datos de etapas previas, ni la ultima realiza ning´n env´ ´ u ıo. 1 j = 0; 2 while (j < M) { 3 recibir (); // Excepto la primera etapa 4 computar (); 5 // Se env´a un elemento de tama~o w ı n 6 enviar (elemento w); // Excepto la ´ltima etapa u 7 j++; 8 }Figura 3.2: C´digo est´ndar de un algoritmo pipeline: M iteraciones de un bucle que consiste en recibir datos de o ala etapa anterior, operar con esos datos y enviar los valores calculados a la siguiente etapa. Para ilustrar el funcionamiento de un pipeline utilizamos diagramas de tiempo; es decir, un diagramadonde se especifica, de forma visual, el tiempo de c´mputo de cada procesador, as´ como las comunica- o ıciones realizadas. En la figura 3.3 se muestran diagramas de tiempo t´ ıpicos obtenidos en la ejecuci´n de un opipeline con n´mero de procesadores igual al n´mero de etapas, en entornos homog´neos y heterog´neos. u u e eLa figura 3.3-Izquierda representa un diagrama de tiempo para un pipeline homog´neo con 3 procesadores. eCada procesador es representado por una fila en el diagrama. Para cada uno de ellos, dibujamos con unrect´ngulo el tiempo t que una m´quina invierte en procesar una iteraci´n del algoritmo; y por l´ a a o ıneasdiscontinuas, el tiempo de comunicaci´n entre los procesadores (β + τ ∗ w) donde β y τ son la latencia oy ancho de banda respectivamente. En las secciones 1.2 y 1.4 especificamos la forma de modelar el costede una comunicaci´n mediante estos dos par´metros y en la secci´n 1.5.1 calculamos los valores de β ij o a oy τij para cada par de procesadores disponibles en nuestro cluster. En los diagramas puede observarsetambi´n las diferencias en el trabajo realizado por la primera etapa (sin recepci´n de datos), la ultima e o ´etapa (sin enviar informaci´n) y las etapas intermedias. o Algunos procesadores deben esperar un per´ ıodo de tiempo antes de poder comenzar a realizar suc´mputo, esperando por los datos que necesita. Despu´s de esta fase inicial de arranque el pipeline se en- o ecuentra trabajando a pleno rendimiento; es decir, ning´n procesador del pipeline est´ ocioso. Finalmente, u acuando los datos de entrada terminan, el pipeline pasa por una fase de finalizaci´n, donde los procesadores oconsecutivos van terminando progresivamente con una iteraci´n de c´mputo de diferencia. Este patr´n o o oregular aparece en el caso homog´neo y ha sido extensamente estudiado y modelado [11, 12, 85, 133]; en emuchos casos, se proporcionan los par´metros adecuados para conseguir ejecuciones ´ptimas. a o
  • 93. 3.3. EL PARADIGMA PIPELINE 89Figura 3.3: Diagramas de tiempo: Pipeline homog´neo vs. heterog´neo. El n´mero de procesadores es igual al e e un´mero de etapas. Izquierda: Pipeline homog´neo: El tiempo de c´mputo (t) y el tiempo de comunicaci´n (β + u e o oτ ∗ w) es el mismo para todos los procesadores. Derecha: Pipeline heterog´neo: Los procesadores tienen diferentes ecapacidades e invierten diferentes tiempos para computar su tarea (ti ) y en las comunicaciones (βi,i+1 +τi,i+1 ∗w),generando huecos en el diagrama de tiempo. Aunque en los ultimos a˜os se han realizado numerosos trabajos sobre el comportamiento de pipelines ´ nen sistemas heterog´neos [33, 54, 56, 60, 112, 150, 170, 184], su estudio a´n sigue siendo un problema e uabierto. En la figura 3.3-Derecha mostramos tambi´n el diagrama de tiempo para un pipeline heterog´neo e econ 3 procesadores (p = 3), cada uno de ellos con una potencia computacional diferente: el procesadorp0 es el procesador m´s lento y p2 el procesador m´s r´pido. Debido a la heterogeneidad, no s´lo los a a a otiempos de c´mputo son distintos, sino tambi´n los tiempos invertidos en las comunicaciones entre los o eprocesadores. Los rect´ngulos representan ahora el tiempo ti que el procesador pi necesita para computar auna iteraci´n, y las l´ o ıneas discontinuas el tiempo de comunicaci´n entre los procesadores: β i,i+1 +τi,i+1 ∗w oentre los procesadores pi y pi+1 . Debido al hecho de que cada procesador se comunica siempre con elsiguiente procesador en el anillo, en el resto de este cap´ ıtulo vamos a utilizar, por simplicidad, la notaci´n oβi , τi para representar los valores βi,i+1 y τi,i+1 respectivamente. En el caso homog´neo, como ya ha esido comentado, una vez que el procesador comienza a trabajar es alimentado con datos continuamente.Sin embargo, en el caso heterog´neo, pueden aparecer situaciones asim´tricas como consecuencia del e eefecto producido por el procesador m´s lento. Los procesadores m´s r´pidos pasan per´ a a a ıodos de tiempos(que denominamos huecos) sin poder trabajar, esperando recibir la informaci´n que necesitan de los oprocesadores anteriores en el pipeline. Por todo lo visto anteriormente se deduce que para obtener unaimplementaci´n eficiente, los procesadores deben comenzar a trabajar tan pronto como sea posible y ser oalimentados con datos cuando sea necesario; el cambio de contexto entre etapas es realizado cada vez quecomunican un valor. Cuando el n´mero de etapas de un pipeline es superior al n´mero de procesadores disponibles para u uejecutarlas, tenemos que seleccionar el tipo de distribuci´n a realizar: podemos asignar una unica eta- o ´pa por procesador (distribuci´n c´ o ıclica pura); o bien, obligar a cada procesador a computar variasetapas (distribuci´n c´ o ıclica por bloques). En este ultimo caso, las etapas realizadas en un mismo ´procesador se denominan procesos virtuales. Si optamos por la ultima opci´n, una de las decisiones ´ om´s importantes a tomar para resolver un problema es la cantidad de trabajo asignada a cada uno de los aprocesadores; es decir, el n´mero de procesos virtuales que se ejecutan en cada procesador. u El n´mero de procesos virtuales asignado a los procesadores se denomina grano (G). En el caso de uentornos homog´neos es habitual asignar a todos los procesadores el mismo valor de grano. Sin embargo, een sistemas heterog´neos suele ser interesante asignar a cada tipo de m´quina un valor de grano diferente e a(Gi ) en funci´n de su capacidad de c´mputo. Denominamos banda al conjunto de procesos virtuales o oque pueden ejecutarse simult´neamente sobre los p procesadores; es decir, una banda est´ compuesta por a a p−1 n i=0 Gi . Podemos calcular el n´mero de bandas que se producen al realizar el pipeline como: p−1 G . u i=0 i Otro factor a tener en cuenta es la forma en la que los datos son comunicados entre los procesadores.En lugar de realizar un env´ para cada elemento, el procesador almacena los datos en un buffer antes ıo
  • 94. 90 CAP´ ITULO 3. EL PARADIGMA PIPELINEde ser enviados. Cuando el buffer se llena, los datos se transmiten como si fueran un unico paquete. ´El uso del buffer reduce el n´mero de mensajes necesarios para resolver un problema y, por lo tanto, udisminuye tambi´n la sobrecarga en las comunicaciones. Sin embargo, al usar el buffer se produce un eretraso entre los procesadores, ya que un dato calculado por un procesador, no va a poder ser utilizadopor el procesador de su derecha, hasta que no haya calculado suficientes datos para llenar el buffer yenviarlo. El buffer utilizado en todos los procesadores de un sistema homog´neo suele tener el mismo etama˜o (B). En sistemas heterog´neos, puede decidirse entre utilizar el mismo tama˜o de buffer para los n e ndistintos procesadores o emplear tama˜os diferentes (Bi ). n Podemos concluir que existen par´metros fundamentales que debemos calcular para aconseguir una ejecuci´n ´ptima de un pipeline: los valores ´ptimos de G i y Bi . Obtener o o oestos valores es nuestro objetivo en este cap´ ıtulo. Pretendemos buscar un modelo anal´ ıtico que sea capaz de encontrar la soluci´n ´ptima para un o oalgoritmo pipeline con muchos par´metros. Adem´s, hay que tener en cuenta, que escribir un algoritmo a apipeline parametrizado requiere un esfuerzo considerable. Por este motivo, pretendemos simplificar estetrabajo, desarrollando una herramienta que permita escribir de forma sencilla este tipo de algoritmos.3.4. llp: Una herramienta para algoritmos pipeline en entornos homog´neos e La Laguna Pipeline, llp, es una herramienta para resolver problemas mediante el paradigma de pro-gramaci´n pipeline. llp est´ concebida como una librer´ basada en macros y su portabilidad est´ garan- o a ıa atizada debido a su implementaci´n empleando librer´ de paso de mensajes est´ndar (PVM [63, 78] y o ıas aMPI [89, 134]). La herramienta llp fue presentada en [85, 129] y permite mapping c´ ıclico puro y c´ ıclico por bloquesen un algoritmo pipeline de acuerdo a las especificaciones del usuario. En [82, 83, 131] se complet´ elodesarrollo de esta herramienta para el caso homog´neo, demostrando la eficiencia de los resultados para ediferentes tipos de problemas, a˜adi´ndole la funcionalidad del buffer y proporcion´ndole un mecanismo n e aque permite generar autom´ticamente el mapping ´ptimo [84, 133, 132]. a o llp se ha desarrollado siguiendo un dise˜o estructurado en capas o niveles (figura 3.4); donde cada nnivel proporciona una serie de servicios al nivel superior, ocultando los detalles de implementaci´n. El odise˜o facilita la portabilidad de la herramienta a distintos entornos, as´ como la inserci´n de nuevas n ı ofuncionalidades en la misma. Aunque la versi´n actual trabaja utilizando las librer´ PVM y MPI, las o ıasmodificaciones necesarias para incorporar nuevas librer´ son m´ ıas ınimas. El nivel inferior (figura 3.4) lo constituye la arquitectura de la m´quina sobre la que se est´n a aejecutando los programas; llp est´ preparada para ejecutar sobre cualquier tipo de arquitectura. a El siguiente nivel es el nivel de comunicaciones entre procesadores (figura 3.4). Las funcionesdisponibles para utilizar en niveles superiores incluyen las comunicaciones entre los procesadores f´ ısicos yla gesti´n del buffer de comunicaciones. El n´mero de procesadores f´ o u ısicos (p), con los que va a trabajarla herramienta, es definido por el usuario y se almacena en la variable num proc. Se considera que todoslos procesadores est´n unidos formando un anillo unidireccional (figura 3.1). Si se trabaja con num proc aprocesadores se asigna a cada procesador un nombre que se guarda en la variable ll fname, (desde 0 anum proc - 1). De forma que cada procesador env´ siempre los mensajes al procesador que tiene a su ıaderecha en el anillo y los recibe del procesador que tiene a su izquierda. Para un procesador cualquierapi , los procesadores con los que se relaciona son pright (right = (pi + 1) mod num proc), el procesador alque env´ los mensajes y plef t el procesador del que recibe los datos, donde ıa num proc − 1 si i = 0 left = i−1 en otro caso
  • 95. ´3.4. LLP: UNA HERRAMIENTA EN ENTORNOS HOMOGENEOS 91Figura 3.4: Estructura en niveles de la herramienta llp. Cada nivel proporciona una serie de servicios al nivelsuperior, ocultando los detalles de implementaci´n. o El procesador pi no se comunica con ninguno de los restantes procesadores del anillo. La herramientapermite decidir tambi´n el uso o no del buffer de datos y, en el caso de usarlo, establecer su tama˜o. e n Para realizar las comunicaciones se van a utilizar las funciones proporcionadas por dos librer´ de ıaspaso de mensajes est´ndar: MPI y PVM. Unicamente es necesario introducir en el programa una macro aindicando cu´l de las dos librer´ se quiere utilizar (#define MPI o #define PVM ). a ıas El siguiente nivel de llp (figura 3.4) se denomina nivel de virtualizaci´n de procesos. Un problema ose divide en tareas independientes y cada una de estas tareas va a ser ejecutada por un procesadordiferente. A estos procesos se les llama procesos virtuales y se les asigna un identificador (NAME ),comenzando por el valor 0. Si un problema se divide en STAGES etapas virtuales, los valores que se vana asignar a NAME est´n entre 0 y STAGES - 1. a Inicialmente, a cada procesador f´ ısico se le asigna el trabajo de la primera banda y comienza aejecutarse el proceso virtual con mayor nombre local (ll vname = grano - 1 ). Cuando este proceso necesiteun dato del proceso anterior (ll vname = grano - 2 ) le transfiere el control del programa mediante la macroIN de la herramienta. Esto lo hacen sucesivamente todos los procesos hasta llegar al primer proceso virtualde la banda. Este proceso, cuando requiera un dato, lo tiene que recibir del procesador f´ ısico anterior, esdecir, realiza una comunicaci´n entre procesadores (correspondiente al nivel inferior). Cuando el proceso ocon ll vname = 0 recibe el dato que necesita y calcula el que ha de pasarle al siguiente proceso, ledevuelve el control de la ejecuci´n del programa (macro OUT de la herramienta). Esto lo realizan todos olos procesos hasta volver a llegar al proceso con ll vname = grano - 1 que, al calcular su dato, lo env´ ıaal procesador f´ısico siguiente. Esto puede producir un retardo ya que un procesador debe esperar a queel anterior realice sus c´lculos para poder empezar a trabajar. Las transferencias de control internas al aprocesador se realizan con funciones de una librer´ est´ndar del lenguaje C (setjmp.h). Esta librer´ ıa a ıapermite realizar saltos condicionales entre etiquetas variables y permite diferenciar entre comunicacionesinternas y externas a los procesadores. Debido a que el cambio de contexto est´ implementado de forma amuy eficiente, la sobrecarga introducida por la herramienta es m´ ınima. El siguiente nivel es el nivel n´ cleo (figura 3.4). Se puede trabajar de dos formas distintas: grano uy c´ ıclico. Utilizando la estrategia grano, se trabaja con p procesadores, STAGES procesos virtuales y
  • 96. 92 CAP´ ITULO 3. EL PARADIGMA PIPELINEgrano ll grain (figura 3.34). Para trabajar con esta forma de ejecuci´n solamente es necesario declarar la osiguiente constante en el programa #define GRAIN. Con la ejecuci´n c´ o ıclica no existe el nivel de virtualizaci´n de procesos, ya que para este caso s´lo o oexiste un proceso virtual en cada instante en un procesador f´ ısico (G = 1) (figura 3.31). Para ejecutarutilizando esta t´cnica es necesario definir la siguiente macro en el programa principal: #define CICLICO. e Para estas dos estrategias, la herramienta proporciona todas las macros y funciones necesarias parala ejecuci´n del pipeline y las comunicaciones entre los procesos. o Independientemente del m´todo utilizado para resolver el problema (c´ e ıclico o con grano), la herra-mienta proporciona la posibilidad de enviar un mensaje a todos los procesadores del sistema (broadcast).Para poder realizarlo, es necesario que todos los procesadores tengan compartidas las variables que vana utilizar. El nivel m´s alto de la herramienta llp es el nivel de usuario (figura 3.4). Para utilizar llp no es anecesario que el usuario tenga conocimiento de las t´cnicas de programaci´n paralela, ya que s´lo tiene e o oque escribir un algoritmo para un pipeline del n´mero de procesadores que ´l defina y utilizar las macros u eIN y OUT para la comunicaci´n entre los procesos. o Este nivel nos proporciona las funciones para inicializar el pipeline (INITPIPE ), finalizar la ejecuci´n odel anillo y liberar la memoria asignada (EXITPIPE ). Estas dos funciones deben ser llamadas por losusuarios en sus programas, pero realizan todo el proceso de forma transparente, sin que el usuario tengaque preocuparse por las comunicaciones. En algunos casos puede interesar invertir el sentido del pipeline,la herramienta tambi´n proporciona una funci´n (REVERSE PIPE ), que permite modificar los nombres e of´ ısicos de los procesadores e intercambiar los nombres de sus vecinos derecho e izquierdo, para poderseguir estableciendo las comunicaciones. Figura 3.5: Efecto de la macro REVERSE PIPE : se invierte el sentido del pipeline. La herramienta est´ compuesta por varios ficheros, pero unicamente es necesario incluir en el programa a ´el fichero ll pipe.h e indicar si se va a ejecutar el mapping c´ ıclico puro o c´ ıclico por bloques y si se deseaemplear la versi´n PVM o la versi´n MPI. o o La figuras 3.6 y 3.7 ilustran la facilidad de uso al aplicar un esquema pipeline general. En la figura 3.6se muestra el c´digo general de un programa que utilice esta herramienta. En la parte superior (l´ o ıneas 1a 3) se especifican las caracter´ ısticas del pipeline: en este caso, un pipeline c´ ıclico por bloques utilizandoMPI para las comunicaciones; y se incluye la librer´ En la funci´n main, el programador siempre debe ıa. ollamar a las macros INITPIPE y EXITPIPE comentadas anteriormente (l´ ıneas 6 y 24 respectivamente).La macro PIPE (l´ ınea 19) es la encargada de ejecutar el pipeline. Recibe como argumento la rutina que seejecuta en cada proceso (solver 1()), el tama˜o del pipeline (N ) y el tama˜o del bloque (G) en la pol´ n n ıticac´ıclica por bloques. La macro PIPE introduce la rutina en un bucle, simulando los procesos virtualesasignados al procesador actual de acuerdo con la pol´ ıtica de mapping. La macro SET BUFIO (l´ ıneas 18 y 22) nos permite establecer, antes de ejecutar el pipeline, el n´mero ude elementos que se pueden almacenar en el buffer. Como aparece en la figura 3.6, varios pipelines puedenser ejecutados en un mismo programa, con diferentes funciones y distintos valores de grano y buffer. La figura 3.7 muestra el c´digo de la funci´n solver 1(), que implementa el pipeline virtual que debe ser o oejecutado. El usuario debe especificar el c´digo para el primer proceso, para el ultimo proceso y para todos o ´
  • 97. ´3.5. LLPW: UNA HERRAMIENTA EN ENTORNOS HETEROGENEOS 93 1 #define GRAIN 2 #define MPI 3 #include "ll pipe.h" 4 .... 5 int main (PARAMETERS) { 6 INITPIPE; 7 Tipo variable[MAX]; 8 9 if (ARGC != 7)10 abort();11 N = atoi(ARGV(1)); // Lectura de par´metros a12 M = atoi(ARGV(2));13 G1 = atoi(ARGV(3));14 G2 = atoi(ARGV(4));15 B1 = atoi(ARGV(5));16 B2 = atoi(ARGV(6));17 // Primer pipeline18 SET BUFIO(used, B1, sizeof(int)); // Especificar el n´mero de elementos en el buffer u19 PIPE(solver 1(N), N, G1); // Resoluci´n del pipeline o2021 // Segundo pipeline22 SET BUFIO(used, B2, sizeof(int)); // Especificar el n´mero de elementos en el buffer u23 PIPE(solver 2(M), M, G2); // Resoluci´n del pipeline o24 EXITPIPE;25 }Figura 3.6: Funci´n main(): ejecuta 2 pipelines, expandiendo la macro PIPE a N y M procesadores virtuales orespectivamente.los procesos intermedios de forma independiente. Debe declarar todas sus variables locales entre las macrosLOCAL VAR y BEGIN, escribir todo el c´digo y finalizar la funci´n con una macro denominada END. o oLa variable NAME identifica el proceso virtual en el pipeline para ejecutar el c´digo correspondiente. Se ousan las macros IN y OUT para establecer las comunicaciones con los vecinos izquierdo y derecho. llpproporciona tambi´n rutinas de entrada y salida paralelas, como GPRINTF utilizada en la l´ e ınea 11 dela figura 3.7. En [85] se demuestra que el rendimiento obtenido con llp en un sistema homog´neo es similar al eobtenido por un programador experimentado usando una librer´ est´ndar de paso de mensajes. ıa a3.5. llpW : Una herramienta para algoritmos pipeline en en- tornos heterog´neos e Debido a la portabilidad de las librer´ de paso de mensajes, el dise˜o actual de la herramienta ıas nllp permite la ejecuci´n de pipelines sobre sistemas heterog´neos como cualquier otro programa PVM o o eMPI. Sin embargo, al asignar la misma cantidad de trabajo a todas las m´quinas sin tener en cuenta asus velocidades, se estar´ infrautilizando la capacidad del sistema. Hemos adaptado nuestra herramienta ıaa la heterogeneidad del sistema, de forma que se asigne el trabajo a las m´quinas en funci´n de su ca- a opacidad computacional. En lugar de realizar un mapping c´ ıclico por bloques, con bloques de tama˜o G, nahora estudiaremos un mapping c´ ıclico por bloques vectorial, con un valor distinto de grano para cadatipo de m´quina (Gi ). Introducimos dos nuevas macros: INITPIPE W y PIPE W (figura 3.8). Hemos a
  • 98. 94 CAP´ ITULO 3. EL PARADIGMA PIPELINE 1 void solver 1 (int N) { 2 LOCAL VAR 3 int result; 4 BEGIN; 5 6 if (NAME == 0) 7 // C´digo para la primera etapa o 8 else 9 if (NAME == (N - 1)) {10 result = ... // C´digo para la ´ltima etapa o u11 GPRINTF("n %d: Resultado = % d",NAME,result);12 }13 else14 // C´digo para una etapa intermedia del pipeline o15 END;16 }Figura 3.7: Funci´n solver 1(): c´digo que ejecutan los procesos virtuales. Se escriben c´digos independientes o o opara el primer y el ultimo proceso y para todos los procesos intermedios. ´a˜adido la terminaci´n W por establecer un peso (Weight) a cada m´quina al realizar la distribuci´n. n o a oEstas macros reemplazan las macros an´logas en el caso homog´neo. La macro INITPIPE W configura a eel pipeline heterog´neo y la macro PIPE W gestiona la ejecuci´n del pipeline. Utilizamos un array de- e onominado arrayG[] para almacenar la granularidad de los diferentes procesadores que necesitamos en elcaso heterog´neo. e 1 #define PIPE W(f, ST, arrayG) { 2 int aux; 3 unsigned ll bands; 4 STAGES = (ST); 5 // El array llp TypeMachines[] contiene los tipos de todas las m´quinas a 6 // Se almacena en ll grain el grano que le corresponde al procesador 7 ll grain = arrayG[llp TypeMachines[ll fname]]; 8 // El procesador ll fname calcula el nombre (NAME) de su primer proceso virtual 9 // Se suman los granos de los procesadores desde 0 hasta ll fname10 NAME = sumatorio(0, ll pname, arrayG[llp TypeMachines[i]] - 1);11 // Se calcula el n´mero total de procesos virtuales en una banda como u12 // el sumatorio de los granos asignados a todos los procesadores13 total grain = sumatorio(0, numproc -1, arrayG[llp TypeMachines[i]]);14 // Se calcula el n´mero de bandas del pipeline heterog´neo u e15 ll bands = num bands W(STAGES, arrayG, llp TypeMachines);16 // Se realiza toda la ejecuci´n del pipeline o17 for (ll pipe i = 0; ll pipe i <= ll bands; ll pipe i++) {18 if (NAME <= (STAGES - 1)) f;19 NAME = NAME + total grain ;20 }21 }Figura 3.8: Macro PIPE W : Macro que realiza la ejecuci´n del pipeline heterog´neo, considerando las diferencias o eentre las m´quinas del sistema. a
  • 99. 3.6. COMPARATIVA LLP VS LLPW 95 Para realizar la asignaci´n correcta de los valores de granos a las m´quinas, el sistema llpW necesita o ainformaci´n sobre las capacidades de los procesadores del cluster. El fichero llpcluster.conf almacena el oconjunto completo de m´quinas que configuran el cluster. Cada l´ a ınea de este fichero contiene una cadenacon el nombre de la m´quina y un entero que identifica su tipo. La figura 3.9 muestra el fichero de aconfiguraci´n llpcluster.conf para nuestro cluster (secci´n 1.5.1), donde el tipo es igual a 0, 1 y 2 para o olos procesadores r´pidos, intermedios y lentos respectivamente. abeowulf1.csi.ull.es 0beowulf2.csi.ull.es 0beowulf3.csi.ull.es 0beowulf4.csi.ull.es 0beowulf5.csi.ull.es 1beowulf6.csi.ull.es 1beowulf7.csi.ull.es 1beowulf8.csi.ull.es 1beowulf9.csi.ull.es 2beowulf10.csi.ull.es 2beowulf11.csi.ull.es 2beowulf12.csi.ull.es 2beowulf13.csi.ull.es 2beowulf14.csi.ull.es 2 Figura 3.9: Fichero de configuraci´n llpcluster.conf para nuestro cluster con 3 tipos de m´quinas. o a La macro INITPIPE W inicializa el vector llp TypeMachines[] para cada uno de los procesadoresinvolucrados en la ejecuci´n actual, de acuerdo a la especificaci´n del fichero llpcluster.conf. El elemento o ollp TypeMachines[i] almacena el tipo correspondiente al procesador pi . La macro PIPE W(solver( ),N, arrayG) ejecuta un pipeline sobre un entorno heterog´neo. Al proceso virtual i le corresponde una egranularidad de Gi = arrayG[llp T ypeM achines[i]] en cada etapa. Debido al mecanismo de cambio decontexto usado para la virtualizaci´n en el caso homog´neo, el rendimiento de la herramienta no se ve o eafectado por la introducci´n de estas dos nuevas macros. o3.6. Comparativa llp vs llpW La primera prueba que hemos realizado para validar nuestra herramienta y demostrar su eficienciaen entornos heterog´neos, ha consistido en llevar a cabo una comparativa entre los resultados obtenidos epara una serie de problemas al utilizar una herramienta dise˜ada para entornos homog´neos (llp), frente n ea la herramienta adaptada a las plataformas heterog´neos (llpW ). Hemos empleado la versi´n MPI de e ola librer´ en ambos casos. ıa Para realizar las pruebas, hemos utilizado el cluster compuesto unicamente por los dos tipos de ´m´quinas con un nivel de heterogeneidad m´s alto: las 4 m´quinas r´pidas y 4 m´quinas lentas (secci´n a a a a a o1.5.1). En esta secci´n, no pretendemos encontrar la distribuci´n ´ptima para minimizar el tiempo total o o ode ejecuci´n paralelo, simplemente deseamos comparar los resultados con las dos herramientas; por lo otanto, vamos a realizar, en cada caso, una ejecuci´n por bloques con diferente n´mero de procesadores o u(p = 2, 4, 5, 6 y 8) y distintos tama˜os de buffer. En el caso de la herramienta homog´nea se asigna n ea todos los procesadores la misma cantidad de trabajo (el mismo valor de grano). Para la herramientaheterog´nea hemos considerado las m´quinas r´pidas aproximadamente 3 veces m´s r´pidas que las e a a a am´quinas lentas, y asignamos un valor de grano GR ≈ 3 ∗ GL . De nuevo queremos indicar, que este valor ano es la proporci´n exacta entre los dos tipos de m´quinas, se trata de un valor aproximado elegido para o arealizar estos experimentos.
  • 100. 96 CAP´ ITULO 3. EL PARADIGMA PIPELINE En todos los casos, los problemas a resolver que hemos seleccionado son algoritmos de programaci´n odin´mica [103]: el problema de la mochila unidimensional, el problema de caminos m´ a ınimos, el problema deasignaci´n de recursos y el problema de la b´squeda de la subsecuencia m´s larga. Como ya comentamos o u aen el cap´ ıtulo 2, la t´cnica de programaci´n din´mica es una importante t´cnica de resoluci´n de problemas e o a e oque se aplica a problemas de optimizaci´n combinatoria. Se emplea cuando la soluci´n a un problema se o oobtiene como resultado de una secuencia de decisiones: se comprueban todas las secuencias de decisionesy se selecciona la mejor. Con la programaci´n din´mica se consigue evitar calcular la misma soluci´n o a om´s de una vez: la soluci´n de un subproblema se almacena en una estructura de datos para usarla a oposteriormente. Se comienza con los subproblemas m´s peque˜os y se combinan sus soluciones para a nresolver problemas cada vez mayores, hasta llegar al problema completo. Normalmente, la paralelizaci´n ode la programaci´n din´mica se realiza mediante algoritmos pipeline. o a A continuaci´n, describimos los problemas y presentamos los resultados obtenidos para cada uno de el- olos con las dos herramientas. Los c´digos utilizados para las dos herramientas (homog´nea y heterog´nea), o e ela unica diferencia radica en la modificaci´n de los par´metros de la ejecuci´n. ´ o a o3.6.1. Problema de la mochila unidimensional Dado un contenedor o mochila de capacidad M , se trata de introducir en ´l N objetos, cada uno econ un peso wn y un beneficio obtenido al incluirlo en la mochila pn . El problema consiste en introducirtodos los objetos posibles en la mochila, hasta que no quepa ning´n objeto m´s, maximizando el beneficio u aobtenido. Matem´ticamente se trata de maximizar el beneficio m´ximo que se puede obtener con esos a a ∗objetos y para esa capacidad (fn (C)):fn (C) = m´ n−1 ∗ (C), pn + fn−1 ∗ (C − wn )}, si C ≥ wn , ın{ffn (C) = fn−1 ∗ (C), si C < wn ,f0 (C) = 0, para todo C, Vamos a trabajar con dos instancias del problema (un problema peque˜o y otro de mayor tama˜o): n n 1. Disponemos de 5000 objetos (N = 5000) y una capacidad de la mochila de M = 20000. 2. Disponemos de 12000 objetos (N = 12000) y una capacidad de la mochila de M = 30000. En ambos casos, los pesos y los beneficios de los objetos disponibles para ser introducidos en la mochilaoscilan entre 1 y 100, no existe ning´n elemento con un peso o un beneficio igual a 0. u Algoritmo secuencial La figura 3.10 presenta el c´digo ejecutado para resolver el problema de forma secuencial. Se inicializa oel vector fanterior a cero (l´ ıneas 8 y 9) y, a continuaci´n, se comienza a modificar el vector de la etapa oactual. Para cada iteraci´n se comprueba si el objeto debe incluirse o no en la mochila. Una vez actualizada ola fila correspondiente a la etapa actual, se intercambian los valores de los vectores fanterior y factualpara poder usarlos correctamente en la etapa siguiente (l´ ıneas 24 a 26). Algoritmo paralelo En la paralelizaci´n de este algoritmo se necesitan tantos procesos como n´mero de objetos disponibles. o uSe asigna a cada proceso un objeto (name), con peso w[name] y beneficio p[name]. A cada uno se leasocia una fila de la matriz de salida. En la figura 3.11 se encuentra la funci´n que resuelve el problema ode forma paralela. Este c´digo es el mismo para llp y llpW. o
  • 101. 3.6. COMPARATIVA LLP VS LLPW 97 1 void mochila01 sec (void) { 2 unsigned v1, v2; 3 int c, k; 4 unsigned *factual, *fanterior, *faux; 5 6 // Asignaci´n de memoria a ’factual’ y ’fanterior’ o 7 8 for (c = 0; c <= C; c++) 9 fanterior[c] = 0;1011 for (k = 1; k <= N; k++) {12 for (c = 0; c <= C; c++) {13 if (c < w[k-1]) // El elemento no cabe en la mochila14 factual[c] = fanterior[c];15 else { // El elemento se introduce en la mochila16 v1 = fanterior[c - w[k-1]] + p[k-1];17 v2 = fanterior[c];18 if (v1 > v2)19 factual[c] = v1;20 else21 factual[c] = v2;22 }23 }24 faux = fanterior; // Se intercambian los valores de los vectores25 fanterior = factual;26 factual = faux;27 }28 printf("tGanancia total: %u", fanterior[C]);29 } Figura 3.10: Funci´n que resuelve el problema de la mochila unidimensional de forma secuencial. o En la figura 3.11 s´lo se muestra el c´digo de las etapas intermedias. La primera y ultima etapa se o o ´implementan de forma similar: en la primera etapa se elimina la recepci´n de datos (llamada a la macro oIN ) y en la ultima se elimina el env´ de informaci´n (macro OUT ). En las etapas intermedias se recibe ´ ıo oun elemento del proceso anterior, se actualiza la matriz f y se env´ al proceso siguiente. Despu´s se ıa ecomprueba si el objeto asociado (objeto name, donde name es el nombre del proceso) cabe en la mochilay, si es as´ se modifica f . Vuelve a repetirlo hasta que haya actualizado toda la fila de la matriz. ı, Resultados computacionales Hemos resuelto inicialmente el problema de la mochila unidimensional con N = 50000 objetos ycapacidad de la mochila M = 20000. En la tabla 3.1 presentamos los resultados para el subsistemahomog´neo de las m´quinas r´pidas. Los resultados que aparecen en la tabla se han obtenido con llp. e a aEstas ejecuciones pueden realizarse tambi´n con llpW, pero los resultados son tan parecidos que no los ehemos incluido. En la tabla aparece el n´mero de procesadores utilizados (columna p), la configuraci´n u ode los procesadores (columna Configuraci´n), el valor del buffer, el valor del grano y el tiempo total de oejecuci´n en segundos. En la columna Configuraci´n de las tablas de esta secci´n, representamos por R a o o oun procesador r´pido y por L a un procesador lento y escribimos una letra por cada procesador utilizado aen la ejecuci´n. o En la tabla 3.1 se observa que el tiempo de ejecuci´n se reduce cuando se ejecuta con 4 procesadores ofrente al tiempo de ejecuci´n con 2 procesadores. En la tabla 3.2 se introducen los procesadores lentos en oel sistema anterior y comparamos los resultados obtenidos con las dos herramientas. La tabla presenta
  • 102. 98 CAP´ ITULO 3. EL PARADIGMA PIPELINE 1 void mochila01 par(void) { 2 LOCAL VAR 3 int h, i; 4 int result; 5 unsigned *f; 6 BEGIN; 7 8 . . . 910 // Procesos intermedios1112 for (i = 0; i <= C; i++) // Inicializaci´n o13 f[i] = 0;1415 for (i = 0; i <= C; i++) {16 IN(&h); // Recepci´n del proceso anterior o17 f[i] = max(f[i], h);18 if (C >= i + w[name])19 f[(i + w[name])] = h + p[name];20 OUT(&f[i], 1, sizeof(unsigned)); // Env´o al siguiente proceso ı21 }2223 . . .2425 END; // Sincronizaci´n entre procesos o26 }Figura 3.11: Funci´n que resuelve el problema de la mochila unidimensional de forma paralela. Los c´digos de o ola primera y la ultima etapa son muy similares al de las etapas intermedias y no se incluyen en la figura. ´Tabla 3.1: Tiempos de ejecuci´n obtenidos al resolver un problema de la mochila unidimensional con N = 5000 oobjetos y una capacidad de la mochila de M = 20000 sobre el subsistema homog´neo de las m´quinas r´pidas. El e a aproblema se resuelve utilizando llp con una distribuci´n por bloques, diferente n´mero de procesadores y con 3 o utama˜os de buffer distintos. n Problema: N = 5000 - M = 20000 p Configuraci´n Buffer Grano Tiempo Real o 2 RR 10000 2500 79.39 2 RR 5000 2500 70.37 2 RR 2500 2500 65.84 4 RRRR 10000 1250 51.45 4 RRRR 5000 1250 39.89 4 RRRR 2500 1250 32.77un formato muy similar al de la tabla anterior, a˜adiendo los datos correspondientes a llpW (grano de nlos procesadores r´pidos, grano de los procesadores lentos y tiempo real de ejecuci´n) y el porcentaje de a omejora obtenido al ejecutar el problema con llpW. Como se especific´ en la secci´n 3.6, los valores de o ograno se han calculado para una distribuci´n por bloques, utilizando la proporci´n G R ≈ 3 ∗ GL . o o En la tabla 3.2 se observa que existe una gran diferencia entre los resultados de llp y llpW. En llp,al introducir los procesadores lentos, se produce un retraso en la resoluci´n del problema, obteni´ndose o eun mayor tiempo de ejecuci´n. Si se comparan los resultados para p = 5, 6 y 8 (las combinaciones con o
  • 103. 3.6. COMPARATIVA LLP VS LLPW 99Tabla 3.2: Tiempos de ejecuci´n obtenidos al resolver un problema de la mochila unidimensional con N = 5000 oobjetos y una capacidad de la mochila de M = 20000. El problema se resuelve utilizando una distribuci´n por obloques, empleando diferente n´mero de procesadores y con 3 tama˜os de buffer distintos. u n Problema: N = 5000 - M = 20000 Herramienta llp Herramienta llpW Tiempo Tiempo Porcentaje p Configuraci´n o Buffer Grano Real GranoR GranoL Real de mejora 5 RRRRL 10000 1000 77.31 1154 384 50.95 34.10 % 5 RRRRL 5000 1000 64.31 1154 384 38.16 40.66 % 5 RRRRL 2500 1000 58.29 1154 384 31.05 46.73 % 6 RRRRLL 10000 833 83.44 1071 358 55.21 33.83 % 6 RRRRLL 5000 833 64.19 1071 358 37.89 40.97 % 6 RRRRLL 2500 833 55.03 1071 358 29.08 47.15 % 8 RRRRLLLL 10000 625 90.32 938 312 58.01 35.78 % 8 RRRRLLLL 5000 625 61.31 938 312 38.60 37.03 % 8 RRRRLLLL 2500 625 48.39 938 312 26.18 45.91 %procesadores lentos) vemos que para el tama˜o de buffer mayor el tiempo empeora al incrementar el nn´mero de procesadores, mientras que para los tama˜os de buffer m´s peque˜os el tiempo se reduce al u n a na˜adir procesadores. Sin embargo, en ning´n caso se consigue mejorar los resultados con el subsistema n uhomog´neo de las m´quinas r´pidas. e a a Sin embargo, si ejecutamos el programa utilizando llpW, comprobamos que los tiempos de ejecuci´n ocon las combinaciones que incluyen procesadores lentos, son mejores que los tiempos de ejecuci´n para el osubsistema homog´neo de los 4 procesadores r´pidos, excepto para el tama˜o mayor de buffer, donde con e a n5 procesadores s´ se reduce el tiempo de ejecuci´n, pero al introducir m´s procesadores el tiempo vuelve ı o aa aumentar. Por ejemplo, para buffer = 2500, el tiempo de ejecuci´n para p = 8 reduce en m´s de un o a20 % el tiempo de ejecuci´n para p = 4. Observando la columna del Porcentaje de mejora observamos oque en las configuraciones con procesadores lentos, la mejora obtenida se encuentra entre el 33 % y el47 %, lo que supone un factor de reducci´n importante. En la figura 3.12 comparamos de forma gr´fica o alos tiempos conseguidos al resolver este problema empleando las dos herramientas: homog´nea (figura e3.12-Izquierda) y heterog´nea (figura 3.12-Derecha). eFigura 3.12: Tiempos de ejecuci´n obtenidos al resolver el problema de la mochila unidimensional con N = 5000 oobjetos y capacidad de la mochila M = 20000. Izquierda: utilizando la herramienta homog´nea (llp). Derecha: eUtilizando la herramienta para los sistemas heterog´neos (llpW ). e En la figura 3.12 se observan f´cilmente las diferencias entre los dos resultados y la utilidad de la he- arramienta adaptada a entornos heterog´neos, frente a herramientas dise˜adas para sistemas homog´neos: e n e
  • 104. 100 CAP´ ITULO 3. EL PARADIGMA PIPELINEmientras que en el caso de la ejecuci´n con llp se produce un gran incremento en los tiempos obtenidos oal a˜adir los procesadores lentos, al utilizar llpW la aceleraci´n pr´cticamente se mantiene o disminuye n o adependiendo del tama˜o del buffer. n A continuaci´n resolvemos el segundo problema de la mochila unidimensional (N = 12000 objetos oy una capacidad de la mochila de M = 30000). En la tabla 3.3 se presentan los resultados para elsubsistema homog´neo de los 4 procesadores r´pidos y en la tabla 3.4 los resultados para el sistema e aheterog´neo utilizando las dos herramientas (llp y llpW ) con una distribuci´n por bloques y diferentes e otama˜os de buffer. nTabla 3.3: Tiempos de ejecuci´n obtenidos al resolver un problema de la mochila unidimensional con N = 12000 oobjetos y una capacidad de la mochila de M = 30000 sobre el subsistema homog´neo de las m´quinas r´pidas. e a aEl problema se resuelve utilizando llp con distribuciones por bloques, diferente n´mero de procesadores y con 3 utama˜os de buffer distintos. n Problema: N = 12000 - M = 30000 p Configuraci´n Buffer Grano Tiempo Real o 2 RR 15000 6000 391.54 2 RR 7500 6000 306.19 2 RR 3750 6000 289.70 4 RRRR 15000 3000 336.63 4 RRRR 7500 3000 223.68 4 RRRR 3750 3000 205.82Tabla 3.4: Tiempos de ejecuci´n obtenidos al resolver un problema de la mochila unidimensional con N = 12000 oobjetos y una capacidad de la mochila de M = 30000. El problema se resuelve con distribuciones por bloques,empleando diferentes n´mero de procesadores y con 3 tama˜os de buffer distintos. u n Problema: N = 12000 - M = 30000 Herramienta llp Herramienta llpW Tiempo Tiempo Porcentaje p Configuraci´n o Buffer Grano Real GranoR GranoL Real de mejora 5 RRRRL 15000 2400 803.26 2754 984 387.38 51.77 % 5 RRRRL 7500 2400 564.69 2754 984 209.55 62.89 % 5 RRRRL 3750 2400 514.33 2754 984 185.54 63.93 % 6 RRRRLL 15000 2000 572.36 2545 910 426.51 25.48 % 6 RRRRLL 7500 2000 260.04 2545 910 210.25 19.15 % 6 RRRRLL 3750 2000 212.22 2545 910 177.37 16.42 % 8 RRRRLLLL 15000 1500 492.90 2211 789 479.82 2.65 % 8 RRRRLLLL 7500 1500 251.78 2211 789 205.86 18.24 % 8 RRRRLLLL 3750 1500 187.69 2211 789 163.87 12.69 % Observamos, en las tablas 3.3 y 3.4, que tambi´n se produce un incremento en el tiempo de eje- ecuci´n cuando utilizamos llp e introducimos en la plataforma de ejecuci´n los procesadores m´s lentos o o a(excepto para la ejecuci´n con p = 8 y buffer = 3750). Este empeoramiento de los resultados se observa oespecialmente cuando ejecutamos el programa con 5 procesadores. Para la herramienta heterog´nea se observa, en las tablas 3.3 y 3.4, que los tiempos de ejecuci´n e ocon las combinaciones que incluyen procesadores lentos reducen los tiempos de ejecuci´n del subsistema ohomog´neo de los 4 procesadores r´pidos, excepto para el tama˜o mayor de buffer. En este caso, para 8 e a nprocesadores y el tama˜o m´s peque˜o de buffer, el tiempo de ejecuci´n disminuye en un 20 % respecto al n a n otiempo de ejecuci´n para p = 4. En este caso, el mayor porcentaje de mejora se obtiene con 5 procesadores, o
  • 105. 3.6. COMPARATIVA LLP VS LLPW 101donde se alcanza el 63 %, mientras que para p = 6 y 8 este porcentaje es bastante menor. En la figura 3.13comparamos los tiempos obtenidos con las dos herramientas: llp (figura 3.13-Izquierda) y llpW (figura3.13-Derecha). Para este problema se observa tambi´n que se produce un descenso general en los tiempos ede ejecuci´n, cuando adaptamos la herramienta a los entornos heterog´neos. o eFigura 3.13: Tiempos de ejecuci´n obtenidos al resolver el problema de la mochila unidimensional con N = 12000 oobjetos y capacidad de la mochila M = 30000. Izquierda: utilizando la herramienta homog´nea (llp). Derecha: eUtilizando la herramienta para los sistemas heterog´neos (llpW ). e3.6.2. El problema de caminos m´ ınimos El problema consiste en encontrar el camino de m´ ınimo coste desde un punto de origen a un conjunto depuntos destino. El problema se denomina de caminos m´ ınimos (o path planning). Para resolver el problemautilizamos una matriz de costes, A, de dimensiones N × N , donde el valor A[i][j] con i = 0, . . . , N − 1y j = 0, . . . , N − 1, representa el coste asociado al punto P = (i, j). Los valores de los costes m´ ınimospara cada uno de los puntos destino se almacenan en otra matriz, f , tambi´n de dimensiones N × N , edenominada matriz de costes m´ ınimos. Cada punto P = (i, j) de la matriz puede tener hasta 8 vecinos, denotados por las iniciales de lospuntos cardinales (figura 3.14).Figura 3.14: Definici´n de los vecinos de un punto P (i, j) de la matriz de caminos m´ o ınimos. Los vecinos sedenotan por las iniciales de los puntos cardinales. El coste para ir desde el punto P hasta cualquiera de sus vecinos Q viene determinado por lasecuaciones:C(P, Q) = (A(P ) + A(Q))/2, si Q = N, S, E, O, √C(P, Q) = (A(P ) + A(Q)) ∗ 2/2, si Q = N O, N E, SO, SE,donde A(P ) es el coste asociado al punto P de la matriz. Si P = (i, j) entonces A(P ) = A[i][j].
  • 106. 102 CAP´ ITULO 3. EL PARADIGMA PIPELINE Hemos considerado dos casos particulares de este problema a resolver en este trabajo: 1. Una matriz de tama˜o 3000 × 3000, con un obst´culo central en forma de V invertida. n a 2. Una matriz de tama˜o 4200 × 4200, con un obst´culo central en forma de U . n a Consideramos que el coste de todos los elementos de la matriz es 1, excepto el de aquellos elementosque formen parte de un obst´culo, que representamos mediante puntos de coste infinito (∞) en la matriz. aAdem´s, consideramos que el borde de la matriz (primera y ultima fila y primera y ultima columna) tiene a ´ ´un coste infinito. En la figura 3.15 se puede observar la forma en la que se almacena la informaci´n del oproblema para un ejemplo peque˜o: una matriz de tama˜o 8 × 8 con un obst´culo central en forma de U. n n aFigura 3.15: Ejemplo de problema de caminos m´ ınimos, con una matriz de tama˜o 8 × 8 con un obst´culo central n aen forma de U . Algoritmo secuencial Para resolver este problema, se realizan dos tipos de iteraciones, denominadas red y blue. Estasiteraciones se llevan a cabo de forma alternativa, hasta que no se produzca ning´n cambio en la matriz udurante una iteraci´n. La figura 3.16 muestra el c´digo de la funci´n principal que resuelve este problema o o ode forma secuencial. 1 void Caminos Minimos seq(void) { 2 cambio = 1; 3 while (cambio) { 4 cambio = 0; 5 RedSweep(); // Iteraci´n ’Red’ o 6 if (cambio) { 7 cambio = 0; 8 BlueSweep(); // Iteraci´n ’Blue’ o 9 }10 }11 } Figura 3.16: Funci´n principal que resuelve el problema del camino m´ o ınimo de forma secuencial. La diferencia entre los dos tipos de iteraciones se centra en el orden en el que se recorre la matriz. Enla iteraci´n red se opera sobre la matriz f en orden ascendente para las filas y las columnas, de forma oque para cada posici´n P , se actualiza el valor del mejor coste si existe alg´n camino mejor que el actual o uque pase por uno de los vecinos red de P , que ser´ los vecinos O, NO, N, NE. La figura 3.17 muestra ıanel c´digo a ejecutar para este tipo de iteraci´n. o o
  • 107. 3.6. COMPARATIVA LLP VS LLPW 103 1 void RedSweep(void) { 2 unsigned i, j; 3 4 for (i = 1; i < N-1; i++) 5 for (j = 1; j < N-1; j++) 6 Sweep(RED, i, j); 7 } Figura 3.17: C´digo que implementa la iteraci´n red. o o En la figura 3.17 se observa que, en la iteraci´n red, la matriz se recorre en orden ascendente de filas oy columnas. La funci´n Sweep se encarga de comprobar los costes debidos a los vecinos correspondientes oal tipo de iteraci´n y asignar a la posici´n (i, j) de la matriz de costo el valor del camino m´ o o ınimo;almacenando si se produce alg´n cambio en la matriz. Esta funci´n se utiliza en las dos iteraciones; el u oprimer par´metro indica cu´l de las dos iteraciones se ejecuta y decide qu´ vecinos est´n involucrados en a a e ael c´lculo del coste. a El coste m´ ınimo para un punto P se calcula mediante la ecuaci´n: of (P ) = m´ ın{f (P ), f (O) + C(O, P ), f (N ) + C(N, P ), f (N O) + C(N O, P ), f (N E) + C(N E, P )} En la iteraci´n blue se utiliza un orden descendente en filas y columnas para recorrer la matriz. oPara actualizar el valor de la matriz en un punto P se usan los vecinos blue de este punto (E, SE, S ySO). La figura 3.18 muestra el c´digo de esta iteraci´n. o o 1 void BlueSweep(void) { 2 int i, j; 3 4 for (i = N-2; i > 0; i--) 5 for (j = N-2; j > 0; j--) 6 Sweep(BLUE, i, j); 7 } Figura 3.18: C´digo que realiza la iteraci´n blue. o o En la figura 3.18 se observa que el c´digo es el mismo que para la iteraci´n red, modificando unicamente o o ´el orden en que se recorre la matriz y el primer par´metro de la funci´n Sweep. El coste m´ a o ınimo para unpunto P se calcula mediante la ecuaci´n:of (P ) = m´ ın{f (P ), f (E) + C(E, P ), f (S) + C(S, P ), f (SO) + C(SO, P ), f (SE) + C(SE, P )} Algoritmo Paralelo En la paralelizaci´n de este algoritmo se mantienen los dos tipos de iteraciones: red y blue. En la ofigura 3.19 se encuentra el c´digo correspondiente a la funci´n principal que resuelve el problema de o oforma paralela. Para resolver este problema primero es necesario ejecutar un pipeline donde la funci´n a ejecutar oes una iteraci´n red (l´ o ınea 7 del c´digo) y posteriormente se ejecuta otro pipeline donde se realiza la oiteraci´n blue (l´ o ınea 14). Es importante indicar que para poder realizar el recorrido de la matriz en orden
  • 108. 104 CAP´ ITULO 3. EL PARADIGMA PIPELINE 1 void Caminos Minimos par(void) { 2 int cambio aux; 3 4 cambio = 1; 5 while (cambio) { 6 cambio = 0; 7 PIPE W(RedSweep(), N, arrayGrano); 8 9 // Sincronizaci´n para comprobar el valor de ’cambio’ en todos los procesadores o1011 if (cambio) {12 cambio = 0;13 REVERSE PIPE;14 PIPE W(BlueSweep(), N, arrayGrano);15 REVERSE PIPE;16 // Sincronizaci´n para comprobar el valor de ’cambio’ en todos los procesadores o17 }18 }19 } Figura 3.19: Funci´n que resuelve el problema de caminos m´ o ınimos de forma paralela.descendente hay que realizar una inversi´n en el pipeline (l´ o ıneas 13 y 15). Esto es necesario para que cadaprocesador pueda trabajar sobre la misma parte de la matriz en ambas iteraciones. Este proceso se realizamediante la macro REVERSE PIPE (secci´n 3.4). Tambi´n realizamos una sincronizaci´n entre cada dos o e oiteraciones, para comprobar si se ha producido alg´n cambio en la parte de la matriz correspondiente a ucada procesador. Este paso es necesario puesto que puede ocurrir que s´lo se produzcan cambios en las ofilas de la matriz asignadas a un procesador, y sea necesario una nueva iteraci´n por parte de todos los oprocesadores. Resultados computacionales Hemos resuelto primero el problema de caminos m´ ınimos de tama˜o 3000 × 3000 con un obst´culo n acentral en forma de V invertida. En la tabla 3.5 presentamos los resultados obtenidos al resolver elproblema, con una distribuci´n por bloques y diferentes tama˜os de buffer, en el subsistema homog´neo o n ede los procesadores r´pidos y en la tabla 3.6 los resultados para el sistema heterog´neo con las dos a eherramientas. El esquema de presentaci´n de estas dos tablas es el mismo que el de las tablas con los oresultados del problema de la mochila unidimensional.Tabla 3.5: Tiempos de ejecuci´n obtenidos en el sistema homog´neo de m´quinas r´pidas al resolver un problema o e a ade caminos m´ ınimos de tama˜o N = 3000, con un obst´culo en forma de V invertida. El problema se resuelve n acon llp, una distribuci´n por bloques, diferente n´mero de procesadores y con 3 tama˜os de buffer distintos. o u n Problema: N = 3000 p Configuraci´n Buffer Grano Tiempo Real o 2 RR 1500 1500 47.89 2 RR 750 1500 45.85 2 RR 375 1500 43.89 4 RRRR 1500 750 35.73 4 RRRR 750 750 29.72 4 RRRR 375 750 25.22
  • 109. 3.6. COMPARATIVA LLP VS LLPW 105Tabla 3.6: Tiempos de ejecuci´n obtenidos al resolver un problema de caminos m´ o ınimos de tama˜o N = 3000, ncon un obst´culo en forma de V invertida. El problema con una distribuci´n por bloques, empleando diferentes a on´mero de procesadores y con 3 tama˜os de buffer distintos. u n Problema: N = 3000 Herramienta llp Herramienta llpW Tiempo Tiempo Porcentaje p Configuraci´n o Buffer Grano Real GranoR GranoL Real de mejora 5 RRRRL 1500 600 56.42 692 232 48.77 13,55 % 5 RRRRL 750 600 50.47 692 232 43.29 14,22 % 5 RRRRL 375 600 46.07 692 232 37.49 18,63 % 6 RRRRLL 1500 500 67.43 643 214 55.43 17,80 % 6 RRRRLL 750 500 55.81 643 214 48.34 13,38 % 6 RRRRLL 375 500 48.47 643 214 39.21 19,10 % 8 RRRRLLLL 1500 375 78.70 363 187 53.09 32,54 % 8 RRRRLLLL 750 375 57.80 363 187 36.67 36,56 % 8 RRRRLLLL 375 375 48.69 363 187 32.10 34,08 % En las tablas 3.5 y 3.6, se observa en los resultados para llp, que el tiempo necesario para resolver elproblema aumenta al incrementar el n´mero de procesadores lentos en el cluster. De forma que el peor uresultado se obtiene con la configuraci´n de 8 procesadores. Cuando ejecutamos con llpW, comprobamos oque, para este problema, tampoco se consigue reducir el tiempo invertido por el subsistema homog´neo de elos procesadores r´pidos en ninguna ejecuci´n; esto puede deberse a la sincronizaci´n de los procesadores a o oentre cada dos iteraciones. A pesar de esta situaci´n, si comparamos los resultados obtenidos con las dos oherramientas (figura 3.20), vemos que s´ se produce una reducci´n significativa en el tiempo de ejecuci´n ı o oen los resultados de llpW sobre los tiempos de llp: por ejemplo, para p = 8 y buffer = 375, el tiemponecesario para resolver el problema empleando la librer´ llp es de 48.69 segundos, mientras que con llpW, ıaeste tiempo se reduce a 32.10 segundos, una reducci´n en el tiempo de ejecuci´n de casi un 35 %. o oFigura 3.20: Tiempos de ejecuci´n invertidos en resolver el problema de caminos m´ o ınimos de tama˜o N = n3000 con un obst´culo en forma de V invertida. Izquierda: utilizando la herramienta homog´nea (llp). Derecha: a eUtilizando la herramienta para los sistemas heterog´neos (llpW ). e A continuaci´n, resolvemos el segundo problema de caminos m´ o ınimos, donde tenemos una matriz detama˜o 4200 × 4200 con un obst´culo central en forma de U . Como hemos realizado en los problemas n aanteriores, en las tablas 3.7 y 3.8, mostramos los resultados obtenidos al resolver el problema en el sistemahomog´neo y heterog´neo respectivamente. e e Los resultados obtenidos para el problema de tama˜o 4200 × 4200 (tablas 3.7 y 3.8) presentan carac- nter´ ısticas muy similares a las obtenidas con el tama˜o de problema anterior (3000×3000), cuyos resultados n
  • 110. 106 CAP´ ITULO 3. EL PARADIGMA PIPELINETabla 3.7: Tiempos de ejecuci´n obtenidos en el sistema homog´neo de los procesadores r´pidos, al resolver un o e aproblema de caminos m´ ınimos de tama˜o N = 4200, con un obst´culo en forma de U . El problema se resuelve n acon llp, distribuciones por bloques, diferentes n´mero de procesadores y 3 tama˜os de buffer distintos. u n Problema: N = 4200 p Configuraci´n Buffer Grano Tiempo Real o 2 RR 2100 2100 75.56 2 RR 1050 2100 71.70 2 RR 525 2100 68.40 4 RRRR 2100 1050 54.20 4 RRRR 1050 1050 47.95 4 RRRR 525 1050 41.097Tabla 3.8: Tiempos de ejecuci´n obtenidos al resolver un problema de caminos m´ o ınimos de tama˜o N = 4200, ncon un obst´culo en forma de U . El problema se resuelve con distribuciones por bloques, diferentes n´mero de a uprocesadores y con 3 tama˜os de buffer distintos. n Problema: N = 4200 Herramienta llp Herramienta llpW Tiempo Tiempo Porcentaje p Configuraci´n o Buffer Grano Real GranoR GranoL Real de mejora 2 RR 2100 2100 75.56 2100 0 74.24 1.75 % 2 RR 1050 2100 71.70 2100 0 72.48 -1.09 % 2 RR 525 2100 68.40 2100 0 68.96 -0.81 % 4 RRRR 2100 1050 54.20 1050 0 55.55 -2.49 % 4 RRRR 1050 1050 47.95 1050 0 48.76 -1.68 % 4 RRRR 525 1050 41.09 1050 0 41.80 -1.71 % 5 RRRRL 2100 840 83.30 969 324 71.59 14.06 % 5 RRRRL 1050 840 73.03 969 324 60.78 16.77 % 5 RRRRL 525 840 65.43 969 324 51.50 21.30 % 6 RRRRLL 2100 700 94.10 900 300 79.44 15.58 % 6 RRRRLL 1050 700 76.76 900 300 67.26 12.38 % 6 RRRRLL 525 700 66.01 900 300 53.98 18.22 % 8 RRRRLLLL 2100 525 116.97 788 262 89.39 23.58 % 8 RRRRLLLL 1050 525 78.17 788 262 71.45 8.60 % 8 RRRRLLLL 525 525 63.25 788 262 57.69 8.79 %presentamos en las tablas 3.5 y 3.6. En este problema tampoco se consigue reducir el tiempo de ejecu-ci´n del subsistema homog´neo de los 4 procesadores r´pidos, pero s´ se reduce el tiempo empleado por o e a ıllp, alcanz´ndose m´s de un 20 % de mejora para la ejecuci´n con 5 procesadores y el tama˜o de buffer a a o nm´s peque˜o. En la figura 3.21 comparamos los tiempos al resolver el problema de caminos m´ a n ınimosempleando las dos herramientas: homog´nea (llp) y heterog´nea (llpW ). e e3.6.3. El problema de la asignaci´n de recursos o El problema de la asignaci´n de recursos consiste en la asignaci´n de unos recursos limitados a un o oconjunto de actividades para maximizar su rendimiento o minimizar su costo. Se dispone de M unidadesde un recurso indivisible y N actividades o tareas. Por cada tarea Nj existe una funci´n asociada fj (x), oque representa el beneficio (o costo) obtenido cuando se asigna una cantidad x del recurso a la tarea j.Formulamos el problema mediante la siguiente ecuaci´n:o
  • 111. 3.6. COMPARATIVA LLP VS LLPW 107Figura 3.21: Tiempos de ejecuci´n para resolver el problema de caminos m´ o ınimos de tama˜o N = 4200 con un nobst´culo en forma de U . Izquierda: utilizando la herramienta homog´nea (llp). Derecha: Utilizando la herramienta a epara los sistemas heterog´neos (llpW ). e N m´ ın fj (xj ) j=1 N sujeto a xj = M j=1 y a ≤ xjdonde a es el n´mero m´ u ınimo de unidades de recurso que se pueden asignar a una tarea. Este problema ya lo enunciamos en la secci´n 2.8 cuando lo aplicamos para encontrar los par´metros o aque minimizan el tiempo de ejecuci´n de un algoritmo maestro-esclavo. En esta secci´n, hemos resuelto o odos casos particulares de problemas de asignaci´n de recursos: o 1. Disponemos de M = 2600 unidades del recurso y N = 600 actividades. 2. Disponemos de M = 3000 unidades del recurso y N = 1000 actividades. Algoritmo secuencial Para resolver el problema de forma secuencial, se emplea el c´digo presentado en la figura 3.22. Se odispone de una matriz Q donde se almacenan los resultados. Esta matriz se inicializa a un valor constanteINFINITO (l´ ıneas 4 a 6), excepto la primera fila que se inicializa a 0 (l´ ıneas 7 y 8). A continuaci´n, se oaplica la f´rmula de programaci´n din´mica para obtener los valores de las siguientes filas de la matriz o o aQ (l´ ıneas 10 a 18). Algoritmo paralelo La paralelizaci´n del problema de asignaci´n de recursos es similar a las implementaciones de los o oalgoritmos anteriores: se asigna al procesador k-´simo la obtenci´n de los valores ´ptimos Q k para todos e o olos recursos m, donde 0 ≤ m ≤ M (figura 3.23). La dependencia en el c´lculo de los valores Q k [m] s´lo a oocurre en valores adyacentes de k. En la etapa m (con m entre 0 y M ), el procesador k-´simo recibe de esu vecino izquierdo el vector ´ptimo Qk−1 [m] y, cuando el c´lculo de Qk [m] est´ terminado lo env´ a su o a e ıavecino por la derecha. Por lo tanto, el vector Qk−1 [m] se utiliza para actualizar los valores ´ptimos Qk [r], ocon r ≥ m. En la figura 3.23 presentamos el c´digo correspondiente a las etapas intermedias. La parte del c´digo o opara la primera etapa (sin recepci´n de datos) y la ultima etapa (sin env´ de datos) se implementan de o ´ ıoforma independiente, pero no se incluyen en la figura por ser pr´cticamente id´nticas. a e
  • 112. 108 CAP´ ITULO 3. EL PARADIGMA PIPELINE 1 void rap seq(void) { 2 int n, m, i, fnm; 3 4 for (n = 1; n < N; n++) // Inicializaci´n o 5 for (m = 0; m <= M; m++) 6 Q[n][m] = INFINITO; 7 for (m = 0; m <= M; m++) 8 Q[0][m] = 0; 910 for(n = 1; n < N; n++) { // Resoluci´n del problema o11 for(m = 1; m <= M; m++) {12 for (i = 1; i <= m - n + 1; i++) {13 fnm = f(n - 1, i); // ’f’: funci´n de beneficio o14 fnm = max(Q[n-1][m - i], fnm);15 Q[n][m] = min(Q[n][m],fnm);16 }17 }18 }19 } Figura 3.22: Funci´n principal que resuelve el problema de asignaci´n de recursos de forma secuencial. o o 1 void rap par(void) { 2 LOCAL VAR 3 unsigned m; 4 int Q[MAX REC]; // Beneficios ´ptimos para cada recurso o 5 int x, j, tmp, results; 6 BEGIN; 7 8 . . . 910 // Procesos intermedios11 for(m = 0; m <= M; m++)12 Q[m] = INFINITE;13 for (m = 0; m <= M; m++) {14 IN(&x);15 OUT(&Q[m], 1, sizeof(int));16 for (j = m + 1; j <= M; j++) {17 tmp = max(x, f(name - 1, j - m));18 Q[j] = min(Q[j], tmp);19 }20 }21 . . . Figura 3.23: Funci´n que resuelve el problema de asignaci´n de recursos de forma paralela. o o Resultados computacionales En las tablas 3.9 y 3.10 presentamos los resultados obtenidos al resolver el problema de la asignaci´n ode recursos para N = 600 actividades y M = 2600 unidades de recurso al utilizar las herramientas llp yllpW con una distribuci´n por bloques y diferentes tama˜os de buffer. o n
  • 113. 3.6. COMPARATIVA LLP VS LLPW 109Tabla 3.9: Tiempos de ejecuci´n obtenidos al resolver un problema de asignaci´n de recursos con N = 600 o oactividades y M = 2600 unidades de recurso sobre el sistema homog´neo de las m´quinas r´pidas. El problema e a ase resuelve con llp, una distribuci´n por bloques, empleando diferentes n´mero de procesadores y con 3 tama˜os o u nde buffer distintos. Problema: N = 600 - M = 2600 p Configuraci´n Buffer Grano Tiempo Real o 2 RR 1300 300 175.55 2 RR 650 300 138.17 2 RR 325 300 122.16 4 RRRR 1300 150 161.42 4 RRRR 650 150 104.37 4 RRRR 325 150 77.08Tabla 3.10: Tiempos de ejecuci´n obtenidos al resolver un problema de asignaci´n de recursos con N = 600 o oactividades y M = 2600 unidades de recurso. El problema se resuelve con una distribuci´n por bloques, empleando odiferentes n´mero de procesadores y con 3 tama˜os de buffer distintos. u n Problema: N = 600 - M = 2600 Herramienta llp Herramienta llpW Tiempo Tiempo Porcentaje p Configuraci´n o Buffer Grano Real GranoR GranoL Real de mejora 5 RRRRL 1300 120 194.14 139 44 154.50 20.42 % 5 RRRRL 650 120 150.88 139 44 100.98 33.07 % 5 RRRRL 325 120 121.94 139 44 69.82 42.74 % 6 RRRRLL 1300 100 228.64 129 42 161.85 29.21 % 6 RRRRLL 650 100 167.02 129 42 113.38 32.12 % 6 RRRRLL 325 100 120.04 129 42 71.60 40.35 % 8 RRRRLLLL 1300 75 252.74 113 37 185.02 26.79 % 8 RRRRLLLL 650 75 177.06 113 37 117.66 33.55 % 8 RRRRLLLL 325 75 115.98 113 37 73.90 36.28 % Como en los problemas anteriores, se observa en los resultados de llp un incremento del tiempo deejecuci´n al introducir en el cluster de prueba los procesadores lentos. Cuantos m´s procesadores lentos se o autilicen m´s tiempo se necesita para resolver el problema, excepto para el tama˜o de buffer m´s peque˜o a n a n(buffer = 325). Si comparamos los resultados obtenidos con llp y llpW, observamos una gran diferencia en los tiemposde ejecuci´n. En este caso, si introducimos un unico procesador lento en el cluster de pruebas, observamos o ´una reducci´n en el tiempo de ejecuci´n frente a los resultados obtenidos con el subsistema homog´neo o o ede los 4 procesadores r´pidos. Si aumentamos el n´mero de procesadores lentos, el tiempo se incrementa, a upero en ning´n caso alcanza los tiempos obtenidos con la librer´ llp. Para 5 procesadores, pasamos de u ıaun tiempo de 121.94 segundos con llp y un tama˜o de buffer = 325 a un tiempo de 69.82 segundos con nllpW y el mismo tama˜o de buffer. Esto supone una diferencia de m´s del 40 % en los resultados. En la n afigura 3.24 comparamos, de forma gr´fica, los valores de los tiempos al resolver el problema empleando alas dos herramientas. A continuaci´n, resolvemos el segundo problema de asignaci´n de recursos, con N = 1000 actividades o oy M = 3000 unidades de recurso. En las tablas 3.11 y 3.12 presentamos los resultados obtenidos al resolverel problema con una distribuci´n por bloques y diferentes tama˜os de buffer. o n
  • 114. 110 CAP´ ITULO 3. EL PARADIGMA PIPELINEFigura 3.24: Tiempos de ejecuci´n obtenidos al resolver el problema de la asignaci´n de recursos con N = 600 o otareas y M = 2600 unidades de recursos. Izquierda: utilizando la herramienta homog´nea (llp). Derecha: Utilizando ela herramienta para los sistemas heterog´neos (llpW ). eTabla 3.11: Tiempos de ejecuci´n obtenidos al resolver un problema de la asignaci´n de recursos con N = 1000 o otareas y M = 3000 unidades de recurso sobre el sistema homog´neo de las m´quinas r´pidas. El problema se e a aresuelve con llp, una distribuci´n por bloques, diferente n´mero de procesadores y 3 tama˜os de buffer distintos. o u n Problema: N = 1000 - M = 3000 p Configuraci´n Buffer Grano Tiempo Real o 2 RR 1500 500 343.80 2 RR 750 500 309.46 2 RR 375 500 234.61 4 RRRR 1500 250 312.12 4 RRRR 750 250 220.21 4 RRRR 375 250 163.17Tabla 3.12: Tiempos de ejecuci´n obtenidos al resolver un problema de la asignaci´n de recursos con N = 1000 o otareas y M = 3000 unidades de recurso. El problema se resuelve con una distribuci´n por bloques, empleando odiferentes n´mero de procesadores y con 3 tama˜os de buffer distintos. u n Problema: N = 1000 - M = 3000 Herramienta llp Herramienta llpW Tiempo Tiempo Porcentaje p Configuraci´n o Buffer Grano Real GranoR GranoL Real de mejora 5 RRRRL 1500 200 435.78 231 76 342.97 21.30 % 5 RRRRL 750 200 333.78 231 76 226.92 32.02 % 5 RRRRL 375 200 272.00 231 76 155.89 42.69 % 6 RRRRLL 1500 166 520.90 214 72 365.47 29.84 % 6 RRRRLL 750 166 352.10 214 72 247.69 29.65 % 6 RRRRLL 375 166 265.86 214 72 159.99 39.82 % 8 RRRRLLLL 1500 125 550.53 188 62 409.76 25.57 % 8 RRRRLLLL 750 125 382.52 188 62 262.21 31.45 % 8 RRRRLLLL 375 125 257.42 188 62 172.98 32.80 % Para este tama˜o de problema hemos obtenido resultados similares a los observados para el problema nanterior. Mientras que en las ejecuciones con la librer´ homog´nea (llp), todos los resultados con 5 o ıa em´s procesadores lentos son mucho peores que los resultados del subsistema homog´neo de procesadores a e
  • 115. 3.6. COMPARATIVA LLP VS LLPW 111r´pidos; en las ejecuciones con la librer´ heterog´nea, se reduce este tiempo. Cuando incluimos el primer a ıa eprocesador lento, conseguimos reducir el tiempo de ejecuci´n con 4 m´quinas, aunque al seguir incre- o amentando el n´mero de procesadores lentos este tiempo empeora. Si comparamos los resultados con 5 uprocesadores y tama˜o del buffer = 375, tenemos para llp un tiempo de ejecuci´n de 272.00 segundos, n omientras que para llpW este tiempo es de 155.89 segundos. Esto implica una mejora en el rendimientodel sistema de m´s del 40 %. En la figura 3.25 mostramos de forma gr´fica los resultados obtenidos al a aresolver el problema.Figura 3.25: Tiempos de ejecuci´n obtenido al resolver el problema de la asignaci´n de recursos con N = 1000 o otareas y M = 3000 unidades de recurso. Izquierda: utilizando la herramienta homog´nea (llp). Derecha: Utilizando ela herramienta para los sistemas heterog´neos (llpW ). e3.6.4. Problema de la subsecuencia com´ n m´s larga u a El problema de la subsecuencia com´n m´s larga consiste en comparar dos cadenas buscando el sub- u aconjunto m´s largo de ´stas que sea com´n a ambas. Se dispone de las dos cadenas de s´ a e u ımbolos: la cadenaAde longitud N y la cadenaB de M s´ ımbolos y buscamos en el interior de la cadenaA la subsecuencia m´salarga de la cadenaB. Este problema se puede formular mediante las siguientes ecuaciones:   0  si i = 0 o j = 0 F (i, j) = m´x{F (i − 1, j), F (i, j − 1)} a si Aj = Bi  F (i − 1, j − 1)  si Aj = Bi Definamos a continuaci´n las instancias a resolver: o 1. La longitud de cadenaA es N = 6000 y la longitud de cadenaB es M = 10000. 2. La longitud de cadenaA es N = 12000 y la longitud de cadenaB es M = 20000. Algoritmo secuencial Este problema se resuelve de forma secuencial utilizando el c´digo presentado en la figura 3.26. Es un oalgoritmo similar al del problema de la mochila unidimensional (subsecci´n 3.6.1). Se utilizan dos vectores ode datos: fanterior contiene los datos de la etapa anterior y factual con los datos de la etapa actual delalgoritmo y un vector auxiliar (faux ). Primero se inicializa el vector fanterior a cero y, a continuaci´n, ose aplica la ecuaci´n para calcular los valores de la etapa actual. Una vez finalizado el c´lculo de la etapa o aactual, se intercambian los valores de los vectores fanterior y factual para poder usarlos correctamenteen la etapa siguiente.
  • 116. 112 CAP´ ITULO 3. EL PARADIGMA PIPELINE 1 void Subsecuencia seq(void) { 2 int i, j, *fanterior, *factual, *faux; 3 4 // Asignaci´n de memoria a ’fanterior’ y ’factual’ e inicializaci´n a cero o o 5 6 for (j = 1; j <= N; j++) { 7 for (i = 0; i <= M; i++) { 8 if (i == 0) 9 factual[i] = 0;10 else11 if (cadA[j] != cadB[i])12 factual[i] = max(factual[i-1], fanterior[i]);13 else14 factual[i] = fanterior[i-1] + 1;15 }16 // Intercambio de ’factual’ y ’fanterior’17 }18 printf("tLongitud de la subsecuencia : %d t", fanterior[M]);19 // Liberar la memoria20 } Figura 3.26: Funci´n secuencial que resuelve el problema de la b´squeda de la subsecuencia m´s larga. o u a Algoritmo paralelo En la paralelizaci´n de este algoritmo se precisan tantos procesos como caracteres en la cadenaA. A ocada uno se le asocia una fila de la matriz de salida (cadenaB ). En la figura 3.27 se encuentra la funci´n oque resuelve el problema de forma paralela. Se implementa de forma independiente la primera etapa delalgoritmo, la ultima y el resto de las etapas. Como en los problemas anteriores, s´lo mostramos en la ´ ofigura 3.27 el c´digo correspondiente a las etapas intermedias. o 1 void Subsecuencia par(void) { 2 LOCAL VAR 3 int i, x, *f; 4 BEGIN; 5 . . . 6 for (i = 0; i <= M; i++) { // Procesos intermedios 7 IN(&x); 8 if (i != 0) 9 if (cadA[name - 1] != cadB[i - 1])10 f[i] = max(f[i - 1], x);11 OUT(&f[i], 1, sizeof(int));12 if (i != M)13 if (cadA[name-1] == cadB[i])14 f[i + 1] = x + 1;15 }16 . . .17 END;18 } Figura 3.27: Funci´n paralela que resuelve el problema de la b´squeda de la subcadena m´s larga. o u a
  • 117. 3.6. COMPARATIVA LLP VS LLPW 113 Resultados computacionales En las tablas 3.13 y 3.14 se presentan los resultados obtenidos al resolver el primer problema de lab´squeda de la subsecuencia m´s larga (N = 6000 y M = 10000) con la herramienta para un entorno u ahomog´neo (llp) y con la herramienta para entornos heterog´neos (llpW ). e eTabla 3.13: Tiempos de ejecuci´n obtenidos al resolver un problema de la b´squeda de la subsecuencia m´s larga o u acon N = 6000 la longitud de la primera cadena y con M = 20000 la longitud de la segunda cadena. El problema seresuelve sobre el sistema homog´neo de las m´quinas r´pidas utilizando llp, una distribuci´n por bloques, diferente e a a on´mero de procesadores y 3 tama˜os de buffer distintos. u n Problema: N = 6000 - M = 10000 p Configuraci´n Buffer Grano Tiempo Real o 2 RR 5000 3000 37.64 2 RR 2500 3000 33.02 2 RR 1250 3000 30.13 4 RRRR 5000 1500 25.22 4 RRRR 2500 1500 18.60 4 RRRR 1250 1500 15.23Tabla 3.14: Tiempos de ejecuci´n obtenidos al resolver un problema de la b´squeda de la subsecuencia m´s larga o u acon N = 6000 la longitud de la primera cadena y con M = 20000 la longitud de la segunda cadena. El problema seresuelve utilizando una distribuci´n por bloques, empleando diferentes n´mero de procesadores y con 3 tama˜os o u nde buffer distintos. Problema: N = 6000 - M = 10000 Herramienta llp Herramienta llpW Tiempo Tiempo Porcentaje p Configuraci´n o Buffer Grano Real GranoR GranoL Real de mejora 5 RRRRL 5000 1200 33.57 1385 460 24.59 26.75 % 5 RRRRL 2500 1200 29.31 1385 460 17.11 41.63 % 5 RRRRL 1250 1200 23.10 1385 460 13.78 40.36 % 6 RRRRLL 5000 1000 39.56 1286 428 26.63 32.68 % 6 RRRRLL 2500 1000 29.18 1286 428 17.69 39.36 % 6 RRRRLL 1250 1000 23.09 1286 428 12.87 44.27 % 8 RRRRLLLL 5000 750 42.19 1125 375 27.91 33.84 % 8 RRRRLLLL 2500 750 27.81 1125 375 17.71 36.30 % 8 RRRRLLLL 1250 750 21.76 1125 375 12.50 42.56 % Observando las tablas anteriores (3.13 y 3.14), comprobamos que los resultados obtenidos son similaresa los de problemas anteriores: en las ejecuciones con la herramienta para los sistemas homog´neos (llp) y econfiguraciones donde existen procesadores lentos, nos encontramos tiempos de ejecuci´n muy superiores oa los tiempos reales del sistema de los 4 procesadores r´pidos. Por ejemplo, podemos ver que el tiempo anecesario para resolver el problema con la herramienta llp, 8 procesadores y tama˜o del buffer = 375 nes m´s de un 40 % peor que el tiempo requerido por los 4 procesadores r´pidos para el mismo tama˜o a a ndel buffer. Si comparamos estos resultados con los de la herramienta llpW, podemos comprobar que eltiempo con 8 procesadores y buffer = 375 se ha reducido en m´s de un 42 % (ha pasado de requerir 21.76 asegundos con llp a necesitar solamente 12.50 segundos para resolver el problema con llpW ). Adem´s, con allpW y 8 procesadores se consigue mejorar el resultado de p = 4 en m´s de un 15 %. En la figura 3.28 acomparamos gr´ficamente los resultados para este problema. a Por ultimo, resolvemos el segundo problema de la b´squeda de la subsecuencia m´s larga (N = 12000 ´ u ay M = 20000). En las tablas 3.15 y 3.16 se encuentran los resultados obtenidos al resolver el problema.
  • 118. 114 CAP´ ITULO 3. EL PARADIGMA PIPELINEFigura 3.28: Tiempos de ejecuci´n reales al resolver el problema de la b´squeda de la subsecuencia m´s larga, o u acon N = 6000 la longitud de la primera cadena y con M = 10000 la longitud de la segunda cadena. Izquierda:utilizando la herramienta homog´nea (llp). Derecha: Utilizando la herramienta para los sistemas heterog´neos e e(llpW ).Tabla 3.15: Tiempos de ejecuci´n obtenidos al resolver un problema de la b´squeda de la subsecuencia m´s larga, o u acon N = 12000 la longitud de la primera cadena y M = 20000 la longitud de la segunda cadena. El problemase resuelve sobre el sistema homog´neo de las m´quinas r´pidas, utilizando llp, una distribuci´n por bloques, e a a odiferente n´mero de procesadores y 3 tama˜os de buffer distintos. u n Problema: N = 12000 - M = 20000 p Configuraci´n Buffer Grano Tiempo Real o 2 RR 10000 6000 172.86 2 RR 5000 6000 150.77 2 RR 2500 6000 140.28 4 RRRR 10000 3000 135.64 4 RRRR 5000 3000 106.88 4 RRRR 2500 3000 94.19Tabla 3.16: Tiempos de ejecuci´n obtenidos al resolver un problema de la b´squeda de la subsecuencia m´s larga, o u acon N = 12000 la longitud de la primera cadena y M = 20000 la longitud de la segunda cadena. El problema seresuelve utilizando una distribuci´n por bloques, empleando diferentes n´mero de procesadores y con 3 tama˜os o u nde buffer distintos. Problema: N = 12000 - M = 20000 Herramienta llp Herramienta llpW Tiempo Tiempo Porcentaje p Configuraci´n o Buffer Grano Real GranoR GranoL Real de mejora 5 RRRRL 10000 2400 178.73 2769 924 138.78 22.35 % 5 RRRRL 5000 2400 139.64 2769 924 104.79 24.96 % 5 RRRRL 2500 2400 120.13 2769 924 87.57 27.10 % 6 RRRRLL 10000 2000 183.73 2571 858 139.38 24.14 % 6 RRRRLL 5000 2000 138.31 2571 858 101.15 26.86 % 6 RRRRLL 2500 2000 113.21 2571 858 82.99 26.69 % 8 RRRRLLLL 10000 1500 192.32 2250 750 148.56 22.75 % 8 RRRRLLLL 5000 1500 126.73 2250 750 97.64 22.95 % 8 RRRRLLLL 2500 1500 94.45 2250 750 73.52 22.15 %
  • 119. 3.7. EL MODELO ANAL´ ITICO 115 En las tablas 3.15 y 3.16 observamos resultados similares al problema anterior. Cuando asignamos lamisma cantidad de grano a todos los procesadores (usamos llp), el tiempo aumenta al introducir en laplataforma de prueba los procesadores lentos. Al incrementar el n´mero de procesadores lentos, el tiempo use va reduciendo, pero sin mejorar el tiempo de los 4 procesadores r´pidos. Al asignar cantidades distintas ade grano a cada tipo de procesador (utilizando llpW ), se observa que se consigue aumentar el rendimientodel sistema, reduciendo el tiempo de ejecuci´n en m´s de un 20 % al ejecutar con 8 procesadores frente o aa la configuraci´n de los 4 procesadores r´pidos. En la figura 3.29 pueden observarse de forma g´fica las o a adiferencias entre los resultados obtenidos en las ejecuciones.Figura 3.29: Tiempos de ejecuci´n obtenidos al resolver el problema de la b´squeda de la subsecuencia m´s larga, o u aN = 12000 la longitud de la primera cadena y M = 20000 la longitud de la segunda cadena. Izquierda: utilizandola herramienta homog´nea (llp). Derecha: Utilizando la herramienta para los sistemas heterog´neos (llpW ). e e3.7. El modelo anal´ ıtico Una vez analizado el funcionamiento de algoritmos pipeline en sistemas homog´neos y heterog´neos, e epretendemos predecir el tiempo necesario para resolver un problema con unos valores de grano (G) y buffer(B) espec´ ıficos. Para ello, hemos formulado un modelo anal´ıtico que determina el tiempo invertido desdeel instante de comienzo del pipeline heterog´neo, hasta el instante de tiempo en que finaliza el ultimo e ´procesador. Posteriormente, dada una m´quina paralela, nuestro objetivo es obtener los valores ´ptimos a ode G y B para la instancia de un problema determinado; es decir, los valores de grano y buffer que hacenque el tiempo de ejecuci´n del programa sea m´ o ınimo. Este problema ha sido formulado previamente en[85, 129]. Para modelar un algoritmo pipeline consideramos que puede ser caracterizado por un conjunto deprocesadores realizando alguna tarea. Las dependencias entre los datos fuerzan a cada procesador arecibir informaci´n del procesador anterior en el anillo y, despu´s de procesar esa informaci´n, enviar o e odatos al siguiente procesador en el anillo. Este esquema general puede variar de un problema a otro. En pipelines homog´neos (figura 3.3-Izquierda) se puede derivar una ecuaci´n anal´ e o ıtica muy simplepara el tiempo paralelo, Tpar , cuando el n´mero de procesadores (p) es igual al n´mero de etapas del u upipeline (n): Tpar = Ts + Tc , donde Ts denota el tiempo de arranque correspondiente al procesador pp−1 : Ts = (p − 2) ∗ (t + β + τ ∗ w)y Tc representa el tiempo que el ultimo procesador (pp−1 ) invierte en realizar el bucle completo de ´c´mputo: o Tc = M ∗ (t + β + τ ∗ w) Al tratarse del caso homog´neo, los valores de t, β y τ son iguales para todos los procesadores. e
  • 120. 116 CAP´ ITULO 3. EL PARADIGMA PIPELINE Hemos presentado este modelo anal´ ıtico para el caso general (cuando el n´mero de etapas es mayor uque el n´mero de procesadores) en sistemas homog´neos en [82, 83, 84, 132, 133], validando nuestro u emodelo al ejecutar con diferentes problemas y obteniendo los valores de p, G y B para una ejecuci´no´ptima.o Para el caso heterog´neo hemos desarrollado nuestro modelo anal´ e ıtico en tres etapas. Estos modelosy su validaci´n han sido presentados en [8, 9]. Primero consideramos la situaci´n donde el n´mero de o o uetapas es igual al n´mero de procesadores que trabajan en el pipeline (subsecci´n 3.7.1). A continuaci´n, u o oel caso donde el n´mero de etapas es mayor que el n´mero de procesadores considerando un mapping u uc´ ıclico puro (subsecci´n 3.7.2); y finalizamos con la situaci´n general de un mapping c´ o o ıclico por bloques(subsecci´n 3.7.3). Para cada uno de ellos, hemos validado los resultados te´ricos obtenidos con los o oresultados computacionales en nuestro cluster de pruebas (secci´n 3.8). o3.7.1. El n´ mero de etapas es igual al n´ mero de procesadores u u Consideremos en primer lugar que el n´mero de procesadores f´ u ısicos, p, es igual al n´mero de etapas udel pipeline, n (n = p). Derivamos una ecuaci´n que calcula el tiempo total de ejecuci´n como el tiempo o ode arranque del ultimo procesador m´s el tiempo que invierte el ultimo procesador en realizar el bucle ´ a ´de c´mputo completo. Obviamente, el procesador pi del pipeline comienza su c´mputo en el instante o o i−1 j=0 (tj + βj + τj w): cada uno de los procesadores anteriores a pi debe producir y enviar un bloque antesde que pi pueda comenzar. Denotamos por Ts , el tiempo de arranque del procesador pp−1 : p−2 Ts = (ti + βi + τi w) i=0y por pi0 al procesador m´s lento del pipeline, es decir, el primer procesador del pipeline, tal que a p−2 (ti0 + βi0 + τi0 w) ≥ m´x(ti + βi + τi w) a i=0 La ecuaci´n siguiente establece el tiempo total de ejecuci´n paralela del pipeline como el tiempo de o oarranque del procesador m´s lento, m´s el tiempo que tarda este procesador en realizar su c´mputo, a a oa˜adi´ndole el tiempo necesario para que los siguientes procesadores en el pipeline computen la ultima n e ´iteraci´n del bucle. Dependiendo de la posici´n del procesador m´s lento en el pipeline se pueden producir o o a2 situaciones.  p−2  Ts + M tp−1   si tp−1 ≥ m´x(ti + βi + τi w) a    i=0 Tpar = i0 −1 p−2       (ti + βi + τi w) + M (ti0 + βi0 + τi0 w) + (ti + βi + τi w) + tp−1 en otro caso i=0 i=i0 +1donde el primer caso se produce cuando el ultimo procesador es el m´s lento, puesto que su tiempo de ´ ac´mputo es mayor o igual que el tiempo invertido por los restantes procesadores en calcular y enviar los odatos. Hay que tener en cuenta que el ultimo procesador realiza la ultima etapa del problema y no lleva ´ ´a cabo ning´n env´ de informaci´n. En la segunda situaci´n, sin embargo, el ultimo procesador no es el u ıo o o ´m´s lento del pipeline, por lo que se producen huecos durante su ejecuci´n. En este caso, el tiempo viene a odeterminado por el tiempo del procesador m´s lento (pi0 ). a La figura 3.30 muestra las dos opciones que podemos encontrar. En la figura 3.30-Izquierda se presentala situaci´n donde el ultimo procesador es el m´s lento de los que trabajan en el pipeline: el tiempo total o ´ ade ejecuci´n paralela se obtiene sumando el tiempo de arranque m´s el tiempo de c´mputo para este o a o
  • 121. 3.7. EL MODELO ANAL´ ITICO 117procesador (pp−1 ). Mientras que en la figura 3.30-Derecha el procesador m´s lento se encuentra en una aposici´n intermedia: el tiempo total de ejecuci´n es la suma del tiempo de arranque, m´s el tiempo de o o ac´mputo del procesador m´s lento, m´s el tiempo de c´mputo de la ultima iteraci´n para el resto de o a a o ´ olos procesadores. En ambos casos, la l´ ınea en negrita indica el camino que establece el tiempo total deejecuci´n paralela (Tpar ). oFigura 3.30: Diagramas de tiempo: La l´ ınea en negrita indica el camino que establece el tiempo de ejecuci´n. oIzquierda: el procesador m´s lento es el ultimo del pipeline, tp−1 ≥ m´xp−2 (ti + βi + τi w). El tiempo total de a ´ a i=0ejecuci´n es obtenido sumando el tiempo de arranque m´s el tiempo de c´mputo para este procesador. Derecha: El o a oprocesador m´s lento se encuentra en medio del pipeline: en las filas correspondientes a los procesadores siguientes aaparecen huecos en el c´mputo, es decir, existen per´ o ıodos de tiempo donde los procesadores no est´n trabajando. aEl tiempo total de ejecuci´n se obtiene sumando el tiempo de arranque y de c´mputo para el procesador m´s o o alento, m´s el tiempo de c´mputo de los restantes procesadores durante la ultima iteraci´n. a o ´ o Para poder formular el tiempo de ejecuci´n (Tpar ) de forma similar al caso homog´neo, denotamos por o eTc al tiempo necesario para realizar completamente todo el c´mputo, incluyendo el env´ de M paquetes o ıo p−2de un elemento (Gi = 1 y Bi = 1). Para el primer caso, cuando tp−1 ≥ m´x(ti + βi + τi w), el valor de Tc a i=0se obtiene directamente de la f´rmula anterior (Tc = M tp−1 ). o Para el segundo caso, partimos del tiempo de ejecuci´n total: o i0 −1 p−2 (ti + βi + τi w) + M (ti0 + βi0 + τi0 w) + (ti + βi + τi w) + tp−1 = i=0 i=i0 +1 p−2 (ti + βi + τi w) + (M − 1)(ti0 + βi0 + τi0 w) + tp−1 = i=0 Ts + (M − 1)(ti0 + βi0 + τi0 w) + tp−1 Como Ts es el tiempo de arranque del ultimo procesador (pp−1 ), ya tenemos su tiempo de c´mputo. ´ oResumiendo todo lo anterior, el tiempo que requiere el procesador pp−1 para finalizar su ejecuci´n, una ovez que ha comienzado a trabajar, viene dado por la siguiente ecuaci´n: o  p−2  Mt si tp−1 ≥ m´x(ti + βi + τi w) a  p−1 i=0 Tc =   M tp−1 + (M − 1)(ti0 − tp−1 + βi0 + τi0 w) en otro caso.donde ti0 − tp−1 + βi0 + τi0 w es el tiempo invertido por el procesador pp−1 esperando por los datos(huecos). A partir de las consideraciones anteriores, podemos calcular el tiempo total de ejecuci´n paralela de oun pipeline con p = n como: Tpar = Ts + Tc .
  • 122. 118 CAP´ ITULO 3. EL PARADIGMA PIPELINE3.7.2. El n´ mero de etapas es superior al n´ mero de procesadores: mapping u u c´ ıclico puro Consideremos ahora un n´mero de etapas o procesos virtuales del pipeline (n) mayor que el n´mero u ude procesadores f´ ısicos disponibles (p); es decir, p < n. Es necesario asignar las etapas del pipeline entrelos procesadores disponibles. Hemos realizado la primera aproximaci´n considerando s´lo el caso m´s o o asencillo, donde Gi = 1 y Bi = 1. Posteriormente desarrollamos el caso general. En la figura 3.31 se muestra el esquema de la ejecuci´n de un pipeline con p < n, identificando olos procesadores f´ ısicos y los procesos virtuales. Puesto que cada procesador contiene un unico proceso ´virtual, una banda est´ compuesta por p procesos. Por lo tanto, el n´mero de bandas que se producen al a uejecutar un pipeline utilizando un mapping c´ ıclico puro es N umBandas = n . En la figura 3.31 aparece ptambi´n indicada la distribuci´n de procesos entre las bandas. De esta forma, el proceso virtual q es e o qejecutado en la banda n´mero k si y s´lo si p = k; y es ejecutado en el procesador pi donde i = q mod p. u o Figura 3.31: Ejecuci´n del pipeline mediante una estrategia de ejecuci´n c´ o o ıclica pura con p < n. Como se observa en la figura 3.31, en este caso el ultimo procesador s´ realiza env´ de datos cuando ´ ı ıoest´ procesando bandas intermedias, pero no en la ultima (el proceso virtual n − 1). Y el procesador p 0 a ´recibe datos del procesador anterior (pp−1 ) en todas las bandas excepto en la primera (proceso virtual0). A continuaci´n, calculamos el tiempo de ejecuci´n en el pipeline. Denotamos por o o p−1 Ts = (ti + βi + τi w) = Ts + tp−1 + βp−1 + τp−1 w i=0al tiempo de arranque entre bandas y por p−1 Tc = M (tp−1 + βp−1 + τp−1 w + m´x(ti + βi + τi w − (tp−1 + βp−1 + τp−1 w))) a i=0al tiempo de c´mputo del procesador pp−1 en una banda intermedia. Ts incluye el tiempo necesario para oque el ultimo procesador compute y env´ el primero de sus datos; y Tc incluye el tiempo de c´mputo y ´ ıe oenv´ de los datos m´s todos los tiempos de espera (huecos). Como se ilustra en la figura 3.32, la relaci´n ıo a oentre los valores de Ts y Tc modifica considerablemente el rendimiento del sistema. La figura 3.32-Izquierdacorresponde a la situaci´n donde el conjunto completo de procesadores est´ continuamente trabajando o adespu´s de la fase de arranque. La figura 3.32-Derecha representa la situaci´n donde los procesadores se e osincronizan entre las bandas, y se producen huecos, durante los cuales, los procesadores tienen que esperarpor datos de la banda anterior. Obviamente, la regi´n donde Tc < Ts corresponde a un uso ineficiente de olos procesadores. El tiempo total de ejecuci´n para un mapping c´ o ıclico puro con n etapas y p procesadores, donde p < n,sin utilizar buffer, viene determinado por:   T1 = Ts + (N umBandas − 1)Tc + Tc si Tc > Ts T = T2 = (N umBandas − 1)Ts + Ts + Tc si Ts > Tc 
  • 123. 3.7. EL MODELO ANAL´ ITICO 119Figura 3.32: Diagramas de tiempo: Izquierda: Tc > Ts : El conjunto completo de procesadores est´ continuamente atrabajando despu´s de la fase de arranque. Derecha: Tc < Ts : Los procesadores est´n sincronizados entre bandas e ay pueden invertir tiempo esperando por los datos de la banda anterior.3.7.3. El n´ mero de etapas es superior al n´ mero de procesadores: mapping u u c´ ıclico por bloques Consideraremos ahora el caso m´s general, donde se realiza el mapping c´ a ıclico por bloques. En unaejecuci´n por bloques se reduce el n´mero de comunicaciones, pero aumenta el tiempo de arranque o udel pipeline. La ejecuci´n c´ o ıclica se comporta de forma totalmente opuesta: el tiempo de arranque delpipeline es reducido pero existen muchas comunicaciones. La ejecuci´n c´ o ıclica por bloques es una situaci´n ointermedia, donde se realizan menos comunicaciones que en la ejecuci´n c´ o ıclica y el tiempo de inicio delpipeline es menor que en la ejecuci´n por bloques. o Se asignan Gi procesos virtuales al procesador pi y la comunicaci´n entre los procesadores se realiza oen paquetes de tama˜o Bi . Por simplicidad no hemos considerado tama˜os de buffer distintos para los n ndiferentes procesadores. Esto significa que trabajamos con Bi = B para i = 0, . . . , p − 1. En este contexto,el procesador pi computar´ Gi ∗ B elementos en cada iteraci´n y cada comunicaci´n incluir´ B elementos a o o ade tama˜o w. Siendo m´s precisos, cada procesador virtual ejecuta un bucle similar al que aparece en la n afigura 3.33. 1 j = 0; 2 while (j < M/B) { 3 recibir (); // Excepto el primer proceso virtual 4 computar (); // Computa G[i] * B elementos 5 // Env´a B ı elementos de tama~o w n 6 enviar (B * elemento w); // Excepto el ´ltimo proceso virtual u 7 j++; 8 }Figura 3.33: C´digo est´ndar para un algoritmo pipeline resuelto de forma paralela mediante una distribuci´n o a oc´ ıclica por bloques. En la figura 3.34 se muestra el funcionamiento del pipeline para este caso general: el grano asignadoa cada procesador puede ser distinto de 1 y el n´mero de procesos virtuales que componen cada banda u p−1 qes j=0 Gj . Por lo tanto, un proceso virtual, q, forma parte de la banda k si y s´lo si p−1 G = k y o j=0 j qse ejecuta sobre el procesador f´ ısico pi si y s´lo si i = o p−1 Gj mod p. El nombre local de los procesos j=0virtuales dentro del procesador f´ ısico var´ entre 0 y el valor del grano menos 1. ıa
  • 124. 120 CAP´ ITULO 3. EL PARADIGMA PIPELINE Figura 3.34: Ejecuci´n del pipeline mediante una estrategia de ejecuci´n c´ o o ıclica por bloques con p < n. De acuerdo con la notaci´n utilizada a lo largo de este trabajo, el procesador p i invierte en cada oiteraci´n un tiempo de c´mputo de Gi ∗ B ∗ ti (Gi ∗ B elementos) y un tiempo de comunicaci´n de o o o pnβi + τi Bw (env´ B elementos de tama˜o w), en un pipeline con n = p−1 ıa n etapas. j=0 Gj Por analog´ con el caso c´ ıa ıclico, tenemos las siguientes definiciones: El procesador m´s lento p i0 aest´ caracterizado por ser el primer procesador del pipeline tal que a p−2 (Gi0 Bti0 + βi0 + τi0 Bw) ≥ m´x(Gi Bti + βi + τi Bw). a i=0 El tiempo de arranque para el procesador pp−1 es p−2 Ts = (Gi Bti + βi + τi Bw) i=0y el tiempo de arranque entre bandas es p−1 Ts = (Gi Bti + βi + τi Bw) i=0 El tiempo de c´mputo para el ultimo procesador es: o ´  p−2 M B Gi Btp−1 si Gi Btp−1 ≥ m´x(Gi Bti + βi + τi Bw) a   i=0Tc =  M + ( M − 1)(Gi0 Bti0 − Gp−1 Btp−1 + βi0 + τi0 Bw)  B Gi Btp−1 B en otro casoy el tiempo de c´mputo para el ultimo procesador en una banda intermedia es: o ´ Tc = M (Gp−1 Btp−1 + βp−1 + τp−1 Bw + Gi0 Bti0 + βi0 + τi0 Bw − (Gp−1 tp−1 + βp−1 + τp−1 Bw)) n El n´mero de bandas en este caso es: N umBandas = u p . Considerando que Ts , Tc , Ts y Tc est´n definidas en t´rminos de Gi Bti : si p = n , trabajamos con a euna unica banda mediante un mapping por bloques puro y el tiempo de ejecuci´n es T s + Tc . Si p < n , ´ oel tiempo total de ejecuci´n sobre un mapping c´ o ıclico por bloques con n etapas y p procesadores, puedeobtenerse directamente como:   T1 = Ts + (N umBandas − 1)Tc + Tc si Tc > Ts Tpar = T2 = (N umBandas − 1)Ts + Ts + Tc si Ts > Tc  De nuevo el modelo considera las dos situaciones representadas en la figura 3.32.
  • 125. 3.7. EL MODELO ANAL´ ITICO 121 El modelo presentado hasta ahora, considera la situaci´n donde las combinaciones de los granos ogeneran trabajo para todo el conjunto de procesadores a lo largo de todas las bandas. Sin embargo,en la pr´ctica, es posible que algunos procesadores no trabajen en la ultima banda; adem´s, el ultimo a ´ a ´procesador que trabaja en la ultima banda (pi1 ) puede procesar una cantidad de trabajo diferente al ´que realiza en el resto de las bandas (Gub ). Se puede observar un impacto importante en la precisi´n i1 odel modelo si abstraemos y reducimos estos casos particulares al modelo general. Este efecto es tambi´neobservado en un pipeline homog´neo. En sistemas homog´neos se puede derivar una ecuaci´n anal´ e e o ıticadirectamente del caso general. Sin embargo, la casu´ ıstica del caso heterog´neo es mucho m´s compleja, e apuesto que depende de la posici´n del procesador que m´s tiempo invierte en el pipeline (el procesador o am´s lento) y del conjunto de procesadores incluidos en el procesamiento de la ultima banda. Denominamos a ´por pi0 al procesador m´s lento de las bandas intermedias y por pi2 al procesador m´s lento de la ultima a a ´banda. A continuaci´n mostramos las posibles situaciones que consideramos en el desarrollo del modelo oanal´ıtico. La figura 3.35 muestra un diagrama de tiempo para un pipeline con p = 4. Ordenamos losprocesadores por su potencia de c´mputo: p3 , p0 , p2 y p1 , donde p3 es el procesador m´s r´pido y p1 el o a aprocesador m´s lento, y podemos ver, en la figura, que el procesador m´s lento es el ultimo procesador a a ´de la ultima banda. Suponemos que pi0 mantiene su grano en la ultima banda o bien que, a pesar reducir ´ ´su grano, sigue siendo el procesador m´s lento en la ultima banda. a ´Figura 3.35: Diagrama de tiempo para un pipeline con p = 4, donde el procesador m´s lento es el ultimo a ´procesador de la ultima banda. En este caso, el tiempo total de ejecuci´n es obtenido de acuerdo al tiempo de ´ oejecuci´n del procesador m´s lento (pi0 ): el tiempo de arranque del procesador pi0 , m´s su tiempo de c´mputo de o a a opi0 en las bandas intermedias, m´s su tiempo de c´mputo para la ultima banda. a o ´ Como el procesador m´s lento en la figura 3.35 es el ultimo procesador de la ultima banda, el tiempo a ´ ´de ejecuci´n puede ser calculado como: o M Tpar = Tsi0 + (N umBandas − 1) ∗ Tci0 + ∗ (Gub ∗ B ∗ ti0 ) i0 Bdonde pi0 es el procesador m´s lento; Tsi0 es el tiempo de arranque del procesador m´s lento; Tci0 es el a atiempo invertido por el procesador m´s lento en computar y enviar sus datos; N umBandas es el n´mero a ude bandas en la ejecuci´n, M es el n´mero de bloques de c´mputo que realizan los procesadores y Gub es o B u o i0el grano que le corresponde al procesador m´s lento en la ultima banda. El tiempo total de ejecuci´n es el a ´ otiempo de arranque del procesador m´s lento (pi0 ), m´s su tiempo de c´mputo en las bandas intermedias, a a om´s su tiempo de c´mputo en la ultima banda. Como se observa en la figura 3.35, en la ultima banda, el a o ´ ´procesador pi0 s´lo realiza c´mputo, pero no lleva a cabo ning´n env´ o o u ıo. La segunda situaci´n se produce cuando el procesador pi0 trabaja en la ultima banda, pero no es el o ´ultimo procesador (figura 3.36). En esta figura tenemos el mismo pipeline que el de la figura 3.35, pero´en este caso al ultimo procesador de la ultima banda lo denominamos pi1 , y en este ejemplo pi1 = p2 . ´ ´ Para la situaci´n representada en la figura 3.36, el tiempo total de ejecuci´n paralelo lo calculamos o ocomo: i −1 1 Tpar = Tsi0 + N umBandas ∗ Tci0 + (Gi ∗ B ∗ ti + βi + τi Bw) + Gub ∗ B ∗ ti1 i1 i=i0 +1
  • 126. 122 CAP´ ITULO 3. EL PARADIGMA PIPELINEFigura 3.36: Diagrama de tiempo para un pipeline con p = 4, donde el procesador m´s lento trabaja en la ultima a ´banda, pero no es el ultimo procesador. En este caso, el tiempo total de ejecuci´n es obtenido de acuerdo al ´ otiempo de ejecuci´n del procesador m´s lento (pi0 ): el tiempo de arranque del procesador pi0 , m´s el tiempo de o a ac´mputo de pi0 en todas las bandas, m´s el tiempo de un bloque de c´mputo para cada uno de los procesadores o a oposteriores. Es decir, el tiempo de ejecuci´n paralela viene dado por la suma del tiempo de arranque del procesador om´s lento (Tsi0 ), m´s su tiempo de c´mputo en todas las bandas (Tci0 ), m´s el tiempo necesario para a a o aque cada uno de los procesadores posteriores realice un bloque de c´mputo. o La siguiente situaci´n se produce cuando el procesador pi0 no trabaja en la ultima banda, pero sigue o ´siendo el procesador que determina el tiempo de ejecuci´n (figura 3.37). En la figura se muestra un opipeline con 4 procesadores tal que en la ultima banda solamente trabaja el procesador p 0 . ´Figura 3.37: Diagrama de tiempo para un pipeline con p = 4, donde el procesador m´s lento no trabaja en ala ultima banda, pero es el procesador que determina el tiempo de ejecuci´n. En este caso, el tiempo total se ´ ocalcula como la suma del tiempo de arranque del procesador pi0 , m´s el tiempo de c´mputo de pi0 en todas las a obandas intermedias, m´s el tiempo de un bloque de c´mputo para cada uno de los procesadores posteriores en la a open´ltima banda, m´s el tiempo de un bloque de c´mputo para todos los procesadores de la ultima banda. u a o ´ El tiempo paralelo de ejecuci´n para el pipeline representado en la figura 3.37 viene dado por la osiguiente ecuaci´n: o p−1 i1 −1Tpar = Tsi0 +(N umBandas−1)∗Tci0 + (Gi ∗B∗ti +βi +τi Bw)+ (Gi ∗B∗ti +βi +τi Bw)+Gub ∗B∗ti1 i1 i=i0 +1 i=0 Este tiempo se calcula como el tiempo de arranque del procesador m´s lento (p i0 ), m´s su tiempo de a ac´mputo para todas las bandas intermedias, m´s el tiempo necesario para que cada uno de los procesadores o ade la pen´ltima banda realice un bloque de c´mputo, m´s el tiempo invertido por un bloque de c´mputo u o a ode cada uno de los procesadores que trabajan en la ultima banda. ´ La cuarta situaci´n se produce cuando el procesador m´s lento de las bandas intermedias (p i0 ) es el o aultimo procesador de la ultima banda pero, debido a la reducci´n de su grano, no es el procesador m´s´ ´ o a
  • 127. 3.7. EL MODELO ANAL´ ITICO 123lento si consideramos unicamente la ultima banda. En el pipeline mostrado en la figura 3.38 disponemos ´ ´de 4 procesadores, donde pi0 = p2 y pi1 = p2 . Se observa que el tiempo total de ejecuci´n depende del oprocesador m´s lento de la ultima banda (pi2 = p1 ). a ´Figura 3.38: Diagrama de tiempo para un pipeline con p = 4, donde el procesador m´s lento de las bandas aintermedias trabaja en la ultima banda, pero no es el m´s lento en ´sta. En este caso, el tiempo total de ejecuci´n ´ a e oes obtenido a partir del tiempo de ejecuci´n del procesador m´s lento de la ultima banda (p i2 ): el tiempo de o a ´arranque del procesador pi2 , m´s el tiempo de c´mputo de pi2 en todas las bandas, m´s el tiempo de un bloque a o ade c´mputo para cada uno de los procesadores posteriores. o El tiempo paralelo de ejecuci´n en la figura 3.38 lo calculamos como: o i1 −1 Tpar = Tsi2 + Tci2 pb + (N umBandas − 1) ∗ Tci2 + (Gi ∗ B ∗ ti + βi + τi Bw) + Gub ∗ B ∗ ti1 i1 i=i2 −1donde Tci pb es el tiempo de c´mputo invertido por el procesador pi2 en la primera banda. La diferencia o 2entre la primera y las restantes bandas se debe al efecto del procesador m´s lento de las bandas intermedias adonde produce huecos en la ejecuci´n. En este ejemplo, calculamos el tiempo como el tiempo de arranque odel procesador pi2 , m´s su tiempo de c´mputo en todas las bandas, m´s el tiempo invertido por todos a o alos procesadores posteriores en la ultima banda para realizar un bloque de c´mputo. ´ o Las figuras 3.39 y 3.40 representan las situaciones donde el procesador m´s lento de las bandas aintermedias no trabaja en la ultima, y el tiempo total de ejecuci´n lo determina el procesador m´s lento ´ o ade la ultima banda (pi2 ). En la figura 3.39 se muestra el caso donde pi2 es el ultimo procesador de la ´ ´ultima banda.´Figura 3.39: Diagrama de tiempo para un pipeline con p = 3, donde el procesador m´s lento de las bandas aintermedias no trabaja en la ultima banda, y el procesador m´s lento de la ultima banda es el ultimo procesador. ´ a ´ ´El tiempo total de ejecuci´n se obtiene a partir del tiempo de ejecuci´n del procesador m´s lento de la ultima o o a ´banda (pi2 ): el tiempo de arranque del procesador pi2 , m´s el tiempo de c´mputo de pi2 en todas las bandas. a o El tiempo total de ejecuci´n paralela en la figura 3.39 podemos calculamos como: o M Tpar = Tsi2 + Tci2 pb + (N umBandas − 2) ∗ Tci2 + ∗ (Gub ∗ B ∗ ti1 ) i1 B
  • 128. 124 CAP´ ITULO 3. EL PARADIGMA PIPELINE Esto significa que el tiempo total de ejecuci´n se obtiene como el tiempo de arranque, m´s el tiempo de o ac´mputo del procesador pi2 para todas las bandas intermedias, m´s el tiempo de c´mputo del procesador o a opara la ultima banda. Tenemos en cuenta que en esta ultima banda el procesador p i2 no realiza ning´n ´ ´ uenv´ ıo. La figura 3.40 refleja el caso donde el procesador pi2 no es el ultimo procesador de la ultima banda. ´ ´Figura 3.40: Diagrama de tiempo para un pipeline con p = 4, donde el procesador m´s lento de las bandas aintermedias no trabaja en la ultima, y el procesador m´s lento de la ultima banda no es el ultimo procesador. El ´ a ´ ´tiempo total de ejecuci´n se obtiene a partir del tiempo de ejecuci´n del procesador m´s lento de la ultima banda o o a ´(pi2 ): el tiempo de arranque del procesador pi2 , m´s el tiempo de c´mputo de pi2 en todas las bandas m´s un a o abloque de c´mputo de cada uno de los procesadores posteriores. o El tiempo total de ejecuci´n paralela en la figura 3.40 lo calculamos como: o i1 −1 Tpar = Tsi2 + Tci2 pb + (N umBandas − 1) ∗ Tci2 + (Gi ∗ B ∗ ti + βi + τi Bw) + Gub ∗ B ∗ ti1 i1 i=i2 −1 El tiempo total de ejecuci´n se obtiene como el tiempo de arranque, m´s el tiempo de c´mputo del o a oprocesador pi2 para todas las bandas, m´s un bloque de c´mputo para cada uno de los procesadores a oposteriores en la ultima banda. ´ Por ultimo, consideraremos la situaci´n en que el procesador que determina el tiempo total de ejecuci´n ´ o oes el ultimo procesador de la ultima banda (pi1 = p1 ) cuando este procesador no es el m´s lento de las ´ ´ abandas intermedias (pi0 = p2 ), ni el m´s lento de la ultima banda, pi2 = p0 (figura 3.41). a ´Figura 3.41: Diagrama de tiempo para un pipeline con p = 3, donde el tiempo total de ejecuci´n se obtiene a opartir del tiempo de ejecuci´n del ultimo procesador de la ultima banda: el tiempo de arranque del procesador o ´ ´pi1 , m´s el tiempo de c´mputo de pi2 en todas las bandas. a o El tiempo total de ejecuci´n paralela para el pipeline de la figura 3.40 viene dado por la ecuaci´n: o o M Tpar = Tsi1 + Tci1 pb + (N umBandas − 2) ∗ Tci1 + ∗ (Gub ∗ B ∗ ti1 ) i1 B
  • 129. 3.8. VALIDACION DEL MODELO ANAL´ ´ ITICO 125 Se calcula el tiempo total de ejecuci´n como el tiempo de arranque del procesador p i1 , m´s el tiempo o ade c´mputo de este procesador en la primera banda (sin los huecos producidos por el procesador m´s o alento), m´s su tiempo de c´mputo en las bandas intermedias, m´s el tiempo de c´mputo en la ultima a o a o ´banda (sin realizar ning´n env´ u ıo). Todos los resultados computacionales presentados en este cap´ ıtulo se han obtenido considerando todaslas situaciones especificadas en esta secci´n. o3.8. Validaci´n del modelo anal´ o ıtico Para validar nuestro modelo en cada una de las situaciones estudiadas en la secci´n 3.7 hemos con- osiderado que el c´mputo entre las comunicaciones viene dado por un bucle sint´tico constante. En la o efigura 3.42 se muestra el c´digo ejecutado por las etapas intermedias del pipeline. Todos los resultados oque aparecen en esta secci´n y en las secciones 3.6 y 3.10 se han obtenido ejecutando la versi´n MPI o ode la librer´ llpW (secci´n 3.5). En nuestras pruebas, los valores medidos como constantes de c´mputo ıa o opara los procesadores r´pidos, intermedios y lentos son tR = 0.0072, tI = 0.016 y tL = 0.026 respec- ativamente. Estos valores han sido medidos ejecutando el bucle de la l´ ınea 12 de la figura 3.42 en cadatipo de m´quina. Aunque la herramienta permite asignaci´n de tama˜os de buffer variables, por motivos a o nde simplicidad, en todos las ejecuciones hemos considerado tama˜os de buffer iguales para todos los nprocesadores, independientemente del tipo de la m´quina. a 1 void solver pipe(void) { 2 LOCAL VAR 3 int i; 4 double j; 5 int x; 6 BEGIN; 7 8 . . . 910 for (i = 0; i <= M; i++) {11 IN(&x);12 for (j = 0; j <= 2000000; j ++);13 OUT(&i, 1, sizeof(unsigned));14 }15 . . .1617 END;18 }Figura 3.42: Funci´n solver pipe() que contiene un bucle sint´tico constante utilizado para las pruebas de vali- o edaci´n y predicci´n del modelo. o o Del mismo modo que hicimos en el cap´ ıtulo 2, primero vamos a caracterizar nuestra plataformaheterog´nea, estableciendo algunas m´tricas de rendimiento. La tabla 3.17 muestra las relaciones obtenidas e eentre las constantes de c´mputo de las m´quinas. Estas constantes son independientes del tama˜o del o a nproblema, por lo que las relaciones entre estos valores son tambi´n constantes. En la tabla, la columna eL / R es la relaci´n entre las m´quinas lentas y r´pidas, la columna I / R es la relaci´n entre m´quinas o a a o aintermedias y r´pidas y la columna L / I entre las m´quinas lentas e intermedias. a a p−1 (1−CP E ) A continuaci´n calculamos la heterogeneidad de nuestro cluster (secci´n 1.4): H = i=0 p o o i .Hay que obtener previamente los valores escalados para las potencias computacionales de los tres tipos
  • 130. 126 CAP´ ITULO 3. EL PARADIGMA PIPELINETabla 3.17: Relaci´n entre las constantes de c´mputo para los tres tipos de m´quinas que componen el cluster : o o alentas / r´pidas (L / R), intermedias / r´pidas (I / R) y lentas / intermedias (L / I). a a L/R I/R L/I 3.61 2.22 1.62 Ede m´quinas, asign´ndole a los procesadores r´pidos el valor m´s alto (CP R = 1). La tabla 3.18 muestra a a a a Elos valores de las potencias computacionales escaladas para las m´quinas r´pidas (columna CP R ), inter- a a E Emedias (columna CPI ) y lentas (columna CPL ); as´ como el valor de la heterogeneidad del sistema con ılos 14 procesadores. En la tabla se observa que la heterogeneidad del sistema alcanza casi el 50 %.Tabla 3.18: Potencia computacional escalada para los tres tipos de m´quinas del cluster (r´pidas, intermedias y a alentas) y valor de la heterogeneidad del sistema. E E E CPR CPI CPL Heterogeneidad 1 0.45 0.28 0.473.8.1. El n´ mero de etapas es igual al n´ mero de procesadores u u Para resolver este problema sobre p procesadores, asignamos un proceso virtual a cada procesador einvocamos a la macro PIPE pas´ndole como argumentos la funci´n de la figura 3.42, el n´mero de etapas a o u(n = p) y el array con los valores de los granos para cada tipo de m´quinas (G i = 1). a La tabla 3.19 presenta los tiempos reales de ejecuci´n en segundos (columna etiquetada Tiempo Real ), oel tiempo estimado por el modelo (columna Modelo) y los errores relativos obtenidos para las diferentesconfiguraciones de procesadores r´pidos (R), intermedios (I) y lentos (L). La columna Configuraci´n a omuestra el tipo de los procesadores utilizados en la ejecuci´n y su posici´n en el pipeline. La experiencia o ola hemos repetido para tama˜os del bucle externo del problema M = 50 y 500, con p = 4, 6, 8 y 14 nprocesadores. Para cada bloque de resultados indicamos el n´mero de procesadores y el valor de M como ucabeceras de la tabla. Observamos, en la tabla 3.19, que el tiempo real de ejecuci´n es pr´cticamente independiente del orden o ade los procesadores en la configuraci´n empleada, la diferencia de tiempo entre las distintas configuraciones oes m´ ınima. Esta circunstancia tambi´n se contempla en los resultados que se obtienen con el modelo eanal´ıtico. Como pod´ ıamos esperar, el error obtenido decrece para valores altos de M . Para M = 500el error no supera en ning´n caso el 6 %. Para el problema m´s peque˜o (M = 50), la mitad de las u a nejecuciones presentan un error menor del 8 % y unicamente en 4 de las 48 ejecuciones supera el 10 % ´de error. Aunque, debido a la escalabilidad de los problemas, es usual observar un incremento de esteerror con el n´mero de procesadores, las diferencias que se encuentran en la tabla, al modificar el n´mero u ude procesadores, no son muy importantes. Un segundo hecho notable es la relativa independencia delmodelo y de los tiempos de ejecuci´n de una combinaci´n particular de procesadores r´pidos, intermedios o o ay lentos. Este comportamiento es debido a que las permutaciones de los procesadores s´lo influyen en el ovalor de T s.3.8.2. El n´ mero de etapas es superior al n´ mero de procesadores: mapping u u c´ ıclico puro Como segundo paso de la validaci´n, consideramos una distribuci´n c´ o o ıclica pura (G i = 1) para resolverun problema donde p < n; es decir, un pipeline donde el n´mero de etapas es superior al n´mero de u u
  • 131. 3.8. VALIDACION DEL MODELO ANAL´ ´ ITICO 127 Tabla 3.19: Validaci´n del modelo: el n´mero de procesadores es igual al n´mero de etapas del problema. o u u p=4-n= 4 M = 50 M = 500 Configuraci´n o Tiempo Real Modelo Error Tiempo Real Modelo Error IRRL 1.42 1.33 6.43 % 13.62 13.03 4.33 % LRIR 1.42 1.34 5.63 % 13.63 13.14 3.60 % LIRR 1.43 1.34 6.29 % 13.64 13.15 3.59 % IRLR 1.43 1.34 6.29 % 13.78 13.14 4.95 % LRRI 1.41 1.34 4.96 % 13.54 13.14 2.95 % ILRR 1.44 1.34 6.94 % 13.81 13.14 4.85 % p=6-n= 6 M = 50 M = 500 Configuraci´n o Tiempo Real Modelo Error Tiempo Real Modelo Error IIRRLL 1.5 1.39 7.33 % 13.75 13.23 3.78 % IRLIRL 1.52 1.38 9.21 % 13.89 13.19 5.04 % LLIIRR 1.51 1.39 7.95 % 13.76 13.23 3.85 % LIIRRL 1.52 1.38 9.21 % 13.69 13.19 3.65 % IRIRLL 1.49 1.39 6.71 % 13.85 13.23 4.48 % IRRLIL 1.53 1.38 9.80 % 13.85 13.19 4.77 % p=8-n= 8 M = 50 M = 500 Configuraci´n o Tiempo Real Modelo Error Tiempo Real Modelo Error IIIRRRLL 1.53 1.41 7.84 % 13.76 13.25 3.71 % LLIIIRRR 1.53 1.41 7.84 % 13.78 13.25 3.85 % IRLIRLIR 1.55 1.41 9.03 % 13.92 13.22 5.03 % IIRRLLIR 1.55 1.41 9.03 % 13.95 13.25 5.02 % IIRRLIRL 1.56 1.41 9.62 % 13.92 13.21 5.10 % IRRRLLII 1.52 1.41 7.24 % 13.94 13.25 5.95 % p = 14 - n = 14 M = 50 M = 500 Configuraci´n o Tiempo Real Modelo Error Tiempo Real Modelo Error RRRRIIIILLLLLL 1.70 1.54 9.41 % 14.11 13.38 5.17 % RILRILRILRILLL 1.76 1.54 12.50 % 14.18 13.38 5.64 % RRIILLRRIILLLL 1.73 1.54 10.98 % 14.12 13.38 5.24 % IIRRLLIIRRLLLL 1.72 1.54 10.47 % 14.10 13.38 5.11 % LLLIIIRRRLIRLL 1.76 1.54 12.50 % 14.09 13.38 5.04 % LLLLLLRRRRIIII 1.71 1.54 9.94 % 14.07 13.38 4.90 %
  • 132. 128 CAP´ ITULO 3. EL PARADIGMA PIPELINEprocesadores y la ejecuci´n se realiza c´ o ıclicamente en bandas. En esta secci´n presentamos los resultados oobtenidos con esta distribuci´n, considerando problemas donde se producen 5 y 10 bandas completas, opara p = 4, 6, 8 y 14 procesadores, con un tama˜o de bucle de M = 50 y 500 (tablas 3.20 y 3.21 nrespectivamente). El n´mero de etapas del pipeline se calcula como p ∗ N umBandas en cada caso. Las utablas presentan el mismo esquema que la tabla 3.19: para cada configuraci´n y cada problema incluimos oel tiempo real en segundos, el tiempo estimado por el modelo y el error cometido. Separamos los datosen bloques seg´n el n´mero de procesos utilizados para resolver cada problema. Hemos realizado las u uejecuciones para los dos tama˜os de problemas resueltos en la secci´n anterior: M = 50 en la tabla 3.20 n oy M = 500 en la tabla 3.21. Como se comprueba en los resultados presentados en las tablas 3.20 y 3.21, los tiempos calculadospor nuestro modelo anal´ ıtico son muy precisos. En la tabla 3.20 observamos que en el problema detama˜o M = 50, s´lo 5 ejecuciones presentan un error superior al 7 %; mientras que para el problema n ode tama˜o M = 500, unicamente en 4 de las 48 ejecuciones realizadas se obtiene un error superior al n ´5 %. Esta cantidad supone solamente un 8.33 % del total de las ejecuciones. Adem´s, se observa que aexiste un comportamiento similar en todos los casos, presentando un porcentaje constante de error,independientemente del n´mero de procesadores y del n´mero de bandas. El factor que sigue influyendo u uen los resultados es el tama˜o del problema: se comprueba que con el problema de mayor tama˜o los n nporcentajes de error obtenidos son inferiores. Por ultimo, comparamos estos resultados con los de la tabla 3.19: la introducci´n de bandas en el ´ opipeline no incrementa los porcentajes de error; al contrario, los errores presentados en las tablas 3.20 y3.21 se reducen, obteni´ndose un error medio de las ejecuciones para M = 500 inferior al 5 %. e3.8.3. El n´ mero de etapas es superior al n´ mero de procesadores: mapping u u c´ ıclico por bloques Para validar nuestro modelo en el caso general, realizamos una experiencia computacional similar a ladesarrollada en las subsecciones previas y hemos obtenido una precisi´n comparable en las predicciones. oDesarrollamos nuevos experimentos, variando ahora el tama˜o del buffer y los valores de grano para ntodas las m´quinas La tabla 3.22 muestra los tiempos de ejecuci´n del algoritmo paralelo y el tiempo a oestimado por el modelo para el problema sint´tico con M = 100, n = 20 y p = 4 cuando se ejecuta el eproblema sobre el cluster compuesto unicamente por las m´quinas intermedias y lentas. La configuraci´n ´ a outilizada en este caso ha sido I L I L, donde I representa una m´quina intermedia y L una m´quina a alenta. Hemos ejecutado el programa que utiliza la librer´ llpW variando el tama˜o del buffer y el tama˜o ıa n ndel grano para los procesadores intermedios (GI ) y lentos (GL ) a lo largo del rango de valores posibles:B = 1 . . . 12, GI = 1 . . . 9 y GL = 1 . . . 9. La unica restricci´n que hemos considerado ha sido exigir que el ´ ograno asignado a los procesadores lentos no pueda ser superior al asignado a los procesadores intermedios.La tabla presenta solamente un subconjunto de todas las ejecuciones realizadas. En la tabla 3.22 tambi´n aparece como informaci´n una columna con el n´mero de bandas que se e o ugeneran utilizando la combinaci´n correspondiente de granos. El n´mero de bandas no tiene que ser un o uvalor exacto: si lo es, se trata de ejecuciones donde las bandas est´n completas, si no es as´ estamos a ı,trabajando con pipelines donde alg´n procesador no trabaja en la ultima banda. Todas estas situaciones u ´se tuvieron en cuenta en la descripci´n del modelo (secci´n 3.7.3). Se comprueba que el error relativo que o oha cometido nuestro modelo es muy reducido. En 26 pruebas, de un total de 45 ejecuciones que aparecenen la tabla, el error est´ por debajo del 3 %. Esta cantidad supone un 57.78 % de las ejecuciones; y en ael 88.89 % del total de las ejecuciones, el error no supera el 5 %. Adem´s, en ning´n caso obtenemos un a uerror superior al 6 %. Esta experiencia no permite unicamente validar nuestro modelo anal´ ´ ıtico, sino tambi´n comprobar eexperimentalmente qu´ combinaci´n de par´metros es la mejor soluci´n. El m´ e o a o ınimo tiempo de ejecuci´n se oalcanza con la combinaci´n B = 1, GI = 7 y GL = 3, con 56.50 segundos de ejecuci´n. Esta combinaci´n o o oes tambi´n la que obtiene el m´ e ınimo de los tiempos calculados por el modelo anal´ ıtico (l´ ınea en negrita
  • 133. 3.8. VALIDACION DEL MODELO ANAL´ ´ ITICO 129Tabla 3.20: Validaci´n del modelo: mapping c´ o ıclico puro con 5 y 10 bandas para el tama˜o del problema M = 50. n p=4 n = 20 - M = 50 n = 40 - M = 50 Configuraci´n o Tiempo Real Modelo Error Tiempo Real Modelo Error IRRL 6.90 6.59 4.49 % 13.75 13.14 4.44 % LRIR 6.92 6.59 4.77 % 13.82 13.14 4.92 % LIRR 6.92 6.59 4.77 % 13.78 13.15 4.57 % IRLR 6.93 6.59 4.91 % 13.78 13.14 4.64 % LRRI 6.87 6.59 4.08 % 13.85 13.14 5.13 % ILRR 6.93 6.59 4.91 % 13.80 13.14 4.78 % p=6 n = 30 - M = 50 n = 60 - M = 50 Configuraci´n o Tiempo Real Modelo Error Tiempo Real Modelo Error IIRRLL 6.95 6.65 4.32 % 13.75 13.23 3.78 % IRLIRL 7.01 6.63 5.42 % 13.89 13.19 5.04 % LLIIRR 7.00 6.65 5.00 % 13.83 13.23 4.34 % LIIRRL 7.15 6.63 7.27 % 14.54 13.21 9.15 % IRIRLL 7.00 6.65 5.00 % 13.87 13.23 4.61 % IRRLIL 7.01 6.63 5.42 % 14.38 13.19 8.28 % p=8 n = 40 - M = 50 n = 80 - M = 50 Configuraci´n o Tiempo Real Modelo Error Tiempo Real Modelo Error IIIRRRLL 6.95 6.67 4.03 % 13.81 13.25 4.06 % LLIIIRRR 7.03 6.67 5.12 % 13.89 13.25 4.61 % IRLIRLIR 7.04 6.66 5.40 % 13.96 13.22 5.30 % IIRRLLIR 7.32 6.67 8.88 % 13.94 13.25 4.95 % IIRRLIRL 7.04 6.66 5.40 % 13.96 13.21 5.37 % IRRRLLII 7.27 6.67 8.25 % 13.91 13.25 4.74 % p = 14 n = 70 - M = 50 n = 140 - M = 50 Configuraci´n o Tiempo Real Modelo Error Tiempo Real Modelo Error RRRRIIIILLLLLL 7.24 6.80 6.08 % 14.07 13.38 4.90 % RILRILRILRILLL 7.29 6.80 6.72 % 14.16 13.38 5.51 % RRIILLRRIILLLL 7.26 6.80 6.34 % 14.11 13.38 5.17 % IIRRLLIIRRLLLL 7.26 6.80 6.34 % 14.09 13.38 5.04 % LLLIIIRRRLIRLL 7.30 6.80 6.85 % 14.80 13.38 9.59 % LLLLLLRRRRIIII 7.24 6.80 6.08 % 14.13 13.38 5.31 %
  • 134. 130 CAP´ ITULO 3. EL PARADIGMA PIPELINETabla 3.21: Validaci´n del modelo: mapping c´ o ıclico puro con 5 y 10 bandas para el tama˜o del problema M = 500. n p=4 n = 20 - M = 500 n = 40 - M = 500 Configuraci´n o Tiempo Real Modelo Error Tiempo Real Modelo Error IRRL 68.30 65.50 4.10 % 137.75 131.10 4.83 % LRIR 68.46 65.58 4.21 % 137.80 131.13 4.84 % LIRR 68.51 65.62 4.22 % 137.19 131.22 4.35 % IRLR 68.67 65.58 4.50 % 137.16 131.13 4.40 % LRRI 68.89 65.58 4.80 % 138.85 131.13 6.24 % ILRR 68.72 65.58 4.57 % 137.35 131.13 4.53 % p=6 n = 30 - M = 500 n = 60 - M = 500 Configuraci´n o Tiempo Real Modelo Error Tiempo Real Modelo Error IIRRLL 68.20 65.84 3.46 % 136.49 131.61 3.58 % IRLIRL 69.05 65.67 4.90 % 137.33 131.26 4.42 % LLIIRR 68.63 65.84 4.07 % 137.24 131.61 4.10 % LIIRRL 72.48 65.69 9.37 % 137.25 131.45 4.23 % IRIRLL 68.69 65.84 4.15 % 137.21 131.61 4.08 % IRRLIL 68.81 65.67 4.56 % 137.91 131.26 4.82 % p=8 n = 40 - M = 500 n = 80 - M = 500 Configuraci´n o Tiempo Real Modelo Error Tiempo Real Modelo Error IIIRRRLL 68.20 65.86 3.43 % 136.30 131.63 3.48 % LLIIIRRR 68.72 65.86 4.16 % 137.43 131.63 4.22 % IRLIRLIR 68.85 65.69 4.59 % 137.55 131.28 4.56 % IIRRLLIR 68.80 65.86 4.27 % 137.39 131.63 4.19 % IIRRLIRL 68.80 65.69 4.52 % 137.62 131.28 4.61 % IRRRLLII 68.89 65.86 4.40 % 137.57 131.63 4.32 % p = 14 n = 70 - M = 500 n = 140 - M = 500 Configuraci´n o Tiempo Real Modelo Error Tiempo Real Modelo Error RRRRIIIILLLLLL 69.09 65.99 4.45 % 138.03 131.76 4.54 % RILRILRILRILLL 69.16 65.99 4.58 % 137.94 131.76 4.48 % RRIILLRRIILLLL 69.16 65.99 4.58 % 137.69 131.76 4.31 % IIRRLLIIRRLLLL 69.21 65.99 4.65 % 137.94 131.76 4.48 % LLLIIIRRRLIRLL 72.86 65.99 9.43 % 146.90 131.76 10.31 % LLLLLLRRRRIIII 69.05 65.99 4.43 % 138.19 131.76 4.65 %
  • 135. 3.8. VALIDACION DEL MODELO ANAL´ ´ ITICO 131 Tabla 3.22: Validaci´n del modelo: mapping c´ o ıclico por bloques. p= 4 - M = 100 - n = 20 - Configuration: I L I L Buffer GI GS N´m. Bandas Tiempo Real Modelo u Error 1 1 1 5 77.66 76.39 1.64 % 1 2 1 3.33 60.92 60.44 0.80 % 1 3 3 1.67 92.85 91.58 1.37 % 1 4 2 1.67 62.88 61.25 2.59 % 1 5 5 1 78.68 77.53 1.46 % 1 6 4 1 63,19 62.33 1.36 % 1 7 3 1 56.50 53.95 4.51 % 1 8 2 1 64.87 61.23 5.62 % 1 9 1 1 72.84 68.50 5.96 % 2 1 1 5 77.88 76.65 1.57 % 2 2 1 3.33 63.09 60.42 4.24 % 2 3 3 1.67 93.06 91.95 1.19 % 2 4 2 1.67 62.55 61.70 1.35 % 2 5 5 1 80.22 79.03 1.48 % 2 6 4 1 64.69 63.83 1.34 % 2 7 3 1 58.85 55.38 5.88 % 2 8 2 1 65.76 62.43 5.07 % 2 9 1 1 73.03 69.47 4.88 % 5 1 1 5 78.57 77.53 1.33 % 5 2 1 3.33 61.73 60.41 2.15 % 5 3 3 1,67 94.77 93.08 1.79 % 5 4 2 1.67 65.63 63.05 3.93 % 5 5 5 1 84.80 83.55 1.47 % 5 6 4 1 69.43 68.34 1.56 % 5 7 3 1 63.19 59.69 5.55 % 5 8 2 1 69.39 66.04 4.82 % 5 9 1 1 75.68 72.40 4.33 % 7 1 1 5 79.23 78.13 1.39 % 7 2 1 3.33 62.35 59.81 4.08 % 7 3 3 1.67 94.43 93.83 0.64 % 7 4 2 1.67 64.33 63.95 0.60 % 7 5 5 1 87.69 86.57 1.28 % 7 6 4 1 72.43 71.36 1.48 % 7 7 3 1 65.50 62.56 4.49 % 7 8 2 1 71.17 68.46 3.81 % 7 9 1 1 77.52 74.36 4.08 % 11 1 1 5 80.30 79.33 1.21 % 11 2 1 3.33 62.46 60.10 3.77 % 11 3 3 1.67 96.57 95.32 1.29 % 11 4 2 1.67 67.55 65.75 2.66 % 11 5 5 1 94.26 92.61 1.75 % 11 6 4 1 79.04 77.39 2.09 % 11 7 3 1 70.73 68.31 3.42 % 11 8 2 1 76.46 73.29 4.15 % 11 9 1 1 81.38 78.27 3.82 %
  • 136. 132 CAP´ ITULO 3. EL PARADIGMA PIPELINEen la tabla 3.22). Se puede observar en la tabla que la combinaci´n B = 1, G I = 3 y GL = 3, requiere un otiempo de ejecuci´n de 92.85 segundos. Esto significa un rendimiento relativo peor en un 65 % y da una oidea de la importancia de realizar una buena selecci´n de par´metros. o a Con estos resultados podemos considerar validado nuestro modelo para todas las situaciones posiblesen sistemas heterog´neos. e3.9. M´todos de predicci´n de los par´metros optimos e o a ´ La asignaci´n ´ptima de trabajo a procesadores es un factor crucial que determina el rendimiento del o oalgoritmo paralelo, como hemos ilustrado en los resultados de la secci´n 3.8. En esta secci´n analizaremos o oel problema de encontrar el mapping ´ptimo de un algoritmo pipeline sobre un anillo de procesadores. oConsideramos dos variables: el n´mero de procesos virtuales sobre cada procesador f´ u ısico y el tama˜o nde los paquetes que se env´ıan. El problema del mapping se define como el problema de encontrar lacombinaci´n ´ptima de los par´metros que minimiza el tiempo total de ejecuci´n. o o a o Para el caso homog´neo, la herramienta llp permite predecir los valores ´ptimos de los par´metros e o ade forma autom´tica, seleccionando tambi´n el n´mero ´ptimo de procesadores f´ a e u o ısicos [132, 133] (secci´n o3.4). Para los sistemas heterog´neos a´n no es posible obtener esta distribuci´n utilizando llpW de forma e u oautom´tica, pero las capacidades predictivas del modelo anal´ a ıtico presentado en la secci´n 3.7, pueden oser utilizadas para predecir los valores de los par´metros en una ejecuci´n ´ptima; es decir, establecer los a o ovalores Gi y B para que la funci´n de complejidad anal´ o ıtica, Tpar , alcance su valor m´ ınimo. El problemade encontrar el mapping ´ptimo puede ser resuelto por varios m´todos. Una primera aproximaci´n, con- o e osiderada en la literatura, es la minimizaci´n anal´ o ıtica de Tpar [11]. La minimizaci´n anal´ o ıtica impone unimportante desarrollo te´rico matem´tico, que en el caso de nuestro modelo anal´ o a ıtico parece una tareainabordable debido al n´mero de variables involucradas. La segunda aproximaci´n a ser considerada es la u ominimizaci´n num´rica de la funci´n de complejidad [84]. Esta secci´n describe dos estrategias num´ricas o e o o eque hemos considerado para abordar el problema de predecir los valores ´ptimos de los par´metros. La o aprimera estrategia consiste en un m´todo exacto que enumera cada soluci´n v´lida del espacio de solu- e o aciones. La segunda es utilizar la heur´ ıstica de recocido simulado (simulated annealing) que ha demostradoser muy eficiente.3.9.1. M´todo exacto enumerativo e En [84] hemos presentado un m´todo exacto para resolver el problema del mapping ´ptimo en un e osistema homog´neo. Es un m´todo tipo Golden Section [147], que aprovecha las propiedades de convexidad e ede las funciones anal´ ıticas. La figura 3.43 muestra el comportamiento de la funci´n cuando fijamos uno de olos par´metros y modificamos el valor del otro. La idea b´sica, para encontrar el m´ a a ınimo, es ir movi´ndonos ea lo largo de la direcci´n descendente mientras la funci´n anal´ o o ıtica decrece. El algoritmo finaliza con lasoluci´n ´ptima despu´s de unas pocas evaluaciones de la funci´n anal´ o o e o ıtica. Esta estrategia ha probadoser muy eficiente y precisa. El comportamiento de la funci´n anal´ o ıtica en sistemas heterog´neos es diferente. La figura 3.44 muestra ela forma de esta funci´n en las ejecuciones experimentales. En la figura 3.44-Izquierda presentamos oel comportamiento de la funci´n Tpar cuando fijamos el n´mero de procesadores (p = 4) y el valor o udel grano para los procesadores lentos (GL = 1), para distintos valores de buffer y variamos el granoasignado a los procesadores intermedios. En la figura 3.44-Derecha se muestra su comportamiento cuandofijamos el n´mero de procesadores y la combinaci´n de los granos para todas las m´quinas, y variamos u o ael tama˜o del buffer. Ahora no observamos la misma forma convexa del caso homog´neo. Este hecho nos n efuerza a una enumeraci´n completa del espacio de soluciones v´lidas como un primer m´todo exacto. o a eSi la m´quina heterog´nea comprende s´lo 2 tipos de procesadores, este m´todo exacto presenta una a e o e
  • 137. ´ ´ ´ ´3.9. METODOS DE PREDICCION DE LOS PARAMETROS OPTIMOS 133Figura 3.43: Comportamiento de los sistemas homog´neos. Izquierda: Fijamos el valor del buffer y variamos el evalor del grano para diferente n´mero de procesadores. Derecha: Fijamos el valor del grano y movemos el buffer upara distinto n´mero de procesadores. ucomplejidad de tiempo de orden O((M/p) ∗ (n2 /p2 )) donde n es el n´mero de etapas del pipeline, M R uel n´mero de estados de cada etapa, p es el n´mero de procesadores y pR es el n´mero de procesadores u u ur´pidos. Desafortunadamente, este orden de complejidad crece cuando se incrementa el n´mero de tipos a ude procesadores.Figura 3.44: Comportamiento de los sistemas heterog´neos. Izquierda: Fijamos el valor del grano de los proce- esadores lentos (GL ) y movemos el grano de los procesadores intermedios (GI ) para diferentes valores del buffer.Derecha: Fijamos una combinaci´n de GI y GL y movemos el valor del buffer. o3.9.2. Un m´todo heur´ e ıstico Consideremos ahora la alternativa de una aproximaci´n heur´ o ıstica para encontrar el mapping ´ptimo. oEs un procedimiento r´pido que proporciona los par´metros para alcanzar una soluci´n pr´xima a la a a o o´ptima. El algoritmo b´sico que proponemos aparece en la figura 3.45.o a El algoritmo consiste en una ejecuci´n multiarranque de una heur´ o ıstica de recocido simulado, ejecu-tando desde puntos de inicio aleatorios, para encontrar la distribuci´n ´ptima (buffer, G R , GI , GL ). Dada o ouna distribuci´n, el procedimiento encuentra una nueva soluci´n en su entorno. La nueva distribuci´n es o o ogenerada siguiendo un m´todo aleatorio: seleccionamos al azar un par´metro a modificar (buffer, G R , GI e ao GL ), y decidimos si el valor de este par´metro vamos a incrementarlo o reducirlo. El nuevo mapping es a
  • 138. 134 CAP´ ITULO 3. EL PARADIGMA PIPELINE 1 BestDistribution = InitializeDistribution (); 2 BestTime = T(BestDistribution); 3 repeat five times { 4 Temperature = InitialTemperature; 5 while (Temperature > FinalTemperature) { 6 for (i = 1; i <= NumberOfIterations; i++) { 7 NewDistribution = GenerateDistribution (NewDistribution); 8 NewTime = T (NewDistribution); 9 if (NewTime < BestTime) {10 BestTime = NewTime;11 BestDistribution = NewDistribution;12 }13 else {14 // Aceptar con probabilidad exp(-(NewTime - BestTime)/Temperature)15 }16 }17 ReduceTemperature;18 }19 NewDistribution = GenerateRandomDistribution();20 NewTime = T (NewDistribution);21 if (NewTime < BestTime) {22 BestTime = NewTime;23 BestDistribution = NewDistribution;24 }25 } Figura 3.45: C´digo del m´todo heur´ o e ıstico para calcular la distribuci´n optima de B, G R , GI y GS . o ´aceptado si se mejora el resultado hasta el momento. Debido a la presencia de muchos m´ ınimos localesen la funci´n objetivo, algunas distribuciones que no mejoran el resultado actual son aceptadas con una ocierta probabilidad.3.10. Predicci´n de los par´metros optimos o a ´ Esta secci´n presenta los resultados computacionales que nos ayudan a encontrar el mapping ´ptimo o opara problemas espec´ ıficos. Las distribuciones proporcionadas por el m´todo exacto son comparadas econ las soluciones dadas por la t´cnica heur´ e ıstica. La tabla 3.23 muestra los resultados para diferentestama˜os de problemas con p = 4, 6, 8, 14. El n´mero de etapas (n) y el tama˜o del problema (M ), junto n u ncon la configuraci´n de procesadores utilizada, se muestra como cabecera por encima de los resultados oobtenidos. Las columnas etiquetadas como Buffer, GR , GI y GL muestran la distribuci´n de trabajos. La ocolumna Tiempo Real contiene el tiempo real de ejecuci´n obtenido al ejecutar el programa paralelo con ola distribuci´n correspondiente. La columna Modelo presenta el tiempo que predice el modelo anal´ o ıtico.La columna Error es el error relativo cometido en la predicci´n realizada por el modelo al compararla con oel tiempo real de ejecuci´n. La columna Dif. es la diferencia relativa entre el tiempo real de ejecuci´n con o ola distribuci´n obtenida al ejecutar el m´todo exacto y el tiempo real de la distribuci´n proporcionada por o e oel m´todo heur´ e ıstico. La ultima columna (Tiempo Ejecuci´n) muestra el tiempo invertido en la ejecuci´n ´ o opara el m´todo exacto y la heur´ e ıstica para obtener las distribuciones ´ptimas. o Para todos los casos considerados, el m´todo heur´ e ıstico obtiene la distribuci´n ´ptima o soluciones o omuy pr´ximas a la ´ptima. Mencionar que en un caso (M = 1000 y n = 200 con p = 14) el m´todo o o e
  • 139. ´ ´ ´3.10. PREDICCION DE LOS PARAMETROS OPTIMOS 135Tabla 3.23: Predicci´n de los par´metros optimos: comparaci´n de los resultados del m´todo exacto frente a los o a ´ o eresultados obtenidos con la heur´ ıstica. p=4 M = 500 - n = 50 - Configuraci´n: L I R R o M´todo e Buffer GF GI GS Tiempo Modelo Error Dif. Tiempo Real Ejecuci´n o Exacto 1 19 8 4 68.61 68.77 -0.23 % 0.58 Heur´ ıstica 5 18 9 4 73.80 73.96 -0.22 % 7.56 % 0.34 M = 1000 - n = 200 - Configuraci´n: I L R R o Exacto 1 37 16 10 539.89 533.71 1.14 % 68.40 Heur´ ıstica 33 15 6 4 574.67 550.18 4.26 % 6.44 % 0.52 M = 2000 - n = 100 - Configuraci´n: I R R L o Exacto 1 37 16 10 543.55 534.01 1.76 % 17.45 Heur´ ıstica 12 37 16 10 567.84 542.23 4.46 % 4.47 % 0.51 p=6 M = 500 - n = 50 - Configuraci´n: L I I R R L o M´todo e Buffer GF GI GS Tiempo Modelo Error Dif. Tiempo Real Ejecuci´n o Exacto 1 15 6 4 54.45 54.62 -0.31 % 0.42 Heur´ ıstica 3 15 6 4 56.87 55.56 2.30 % 4.44 % 0.39 M = 1000 - n = 200 - Configuraci´n: I L R I L R o Exacto 1 29 13 8 435.14 418.90 3.73 % 47.98 Heur´ ıstica 30 20 7 5 453.30 455.00 -0.38 % 4.17 % 0.48 M = 2000 - n = 100 - Configuration: I R I R L L Exacto 1 29 13 8 432.16 419.08 3.03 % 12.48 Heur´ ıstica 4 10 4 4 434.30 433.15 0.26 % 0.50 % 0.51 p=8 M = 500 - n = 50 - Configuraci´n: L L I I I R R R o M´todo e Buffer GF GI GS Tiempo Modelo Error Dif. Tiempo Real Ejecuci´n o Exacto 1 11 4 1 40.00 40.18 -0.45 % 0.29 Heur´ ıstica 4 11 4 1 44.52 41.51 7.76 % 11.3 % 0.40 M = 1000 - n = 200 - Configuraci´n: I I L L R R R I o Exacto 1 21 9 5 304.51 303.66 0.28 % 34.72 Heur´ ıstica 2 21 8 6 358.08 306.49 14.40 % 17.59 % 0.53 M = 2000 - n = 100 - Configuraci´n: I I R R L I R L o Exacto 1 21 9 5 302.21 303.83 -0.54 % 8.98 Heur´ ıstica 5 7 3 2 325.69 313.76 3.66 % 7.79 % 0.53 p = 14 M = 500 - n = 50 - Configuraci´n: I I R R L L I I R R L L L L o M´todo e Buffer GF GI GS Tiempo Modelo Error Dif. Tiempo Real Ejecuci´n o Exacto 1 4 1 1 29.36 29.28 0.27 % 0.25 Heur´ ıstica 5 4 1 1 30.16 30.12 0.13 % 2.72 % 0.56 M = 1000 - n = 200 - Configuraci´n: I R L I R L I R L I R L L L o Exacto 2 28 11 7 228.21 208.07 8.83 % 30.35 Heur´ ıstica 3 7 3 2 217.27 209.77 3.45 % -4.79 % 0.61 M = 2000 - n = 100 - Configuraci´n: I I I I R R R R L L L L L L o Exacto 2 7 3 2 217.72 209.72 3.67 % 7.77 Heur´ ıstica 1 7 3 2 218.02 209.78 3.78 % 0.14 % 0.61
  • 140. 136 CAP´ ITULO 3. EL PARADIGMA PIPELINEheur´ıstico ofrece un mejor resultado que el m´todo exacto, debido a que el error cometido por el modelo econ la distribuci´n del m´todo exacto alcanza casi el 9 % de error, mientras que con la heur´ o e ıstica el errorno llega al 4 %. Podemos ver tambi´n que el tiempo de ejecuci´n para el algoritmo exacto depende del e otama˜o del problema. El problema m´s grande es el que consume mayor cantidad de tiempo para obtener n ael resultado. Este tiempo de ejecuci´n se incrementa tambi´n con el n´mero de tipos de procesadores o e uincluidos. Sin embargo, como esper´bamos, el tiempo de ejecuci´n del m´todo heur´ a o e ıstico permanececonstante. Aunque para problemas peque˜os, el m´todo exacto invierte muy poco tiempo, para problemas n egrandes es recomendable usar la t´cnica heur´ e ıstica.3.11. Conclusiones Proponemos la herramienta llpW y un modelo anal´ ıtico que cubre una amplia clase de algoritmospipeline y considera la heterogeneidad debida tanto al c´mputo como a las comunicaciones. La herra- omienta permite una implementaci´n sencilla y eficiente de pipelines sobre una plataforma heterog´nea. o eHemos comprobado, ejecutando algoritmos de programaci´n din´mica, que con herramientas adaptadas o aa entornos heterog´neos se consigue incrementar el rendimiento del sistema en la resoluci´n de un pro- e oblema. Tambi´n validamos el modelo anal´ e ıtico desarrollado sobre un cluster heterog´neo, demostr´ndose e ala precisi´n de nuestras predicciones. o Hemos desarrollado un modelo anal´ ıtico que predice el efecto del grano y del buffer en los algoritmospipeline. El modelo anal´ ıtico permite una estimaci´n sencilla de estos par´metros a partir de una simple o aaproximaci´n num´rica. o e El modelo presentado constituye la base para resolver el problema del mapping ´ptimo en los algo- oritmos pipelines en sistemas heterog´neos. El mapping ´ptimo es calculado usando una aproximaci´n e o oalgor´ ıtmica, que considera dos estrategias diferentes: un m´todo heur´ e ıstico que permite obtener, de formamuy eficiente, los par´metros para una ejecuci´n ´ptima y un algoritmo exacto que enumera todas las a o osoluciones posibles. Como trabajo futuro, nos proponemos extender el modelo para un esquema pipeline m´s general y aseguiremos una aproximaci´n similar a la presentada en [84], sobre sistemas homog´neos para proporcionar o eun mapping ´ptimo autom´tico para pipelines en sistemas heterog´neos. Este modelo ya se ha incluido en o a ela herramienta para el caso homog´neo (llp): cuando se ejecuta la primera banda, la herramienta estima elos par´metros definiendo la funci´n T (G, B) y calcula los valores ´ptimos de G y B. La sobrecarga a o ointroducida es despreciable, debido a que s´lo se requieren unas pocas evaluaciones de la funci´n objetivo. o oDespu´s de esta primera banda, la ejecuci´n del algoritmo paralelo contin´a con las siguientes bandas e o uhaciendo uso de los par´metros ´ptimos de grano y buffer calculados ([82, 83]). Al a˜adir el n´mero a o n ude procesadores como par´metro en esta funci´n (T (G, B, p)), una minimizaci´n anal´ a o o ıtica de esta nuevafunci´n es una tarea impracticable. Sin embargo, una aproximaci´n num´rica propociona el m´ o o e ınimo cons´lo algunas evaluaciones de la funci´n objetivo. o o Del mismo modo que en sistemas homog´neos, el bajo error observado y la simplicidad de nuestra epropuesta, permite hacer uso de esta metodolog´ en herramientas paralelas que calculan los par´metros, ıa aautom´ticamente, en tiempo de ejecuci´n; incluyendo tambi´n el n´mero de procesadores en el c´lculo del a o e u amapping y utilizar una estrategia din´mica de distribuci´n de tareas basada en la carga de las m´quinas del a o asistema. Mediante esta estrategia, el programa calcula la carga de las m´quinas al comenzar la ejecuci´n a oy predice la distribuci´n ´ptima para las caracter´ o o ısticas actuales del sistema, resolviendo el problema conlos par´metros calculados. a
  • 141. Cap´ ıtulo 4El Problema de la Predicci´n de la oEstructura Secundaria del RNA4.1. Resumen En este cap´ıtulo resolvemos un problema importante en el ´mbito de la biolog´ molecular: el proble- a ıama de la predicci´n de la estructura secundaria del RNA. Utilizamos algoritmos de programaci´n o odin´mica [103] que, como ya hemos comentado en cap´ a ıtulos anteriores, es una t´cnica de optimizaci´n e ocombinatoria ampliamente utilizada en m´ltiples campos: teor´ de control, investigaci´n operativa, com- u ıa oputaci´n y, m´s recientemente, en el ´mbito de biolog´ Muchos autores han desarrollado algoritmos o a a ıa.de programaci´n din´mica para familias de problemas multietapa. Sin embargo, la clase m´s general o a ade problemas, donde las dependencias aparecen entre etapas no consecutivas, no ha sido estudiada enprofundidad. El problema del emparejamiento de bases del RNA es uno de los problemas incluidos enesta ultima clase. ´ Uno de los paquetes de software m´s importantes que resuelven este problema es el paquete de aViena [72, 98]. Hemos paralelizado la funci´n principal de este paquete, derivando instancias diferentes oque se corresponden con un recorrido horizontal y con un recorrido vertical del dominio del problema.Desarrollamos una primera aproximaci´n paralela donde el n´mero de tareas asignadas a cada procesador o use mantiene constante durante toda la resoluci´n del problema. A´n cuando la cantidad asignada sea la o umisma para todos los procesadores y todas las iteraciones del algoritmo, nos encontramos en un sistemaheterog´neo seg´n la definici´n dada en la secci´n 1.2: un programa donde el trabajo realizado var´ entre e u o o ıalas distintas iteraciones, ejecutado sobre una plataforma homog´nea. Esto es debido a que la cantidad de etrabajo que requiere cada iteraci´n es diferente y depende del elemento a calcular en cada momento. o Adem´s, formulamos y resolvemos anal´ a ıticamente un problema de optimizaci´n para determinar el otama˜o del bloque de c´digo que minimiza el tiempo total de ejecuci´n del programa paralelo. La vali- n o odaci´n de nuestro modelo anal´ o ıtico para el algoritmo paralelo la presentamos en [4] y demostramos que losresultados experimentales obtenidos presentan un comportamiento acorde a las predicciones de nuestromodelo te´rico. En [5] ampliamos el estudio desarrollando un modelo estad´ o ıstico. Este modelo estad´ısticoes v´lido en cualquier instancia, incluso cuando las hip´tesis del modelo anal´ a o ıtico no son satisfechas. Posteriormente, consideramos el hecho de que en cada iteraci´n se realiza una cantidad distinta de otrabajo, para plantearnos una modificaci´n de nuestro programa. En esta nueva versi´n permitimos o oresolver el problema asignando un n´mero diferente de tareas en cada iteraci´n del algoritmo. De esta u oforma, podemos adaptar el tama˜o del bloque de c´digo ´ptimo a la cantidad de trabajo a realizar en n o ocada momento y reducir el tiempo de ejecuci´n del programa. Comparamos los resultados obtenidos con olas dos versiones para verificar el rendimiento del sistema al ejecutar con la segunda versi´n. Empleamos o 137
  • 142. 138 CAP´ ´ ITULO 4. LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNAlos modelos anteriores para predecir la cantidad ´ptima de tareas a asignar a los procesadores en cada oiteraci´n. o4.2. Introducci´n o La investigaci´n en biolog´ molecular est´ b´sicamente orientada a la comprensi´n de la estructura y o ıa a a ofuncionamiento de los ´cidos nucleicos y de las prote´ a ınas. Este campo ha sufrido un avance espectaculardesde el descubrimiento de la estructura del DNA (´cido desoxirribonucleico) en 1953. Con el incre- amento de la capacidad para manipular secuencias de biomol´culas, se ha generado una gran cantidad ede informaci´n. La necesidad de procesar esta informaci´n ha creado nuevos problemas de naturaleza o ointerdisciplinar. Los bi´logos son los creadores y usuarios finales de estos datos; sin embargo, debido al otama˜o y complejidad de esta informaci´n, se necesita la ayuda de otras disciplinas, en particular de n olas matem´ticas y de la inform´tica. Esto ha derivado en la creaci´n de un nuevo campo muy amplio, a a odenominado biolog´ molecular computacional. El t´rmino bioinform´tica ha sido utilizado por ıa e adiferentes disciplinas para referirse a varias cuestiones. En general, se puede aplicar este t´rmino para ereferirse a las tecnolog´ de la informaci´n aplicadas a la gesti´n y an´lisis de los datos biol´gicos. Esto ıas o o a oengloba desde la inteligencia artificial y la rob´tica hasta la biolog´ molecular. En el ap´ndice A intro- o ıa educimos el contexto en el que se encuentra el problema que resolvemos en este cap´ ıtulo y la terminolog´ ıaadecuada para asimilar los conceptos. En biolog´ molecular existen problemas que requieren algoritmos eficientes, porque deben resolverse ıamiles de veces al d´ un ejemplo cl´sico de estos problemas es la comparaci´n de secuencias: dadas dos ıa; a osecuencias, que representan biomol´culas, pretendemos saber cu´l es la similitud entre las dos. Cons- e atantemente se dise˜an nuevos y mejores algoritmos y aparecen nuevos subcampos de investigaci´n. La n oprogramaci´n din´mica es uno de los m´todos m´s utilizados en estos algoritmos [194]. o a e a En este cap´ıtulo hemos resuelto el problema de la predicci´n paralela de la estructura se- ocundaria del RNA Este problema tambi´n se conoce como el problema del plegamiento de la emol´cula de RNA o el problema del emparejamiento de bases. Para determinar su soluci´n e oimplementamos el algoritmo de programaci´n din´mica presentado en [162]. Como ya ha sido comenta- o ado anteriormente, la programaci´n din´mica es una importante t´cnica de optimizaci´n combinatoria, o a e oaplicada a una amplia variedad de campos (teor´ de control, investigaci´n operativa, biolog´ computa- ıa o ıacional, etc.). En la secci´n 2.8 hemos presentado el m´todo de funcionamiento de esta t´cnica. Muchos o e eautores describen algoritmos paralelos de programaci´n din´mica para problemas espec´ o a ıficos, como elproblema de la mochila entera 0/1, la asignaci´n de recursos, la b´squeda de la subsecuencia m´s larga o u a[85]. Esta clase de problemas ha sido extensamente estudiada y paralelizada de forma eficiente sobrelas arquitecturas actuales durante la ultima d´cada. Esta primera familia de problemas sigue un patr´n ´ e osimilar: son problemas multietapa, donde las ecuaciones de recurrencia de la programaci´n din´mica pro- o aducen s´lo dos tipos de dependencias: dentro de una misma etapa y entre etapas consecutivas. Podemos ocaracterizar esta clase de problemas mediante ecuaciones de recurrencia uniformes [106]. Esto se refieretanto a ecuaciones de recurrencia uniforme cl´sicas (por ejemplo, el problema de comparaci´n de cadenas a o[162]), como a recurrencias no uniformes solamente en una de las coordenadas. En este ultimo caso, el ´problema es tratado como si fuera uniforme simplemente cambiando el eje de coordenadas no uniforme;es decir, la dependencia no uniforme es proyectada y ocultada en la memoria local. De esta manera sehan paralelizado el problema de la mochila y el problema de asignaci´n de recursos [12, 85]. o Una familia m´s general de recurrencias aparece cuando aplicamos la programaci´n din´mica al pro- a o ablema de obtener el camino m´s corto, la b´squeda ´ptima sobre un ´rbol binario, la parentizaci´n ´ptima a u o a o odel producto encadenado de matrices o el problema de la predicci´n de la estructura secundaria del RNA o[77, 79, 155]. En esta segunda clase se observa que aparecen nuevas dependencias entre etapas no conse-cutivas. Estas nuevas dependencias pueden ser consideradas como una nueva fuente de comunicaciones;obviamente, esto hace que la paralelizaci´n sea m´s compleja. Se han realizado diversos estudios sobre o aeste tipo de recurrencias, buscando modelos que minimicen el coste debido a las comunicaciones. En
  • 143. ´4.2. INTRODUCCION 139[76, 90, 120] se encuentran trabajos donde se utilizan matrices triangulares para resolver las recurrenciasasociadas. En [23, 67, 77, 79, 158] se describen varios algoritmos que resuelven los mismos problemasusando el modelo CREW-PRAM para sistemas de memoria compartida. En este cap´ıtulo estudiamos esta segunda clase de ecuaciones de recurrencia, con las peculiaridades delproblema de la predicci´n de la estructura secundaria del RNA y realizamos una paralelizaci´n eficiente o ousando una topolog´ simple de pipeline sobre un anillo. Debido a que es un problema bioqu´ ıa ımico deconsiderable importancia, se han propuesto diversos algoritmos en las ultimas d´cadas, algunos de ellos ´ epueden encontrarse en [183]. Posteriormente, en [123], se presenta un algoritmo dise˜ado para computar ntodas las posibilidades del emparejamiento de bases y en [72] se presenta una implementaci´n de este oalgoritmo para una arquitectura de paso de mensajes. Todos ellos requieren muchos recursos computa-cionales. Como consecuencia de esto se han propuesto varios algoritmos paralelos. Por ejemplo, en [72, 98]se presenta uno de los paquetes de software m´s utilizados para resolver el problema del emparejamiento ade bases del RNA (el paquete de Viena), realizando una adaptaci´n de los algoritmos a m´quinas para- o alelas con memoria distribuida y arquitectura de hipercubo. Estos trabajos consideran una distribuci´n oequilibrada de tareas, pero sin tener en cuenta el coste debido a las comunicaciones. En este cap´ ıtulopresentamos una paralelizaci´n de la funci´n principal de este paquete, que predice el plegamiento de o ouna secuencia RNA, considerando la heterogeneidad producida por el programa (secci´n 1.2). En [126] olos autores emplean una t´cnica conocida como particionado del espacio de direcciones (o tiling ) e[105, 188] para resolver esta clase de ecuaciones de recurrencia y demuestran su utilidad en los resultadosobtenidos. Otro trabajo importante se encuentra en [34], donde se demuestra experimentalmente que,para las secuencias de longitud 9212, las comunicaciones requieren aproximadamente el 50 % del tiempode ejecuci´n. Esto demuestra claramente las ventajas de agrupar los c´mputos en bloques para reducir el o on´mero de comunicaciones; sin embargo, los autores trabajan con un sistema considerado hoy obsoleto. uEn [99] tambi´n consideran secuencias de RNA muy largas (concretamente la del HIV) y resuelven el eproblema de la predicci´n de su estructura secundaria y la comparaci´n entre estructuras secundarias so- o obre m´quinas masivamente paralelas, demostrando su utilidad. En [163] se dise˜a un algoritmo gen´tico a n eparalelo masivo y se prueba sobre m´quinas SGI Origin 2000 y Cray T3E. Otros problemas biol´gi- a ocos relacionados con el an´lisis de secuencias y la s´ a ıntesis de prote´ınas tambi´n est´n siendo abordadas e amediante programaci´n din´mica [173]. o a Considerando los trabajos anteriores, concluimos que encontrar un buen equilibrio entre los costesdebidos al c´mputo y a las comunicaciones, es la principal dificultad para obtener una implementaci´n o oparalela eficiente. La t´cnica tiling o particionado del espacio de direcciones, es una t´cnica especial de- e esarrollada para este prop´sito [105, 188]. Esta aproximaci´n es utilizada de forma autom´tica por los o o acompiladores para controlar la granularidad de los programas e incrementar la relaci´n entre el c´mputo o oy la comunicaci´n [45, 109, 149, 161, 187] o bien, empleado para sintonizar manualmente c´digos se- o ocuenciales y paralelos. Un bloque de c´mputo (o tile) en el espacio de direcciones es un grupo de oiteraciones con forma de paralelep´ ıpedo que va a ser ejecutado como una unidad; todos los datos nolocales, requeridos para cada uno de los bloques, deben ser obtenidos previamente (por ejemplo, conllamadas a funciones de librer´ como MPI [89, 134]). El cuerpo del tile es ejecutado a continuaci´n. ıas oEste c´digo no contiene llamadas a ninguna rutina de comunicaci´n. Por ultimo, se transmiten los datos o o ´necesarios para los siguientes c´mputos. Este proceso se repite de forma iterativa. El problema del otiling puede ser definido como el problema de elegir los par´metros del tile (forma y tama˜o) para una a nejecuci´n ´ptima. Generalmente, esto requiere resolver un problema de optimizaci´n discreta no-lineal. o o oLa mayor´ de los trabajos sobre tiling ´ptimo, consideran jerarqu´ de bucles perfectos con un espacio ıa o ıasde iteraciones (o dominio) con forma de paralelep´ ıpedo y dependencias uniformes. El tiling se denominaortogonal [12, 13], cuando los l´ ımites del tile son paralelos a los l´ımites del dominio. Cuando se relajaesta restricci´n aparece un tiling obliquo [61, 100, 101]. o En este cap´ıtulo resolvemos el problema del tiling ´ptimo cuando disponemos de un espacio de iteracio- ones triangular n×n con dependencias no uniformes, utilizando una topolog´ de anillo con p procesadores. 2 ıaNuestra aproximaci´n se compone de 2 fases: en la primera fase (el preprocesamiento), los p proce- osadores trabajan de forma independiente sobre una parte del espacio de iteraciones triangular de tama˜on
  • 144. 140 CAP´ ´ ITULO 4. LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNAnp × n . Esta fase finaliza con un intercambio de datos entre todos los procesadores. En la segunda fase, plos procesadores trabajan en un pipeline. Aplicamos la aproximaci´n tiling a esta segunda fase, donde odisponemos de un dominio de iteraci´n que permite usar bloques de c´mputo rectangulares. Adaptamos o olas t´cnicas propuestas en [12, 13] al caso considerado y desarrollamos una extensi´n de la aproximaci´n e o otiling ortogonal para las recurrencias no uniformes. Determinamos una ecuaci´n anal´ o ıtica para obtener eltiempo de ejecuci´n de nuestros programas y formulamos un problema de optimizaci´n discreta no-lineal o opara encontrar el tama˜o del tile. Nuestro modelo est´ basado en el modelo BSP [124, 178], un modelo n aportable ampliamente aceptado para la predicci´n del rendimiento sobre m´quinas paralelas. Nuestra o asoluci´n puede ser f´cilmente incorporada a un compilador sin producir sobrecarga, debido a que es un o am´todo exacto y anal´ e ıtico. Adem´s tambi´n desarrollamos una aproximaci´n estad´ a e o ıstica que nos permiteencontrar un tama˜o del tile pr´ximo al ´ptimo en las situaciones donde no se cumplen las hip´tesis del n o o omodelo anal´ ıtico. Nuestras contribuciones espec´ ıficas para resolver este problema pueden resumirse en la siguiente lista[4, 5]: Proponemos un nuevo esquema paralelo para una amplia clase de recurrencias, con un espacio de iteraciones triangular y dependencias no uniformes. El problema del emparejamiento de bases del RNA es un caso particular de esta clase de recurrencias. Desarrollamos y extendemos una aproximaci´n tiling para este tipo de recurrencias. Proponemos y o analizamos diferentes recorridos del dominio de iteraciones: horizontal y vertical. Usando el modelo BSP [124, 178] formulamos un problema de optimizaci´n para determinar el o tama˜o del bloque de c´mputo, que minimice el tiempo total de ejecuci´n del programa, sobre una n o o m´quina paralela con p procesadores configurados como un anillo. a En nuestro esquema paralelo elegimos una distribuci´n donde fijamos el ancho y alto del bloque de o c´mputo, realizando una distribuci´n por columnas entre los procesadores. o o Desarrollamos un modelo estad´ ıstico v´lido para todos los casos, incluso cuando las hip´tesis del a o modelo anal´ ıtico no son satisfechas. Realizamos numerosos experimentos computacionales para validar nuestro modelo te´rico, incluyen- o do la aplicaci´n de estos algoritmos a secuencias reales de RNA. o Modificamos nuestro programa paralelo para procesar cada iteraci´n del algoritmo empleando un o ancho del tile diferente y reducir el tiempo total de ejecuci´n del programa o Nuestra aproximaci´n es similar a la realizada en el primer trabajo donde se demuestra el ´xito de o ela aproximaci´n tiling para esta clase de recurrencias [126]: pretendemos reducir el coste de las comuni- ocaciones realizando una distribuci´n por columnas entre los procesadores. Sin embargo, existen algunas odiferencias: 1. Debido a la fase inicial de preprocesamiento, nuestro esquema paralelo equilibra mejor la carga. 2. En nuestras ecuaciones, tenemos en cuenta el valor de la latencia (β), mientras que en [126] los autores consideran que este valor es igual a 0. 3. Realizamos un an´lisis completo de la funci´n de tiempo en todas las situaciones: cuando los proce- a o sadores del pipeline est´n permanentemente ocupados y cuando los procesadores permanecen inac- a tivos durante un tiempo esperando por los datos (como ha sido comentado en el cap´ ıtulo 3). En [126] solamente consideran la primera de estas dos situaciones. 4. Consideramos bloques de c´mputo rectangulares, mientras que los autores de [126] emplean unica- o ´ mente bloques cuadrados. Adem´s, permitimos bloques de tama˜o variable en cada iteraci´n del a n o algoritmo.
  • 145. ´4.3. EL PROBLEMA DE LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNA 141 El resto del cap´ıtulo lo hemos estructurado de la siguiente manera: En la secci´n 4.3 introducimos oel problema que vamos a resolver, en la secci´n 4.4 describimos uno de los paquetes de software m´s o aimportantes para este problema (el paquete de Viena) y definimos las estrategias de paralelizaci´n de este oproblema (secci´n 4.5). A continuaci´n, desarrollamos la paralelizaci´n del paquete de Viena, utilizando o o oun tama˜o constante de tile (secci´n 4.6) y presentamos los resultados computacionales obtenidos (secci´n n o o4.7). Dise˜amos un modelo anal´ n ıtico para calcular el tama˜o ´ptimo del tile (secci´n 4.8) y comprobamos n o ola validez de este modelo (secci´n 4.9). Tambi´n hemos desarrollado un modelo estad´ o e ıstico alternativoal modelo anal´ ıtico anterior (secci´n 4.10) y comparamos los resultados obtenidos con ambos m´todos o e(secci´n 4.11). En la secci´n 4.12 modificamos el programa para poder utilizar tama˜os variables de o o ntile en cada uno de los rect´ngulos, presentamos los resultados computacionales para esta nueva versi´n a o(secci´n 4.13) y utilizamos los modelos para obtener los valores ´ptimos de los par´metros (secci´n 4.14). o o a oPor ultimo, en la secci´n 4.15 presentamos las conclusiones de este trabajo. ´ o4.3. El problema de la predicci´n de la estructura secundaria o del RNA Una mol´cula de RNA es una cadena monoh´lice compuesta por 4 nucle´tidos: Acetina (A), e e oCitosina (C), Guanina (G), Uracilo (U) (secci´n A.6). Un nucle´tido de alguna parte de la mol´cula o o epuede unirse, formando una base, con un nucle´tido complementario de otra parte de la mol´cula. Esto o eda lugar a pliegues y forma la estructura secundaria del RNA. La secuencia de nucle´tidos determina ode forma unica la manera en que la mol´cula se pliega; por tanto, el problema podr´ enunciarse de ´ e ıala siguiente manera: Dada una secuencia de nucle´tidos correspondientes a una mol´cula de o eRNA, predecir la estructura secundaria de dicha mol´cula, determinando cu´les son las e abases que se aparean entre s´ Es un problema que puede resolverse en tiempo polinomial si se ı.restringe a estructuras que no posean nudos (estructura secundaria). Si aceptamos que pueda poseernudos (estructura terciaria), el problema se convierte en NP-completo. En esta mol´cula, las bases complementarias C-G y A-U forman parejas de bases estables; adem´s e atambi´n existe la uni´n d´bil G-U. Consideramos la mol´cula como una cadena de n caracteres (su e o e eestructura primaria): R = r 1 r2 . . . r n ri ∈ {A, C, G, U } Normalmente, n es del orden de cientos o incluso miles; por ejemplo, el genoma RNA del bacteri´fago oQβ contiene n ≈ 4220 nucle´tidos; el virus de la polio, n ≈ 7500; y el virus HIV, n ≈ 10000. o La estructura secundaria de la mol´cula consiste un conjunto S de pares de bases (r i , rj ), tal que e1 ≤ i < j ≤ n. Si (ri , rj ) ∈ S se dice que ri es una base complementaria de rj y j − i > t, donde t esla distancia m´ınima entre bases para que puedan unirse (j − i > 4). Si (r i , rj ) y (rk , rl ) son dos parejasde bases existen tres alternativas: 1. Es el mismo par de bases: i = k y j = l. Esta condici´n indica que cada nucle´tido puede tomar o o parte, como mucho, en un unico par de bases. ´ 2. (ri , rj ) precede a (rk , rl ): i < j < k < l. 3. (ri , rj ) incluye a (rk , rl ): i < k < l < j. En este caso, se dice que el par de bases (rk , rl ) es interior a (ri , rj ) y es inmediatamente interior si no existe ning´n par de bases (rp , rq ) tal que u i < p < k < l < q < j. Hay una configuraci´n natural que no se ha considerado: los llamados nudos o knots. Un nudo se oproduce cuando (ri , rj ) ∈ S, donde i < k < j < l. Descartando los nudos, S forma un grafo plano. Por
  • 146. 142 CAP´ ´ ITULO 4. LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNAlo tanto, aunque los nudos forman parte de la estructura de RNA, su predicci´n puede llevarse a cabo oen la predicci´n de la estructura tridimensional de la mol´cula. Eliminar los nudos de la predici´n de la o e oestructura secundaria es un requisito necesario para utilizar algoritmos de programaci´n din´mica. o a Un m´todo sencillo para determinar la estructura del RNA es mediante la definici´n de reglas de e oenerg´ Suele emplearse una funci´n e, tal que e(ri , rj ) es la energ´ liberada por la pareja de bases ıa. o ıa(ri , rj ) ∈ S. Por convenci´n, se asume que o e(ri , rj ) < 0 si i = j e(ri , rj ) = 0 si i = j Algunos valores de e utilizados a 37◦ C son: CG ⇔ -3 AU ⇔ -2 GU ⇔ -1 La energ´ total, E, liberada por la estructura S, viene determinada por E(S) = ıa e(ri , rj ) (ri ,rj)∈S Se denota por Si,j a la estructura secundaria de la cadena R = ri ri+1 ...rj y por E(Si,j ) a la energ´ ıam´ınima liberada por la estructura. El objetivo es encontrar el valor de E(S1,n ) (la energ´ liberada por ıael plegamiento de toda la mol´cula). Se aplican las siguientes ecuaciones [34, 162, 183, 194]: e  E(Si+1,j ) ri queda libre    E(S i,j−1 ) rj queda libre  E(Si,j ) = m´ ın  e(i, j) + E(Si+1,j−1 )  (ri , rj ) ∈ S   m´ın{E(Si,k−1 ) + E(Sk,j )} (ri , rk ) ∈ S y (rl , rj ) ∈ S, pero (ri , rj ) ∈ S / Hay que tener en cuenta la existencia de estructuras con bucles. Supongamos que (r i , rj ) es una parejade bases de S y consideramos las posiciones k, u y l, tales que i < k < u < l < j. Se dice que la base r kes accesible desde (ri , rj ) si (rk , rl ) no forma una pareja de bases en S (para cualquier k y l). Tambi´n ese dice que el par de bases (rk , rl ) es accesible si tanto rk como rl son accesibles. Se denomina bucle alconjunto de bases accesibles desde una pareja (ri , rj ). La suposici´n de que no hay nudos en la estructura oimplica que cualquier estructura S descompone la cadena R en bucles disjuntos. El tama˜o de un bucle puede determinarse de dos formas distintas: n El n´mero de bases libres o aisladas que contiene el bucle: es decir, aquellas bases que no forman u pareja. Existen bucles de tama˜o 0 (parejas de bases de forma consecutiva). n Se considera el bucle como el conjunto de los (k − 1) pares de bases y las k bases accesibles desde (ri , rj ) y se denomina k-bucle. Existen diferentes tipos de bucles (figura 4.1) que podemos clasificar seg´n el valor k del k-bucle. u 1. Si k = 1: bucle hairpin (figura 4.1-a). No existe ning´n par de bases accesible desde (r i , rj ). u 2. Si k = 2: Existe un par de bases (rk , rl ) que es accesible desde (ri , rj ). a) Par apilado o stack pair (figura 4.1-b): si k − i = 1 y j − l = 1. Son parejas de bases que se suceden de forma consecutiva (bucle de tama˜o 0 si contamos el n´mero de bases libres). n u Tambi´n se denomina regi´n helicoidal. e o b) Bucle bulge (figura 4.1-c): si k − i > 1 o j − l > 1, pero no los dos.
  • 147. ´4.3. EL PROBLEMA DE LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNA 143 a) b) c) d) e)Figura 4.1: Diferentes tipos de bucles en la estructura secundaria de una mol´cula de RNA: a) Regi´n helicoidal, e opar apilado o stack. b) Bucle hairpin. c) Bucle bulge. d) Bucle interior. e) Bucle multi-loop o multibucle. c) Bucle interior (figura 4.1-d): si k − i > 1 y j − l > 1. 3. Si k ≥ 3: Multibucle o multi-loop (figura 4.1-e). En la expresi´n anterior de la energ´ total (E(Si,j )) no se ten´ en cuenta la existencia de bucles. En o ıa ıala expresi´n siguiente s´ se consideran estas estructuras. La energ´ de la estructura secundaria se calcula o ı ıacomo la suma de las contribuciones de las energ´ de cada bucle. Como consecuencia, la m´ ıas ınima energ´ıaliberada se puede calcular recursivamente mediante programaci´n din´mica [34, 162, 183, 194]. o a  E(Si+1,j ) ri queda libre    E(S i,j−1 ) rj queda libre  E(Si,j ) = m´ ın  E(Li,j )  ri y rj se unen entre s´ ı   m´ ın{E(Si,k−1 ) + E(Sk,j )} i<k≤j La expresi´n Li,j refleja la situaci´n donde (ri , rj ) ∈ S y refleja lo que sucede entre ri y rj . Para poder o ocalcular el valor de E(Li,j ) se necesitan varias funciones: eh(k) = energ´ liberada por un bucle hairpin de tama˜o k ıa n η== energ´ liberada por parejas de bases adyacentes ıa = energ´ liberada por un bulge de tama˜o k eb(k) = ıa n = energ´ liberada por un bucle interior de tama˜o k ei(k) = ıa n
  • 148. 144 CAP´ ´ ITULO 4. LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNA Utilizando estas funciones, puede calcularse E(Li,j ) mediante el siguiente conjunto de expresiones: e(ri , rj ) + eh(j − i − 1) si Li,j es un hairpin e(ri , rj ) + η + E(Si+1,j−1 si Li,j es una regi´n helicoidal o m´ k≥1 {e(ri , rj ) + eb(k) + E(Si+k+1,j−1 } ın si Li,j es un bulge sobre i m´ k≥1 {e(ri , rj ) + eb(k) + E(Si+1,j−k−1 } ın si Li,j es un bulge sobre j m´ k1 ,k2 ≥1 {e(ri , rj ) + ei(k1 + k2 ) + E(Si+1+k1 ,j−1−k2 } ın si Li,j es un bucle interior Mediante las ecuaciones anteriores se dispone de toda la informaci´n necesaria para calcular la matriz oprogramaci´n din´mica. En la figura 4.2 se muestra cu´l es la regi´n de la matriz cuyos valores debemos o a a oconocer antes de calcular el valor E(Si,j ). Se observa que la cantidad de elementos que es necesarioconocer previamente depende de los valores de i y j.Figura 4.2: Espacio de direcciones triangular. El espacio sombreado representa el area de dependencia de un ´punto (i, j). La soluci´n se encuentra en la parte superior derecha, en la posici´n (1, n). o o Los puntos del interior de la regi´n sombreada de la figura 4.2, lejos de los bordes (filas i, i + 1 y ocolumnas j, j −1), solamente se consideran en el caso del bucle interior. Corresponde a la situaci´n cuando oLi,j est´ en el interior de un bucle y es el caso que m´s tiempo consume. En la figura 4.3 se muestran a alas regiones que previamente deben haber sido calculadas para poder computar E(L i,j ) y se especifica aqu´ tipo de bucle corresponde cada elemento (i, j). e Figura 4.3: Dependencias de datos para la evaluaci´n de E(Li,j ). o Cada punto (i, j) de la matriz requiere O(n2 ) operaciones, dando un tiempo total del algoritmo deO(n4 ). Como se explic´ en [34], es razonable asumir que el tama˜o en el interior del bucle es menor que o n
  • 149. 4.4. EL PAQUETE DE VIENA 145alg´n n´mero fijo. Bajo est´ hip´tesis, el tiempo para calcular E(Li,j ) para un punto fijo (i, j) requiere u u a oun orden O(1). Sin embargo, las ecuaciones anteriores suponen una simplificaci´n del problema, porque ono se est´ considerando el caso del multi-loop [34, 193]. Para integrarlo en esta aproximaci´n solamente a oes necesario tener en cuenta que: 1. El dominio de dependencia del multi-loop es el mismo, pero requiere considerar m´s casos para a calcular E(Si,j ). 2. Considerar el multi-loop necesita un O(n) para resolverse, el tiempo total del algoritmo se convierte en O(n3 ). Este caso s´ ha sido considerado por los autores del paquete de Viena, para la predicci´n de la ı oestructura secundaria del RNA, en el desarrollo de su trabajo.4.4. El paquete de Viena En esta secci´n describimos el paquete desarrollado por la Universidad de Viena para la predicci´n y o ocomparaci´n de las estructuras secundarias del RNA [72, 98]. Este paquete est´ basado en los algoritmos o ade programaci´n din´mica presentados en la secci´n 4.6 para predecir las estructuras con la m´ o a o ınimaenerg´ liberada. Introducen una heur´ ıa ıstica eficiente para el problema del plegamiento inverso y presentanprogramas para la comparaci´n de estructuras secundarias del RNA. El n´cleo del paquete consiste en o uc´digos compactos para obtener la estructura de m´ o ınima energ´ o funciones de partici´n de mol´culas de ıa o eRNA, incluyendo tambi´n un paquete estad´ e ıstico que incluye rutinas para el an´lisis cluster, la geometr´ a ıaestad´ ıstica y la descomposici´n. Adem´s, tambi´n permite a los usuarios imponer restricciones al plegado o a ede las mol´culas. e Podemos clasificar todas las funciones que nos ofrece el paquete en las siguientes actividades: Predecir la estructura secundaria de m´ ınima energ´ Es la funci´n m´s utilizada del paquete y ıa. o a proporciona 3 clases de algoritmos de programaci´n din´mica para realizar la predicci´n. o a o Calcular la funci´n de partici´n para el ensamblaje de estructuras. o o Calcular las estructuras sub´ptimas dado un rango de energ´ o ıa. Dise˜ar secuencias dada una estructura predefinida (plegamiento inverso). n Comparaci´n de estructuras secundarias. o El paquete de Viena (versi´n 1.4 ) est´ constituido por 10 m´dulos: o a o RNAfold: Predicci´n de la estructura secundaria de una mol´cula de RNA. Es el m´dulo m´s o e o a importante y en el que hemos centrado nuestro trabajo. RNAsubopt: C´lculo de estructuras sub´ptimas dentro de un rango de energ´ dado. a o ıa RNAeval: Evaluaci´n de la energ´ para una cadena de nucle´tidos y una estructura dada. o ıa o RNAheat: C´lculo de las curvas de derretimiento (melting curves). a RNAdistance: Comparaci´n de estructuras secundarias. o RNApdist: Comparaci´n de ensamblaje (ensembles) de estructuras secundarias. o RNAinverse: B´squeda de secuencias de pliegues que coincidan con estructuras dadas. u
  • 150. 146 CAP´ ´ ITULO 4. LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNA AnalyseSeqs: An´lisis de secuencias de datos. a AnalyseDist: An´lisis de matrices de distancias. a RNAplot: Dibuja una estructura secundaria de RNA. Todos los m´dulos utilizan la entrada y salida est´ndar (stdin y stdout) y utilizan opciones desde la o al´ ınea de comandos, en lugar de men´s, para poder anidarlos de una forma f´cil mediante pipes. u a En la figura 4.4 se observa la salida del m´dulo RNAplot. Se muestra la estructura secundaria de una omol´cula de RNA: en ella se observan claramente los nucle´tidos que forman la secuencia y los pares de e obases y bucles que se establecen durante el plegamiento. Figura 4.4: Estructura secundaria de una mol´cula de RNA obtenida con el paquete de Viena. e Para realizar las funciones anteriores, los autores definen 2 matrices triangulares que almacenan laenerg´ liberada asociada a cada subproblema. As´ c[i, j] almacena la energ´ liberada para el subproblema ıa ı, ıaR = ri , ri+1 , ..., rj . En una de las matrices no se tiene en cuenta la energ´ asociada a los multi-loops, ıamientras que en la segunda s´ se considera. En la figura 4.5 se muestra el aspecto de una matriz triangular ıy numeramos sus elementos. Figura 4.5: Aspecto de una matriz triangular de tama˜o 8 × 8 y numeraci´n de sus elementos. n o Para simular una matriz triangular emplean un vector de datos y un vector de ´ ındices. El vectorutilizado para representar a esta matriz y evitar el uso ineficiente de la memoria aparece en la figura 4.6.Esta estructura de datos se denomina Tvector y almacena los datos de la tabla por columnas. Para acceder a los Tvectores utilizan un vector de ´ ındices (index ), que tiene tantos elementos comofilas (o columnas) tengan las matrices triangulares. El elemento index [i] almacena el elemento del Tvector
  • 151. ´4.5. ESTRATEGIAS DE PARALELIZACION 147Figura 4.6: Aspecto del Tvector que simula la matriz de la figura 4.5. La tabla se almacena en este vector porcolumnas.donde comienza la columna i. En la figura 4.7 se encuentra el vector de ´ ındices para el Tvector de lafigura 4.6. Figura 4.7: Vector de ´ ındice. El elemento index [i] contiene la celda del Tvector donde comienza la columna i. Para acceder al elemento (i, j) de la matriz triangular solamente es necesario aplicar la siguienteexpresi´n: o m[i, j] = T m[index[j] + i]donde index es el vector de ´ ındice y T m es el Tvector equivalente a la matriz m. Empleando la versi´n secuencial de este paquete para resolver diferentes instancias del problema, puede ocomprobarse que el tiempo de ejecuci´n se incrementa, de forma considerable, al aumentar el tama˜o o nde la mol´cula de RNA (figura 4.8). Para un problema de tama˜o 8192, la ejecuci´n secuencial invierte e n om´s de 1500 segundos y, en la pr´ctica, podemos encontrar mol´culas de tama˜o superior. Observando a a e nestos resultados, nos planteamos realizar la paralelizaci´n de la funci´n principal del paquete (la funci´n o o oque se encarga de obtener el plegamiento de la mol´cula de RNA) para intentar reducir los tiempos de eejecuci´n en los problemas de mayor tama˜o. o nFigura 4.8: Tiempos de ejecuci´n obtenidos al resolver el problema de la predicci´n de la estructura secundaria o odel RNA utilizando el paquete de Viena. Los resultados han sido obtenidos en una SGI Origin 3800 (secci´n 4.7). o4.5. Estrategias de paralelizaci´n o Hemos empleado dos estrategias de paralelizaci´n para resolver el problema. La diferencia entre los odos esquemas radica en la forma de recorrer el dominio de iteraciones del problema. Comenzamos conuna fase de preprocesamiento (id´ntica en ambos m´todos), donde procesamos espacios de direcciones e etriangulares, Ti con i = 1, . . . , p, de tama˜o ( n × n )/2 puntos (figura 4.9-a). Los tri´ngulos son calculados n p p asimult´neamente sobre p procesadores, cada procesador calcula uno de esos tri´ngulos de forma secuencial. a a
  • 152. 148 CAP´ ´ ITULO 4. LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNAFigura 4.9: a) Espacio de direcciones transformado para procesarlo utilizando p = 4 procesadores. Se identifican4 tri´ngulos que se calculan durante la fase de preprocesamiento. Los restantes puntos del espacio de direcciones ase agrupan en bloques cuadrados que, a su vez, se dividen en tiles. El espacio sombreado representa el area de ´dependencia de un punto (i, j). b) Imagen ampliada de un tile.En este cap´ ıtulo hemos modificado la numeraci´n aplicada a los procesadores por motivos de simplicidad, oahora comienzan a numerarse desde p1 en lugar de hacerlo desde p0 . Una vez finalizada la fase de preprocesamiento, el resto del dominio de iteraciones podemos visualizarlocomo una escalera invertida de p(p−1) cuadrados: Rs , donde s indica la fila (s = 1, . . . , p − 1) y t indica 2 tla columna, t = 2, . . . , p (figura 4.10-a). 4 R1 4 p R 2 2 4 3 4 mp(p−1)/2 R3 R1 R R1 m 1 3 3 4 R R 2 R 2 1 4 3 4 2 3 4 m R3 R R R1 R R1 3 4 2 2 1 R3 R 2 2 pp(p−1)/2 R1 p a) b) c)Figura 4.10: a) Espacio de direcciones transformado visto como un conjunto de cuadradros. b) Recorrido hori-zontal del dominio. c) Recorrido vertical del dominio. A continuaci´n, aplicamos la aproximaci´n tiling al dominio de la figura 4.10-a, considerando tiles o orectangulares. Cada tile contiene x filas con y puntos en cada fila (figura 4.9-b). Denominamos a losenteros x e y altura y anchura del tile respectivamente. Cada tile es considerado como un unico punto en ´un nuevo dominio transformado. n Suponiendo que p2 ≤ n, decidimos fijar el ancho del tile al valor y = p2 . Por motivos de simplicidad, n testablecemos m = px y p = p − 1. Considerando estos par´metros, cada cuadrado Rs contiene m filas ¯ ade tiles, con p tiles por fila. La figura 4.9 ilustra un caso particular de un dominio transformado, cuando nn = 48, p = 4, m = 3, x = 4 y p2 = 3. Las dependencias de este dominio transformado son las mismasque las del dominio original del problema. Hay tres recorridos obvios del dominio de iteraciones que permiten satisfacer esas dependencias:diagonal (figura 4.10-a), horizontal (figura 4.10-b) y vertical (figura 4.10-c). En el recorrido diagonal slos cuadrados son computados en diagonales; es decir, primero se calculan en pipeline los cuadrados R t tal sque t − s = 1, despu´s se calculan los cuadrados Rt tal que t − s = 2, etc. (figura 4.10-a). En el recorrido e
  • 153. ´ ˜4.6. LA PARALELIZACION DEL PAQUETE DE VIENA: TAMANO CONSTANTE DEL TILE 149horizontal los cuadrados son procesados por filas: computamos primero el cuadrado inferior y despu´s evamos procesando las filas hacia arriba, para cada fila calculamos los cuadrados de izquierda a derecha.El n´mero total de cuadrados es p2p y el dominio de iteraciones puede ser visto como un gran rect´ngulo u ¯ a 2de tama˜o m × p2p tiles. Para el ejemplo considerado en la figura 4.10-b, el orden en que se procesan n ¯ 4 3 4 2 3 4los cuadrados es R3 , R2 , R2 , R1 , R1 , R1 . En el recorrido vertical los cuadrados son procesados porcolumnas: primero el cuadrado superior izquierdo y, a continuaci´n, vamos procesando el resto de las ocolumnas de izquierda a derecha; para cada una de ellas los cuadrados se procesan de abajo a arriba. 2 3 3En el ejemplo presentado en la figura 4.10-c, el orden en que se computan los cuadrados es R 1 , R2 , R1 ,R3 , R2 , R1 . El n´mero total de cuadrados es p2¯ y el dominio de iteraciones puede ser visto en este caso 4 4 4 u pcomo un gran rect´ngulo de tama˜o pmp × p tiles. La cantidad de puntos calculados por cada uno de los a n 2 ¯procesadores est´ distribuida de forma uniforme entre todos ellos. En este trabajo empleamos solamente alos recorridos horizontal y vertical.4.6. La paralelizaci´n del paquete de Viena: tama˜ o constante o n del tile En esta secci´n describimos el paquete paralelo que hemos desarrollado a partir de la versi´n secuencial o ode la funci´n que predice la estructura secundaria del RNA del paquete de Viena [72, 98]. Nuestro objetivo oes computar la matriz triangular que permite obtener la estructura secundaria de una mol´cula de RNA, eteniendo en cuenta las dependencias existentes entre los datos (figura 4.11). Dada una secuencia denucle´tidos R = r1 r2 r3 ...rn , el elemento (i, j) de la matriz representa la energ´ liberada por el pliegue o ıade la subsecuencia R = ri ...rj , con j > i. Esto significa que la soluci´n del problema se encuentra en la oposici´n (1, n), donde se encuentra la energ´ liberada para toda la mol´cula (figura 4.11). o ıa eFigura 4.11: Dependencias entre los datos: el elemento (i, j) depende de todos los valores que forman el trianguloinferior izquierdo, que aparece coloreado en la figura. El elemento (1, n) contiene la energ´ total liberada por el ıapliegue de la mol´cula (la soluci´n al problema). e o Como se observa en la figura 4.11, para obtener el elemento (i, j) necesitamos tener calculados pre-viamente todos los elementos {(a, b)/a ≥ i ∧ b ≤ j}; es decir, su tri´ngulo inferior izquierdo, que aparece acoloreado en la figura. En el programa se recogen, como par´metros, el fichero que contiene la mol´cula de RNA y el volumen a edel tile con el que vamos a ejecutar (ancho y alto). El procesador p0 lee la mol´cula de RNA del fichero ey la env´ al resto de los procesadores. ıa La funci´n principal del paquete se denomina fold() y calcula el plegamiento de la mol´cula para o eobtener su estructura secundaria. Esta funci´n recibe como par´metro una mol´cula de RNA y devuelve o a esu estructura secundaria y la energ´ liberada por el pliegue asociado a la mol´cula. En la figura 4.12 ıa emostramos un pseudoc´digo del algoritmo que realiza esta funci´n: primero se procesan los tri´ngulos, o o acada procesador calcula de forma secuencial la parte de la matriz asociada a su tri´ngulo (fase de pre- a
  • 154. 150 CAP´ ´ ITULO 4. LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNAprocesamiento). Una vez calculados, cada procesador env´ al resto de las m´quinas los datos obtenidos ıa a(l´ ınea 7) y, a continuaci´n, los cuadrados se calculan de forma paralela mediante un pipeline (l´ o ınea 8).El ultimo paso del algoritmo consiste en recuperar el pliegue de la estructura secundaria (l´ ´ ınea 11). Estaultima parte del problema no la hemos paralelizado porque s´lo requiere un tiempo de c´mputo lineal.´ o o 1 float fold(char *string, char *structure) { 2 Inicializaci´n o 3 4 // C´digo paralelo o 5 Inicio de medici´n del tiempo o 6 Se calculan los tri´ngulos a 7 Intercambio de tri´ngulos entre todos los procesadores a 8 Se procesan los cuadrados 9 Fin de la medici´n del tiempo o1011 Recuperaci´n del pliegue de la estructura secundaria (bactracking) o12 }Figura 4.12: C´digo de la rutina fold() que obtiene la estructura secundaria de una mol´cula de RNA a partir o ede la secuencia de la mol´cula. e En las siguientes subsecciones vamos a comentar los diferentes tipos de paralelizaciones que hemosrealizado: la fase de preprocesamiento, la paralelizaci´n de un cuadrado cuando trabajamos unicamente o ´con dos procesadores, y las tres estrategias utilizadas para calcular de forma paralela los cuadrados cuandoresolvemos el problema con p procesadores.4.6.1. Paralelizaci´n de los tri´ngulos o a El primer paso de la paralelizaci´n ha consistido en la divisi´n del trabajo en tri´ngulos. Dividimos la o o amatriz generando tantos tri´ngulos como procesadores tengamos disponibles para resolver el problema. aEn la figura 4.13 podemos ver el caso m´s simple, cuando solamente trabajan 2 procesadores. aFigura 4.13: Divisi´n de la matriz triangular en 2 tri´ngulos. Se asigna a cada procesador uno de los tri´ngulos o a apara que sean calculados de forma paralela. Como ha sido comentado en la secci´n 4.4, la matriz triangular se almacena en un vector denominado oTvector . En la figura 4.14 mostramos el contenido del Tvector correspondiente a la matriz triangularanterior y representamos por los mismos colores los elementos que forman parte del tri´ngulo que calcula acada procesador. Cuando los procesadores finalizan el c´lculo de su tri´ngulo se intercambian la informaci´n obtenida. a a oDe esta manera, al terminar la fase de preprocesamiento, todos los procesadores disponen de todos losdatos calculados. En las figuras 4.13, 4.14 y 4.15 mostramos el proceso de c´lculo y empaquetado de los atri´ngulos. a
  • 155. ´ ˜4.6. LA PARALELIZACION DEL PAQUETE DE VIENA: TAMANO CONSTANTE DEL TILE 151Figura 4.14: Representaci´n de la matriz triangular en un vector auxiliar (Tvector ). Los elementos que forman oparte de los tri´ngulos aparecen coloreados. aFigura 4.15: Empaquetar un tri´ngulo para su transmisi´n: Izquierda: Tpaquete asociado al primer tri´ngulo a o a(procesador p0 ). Derecha: Tpaquete asociado al segundo tri´ngulo (procesador p 1 ). a Inicialmente disponemos de la matriz donde hemos calculado los tri´ngulos (figura 4.13). Se puede aver en la figura 4.14 que, mientras que todos los elementos del tri´ngulo asociado al procesador p 0 est´n a aalmacenados de forma contigua, el tri´ngulo correspondiente a p1 tiene sus elementos dispersos por el aTvector. Para poder enviar la informaci´n de los tri´ngulos a los restantes procesadores se empaquetan o alos datos de forma contigua, utilizando una estructura de datos denominada Tpaquete. En la figura4.15-Izquierda se muestra el Tpaquete asociado al tri´ngulo del procesador p 0 , en este caso el Tpaquete aes una parte del Tvector, con sus elementos almacenados en el mismo orden. En la figura 4.15-Derechase observa el Tpaquete correspondiente al tri´ngulo de p1 . Ahora s´ se observa que los datos del tri´ngulo a ı ase encuentran almacenados de forma consecutiva. Por ultimo, mostramos en la figura 4.16 la generaci´n de tri´ngulos en una ejecuci´n con mayor ´ o a on´mero de procesadores. En la figura se observa la subdivisi´n del trabajo para una mol´cula de tama˜o u o e n16 entre 4 procesadores.Figura 4.16: Fase de preproceso para resolver el problema para una mol´cula de tama˜o 16 entre 4 procesadores: e nse generan 4 tri´ngulos. a4.6.2. Paralelizaci´n de los cuadrados utilizando 2 procesadores o Una vez finalizada la fase de preprocesamiento, debemos paralelizar el dominio de iteraciones restante.La primera aproximaci´n que hemos desarrollado considera que trabajamos unicamente con 2 proce- o ´sadores. Esto significa que existe solamente un cuadrado a calcular. En esta secci´n comentamos las odiferentes maneras de distribuir el trabajo entre los 2 procesadores y de realizar las comunicaciones parareducir el tiempo de ejecuci´n. o
  • 156. 152 CAP´ ´ ITULO 4. LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNA La aproximaci´n m´s simple podr´ consistir en dividir el cuadrado en 2 partes iguales y asignarle o a ıauna a cada procesador (figura 4.17).Figura 4.17: Paralelizaci´n de 1 cuadrado empleando 2 procesadores. Utilizamos la aproximaci´n m´s simple, o o adividimos el cuadrado en 2 partes iguales y asignamos uno a cada procesador. En el c´lculo de los elementos del cuadrado de la figura 4.17, s´ se producen dependencias entre los a ıdatos repartidos entre los dos procesadores. El procesador p0 tiene disponibles todos los datos que necesitaantes de comenzar el c´lculo de sus elementos, pero el procesador p1 debe esperar por los datos calculados apor p0 . En esta primera aproximaci´n consideramos que cada vez que p0 calcula un valor lo transmite a p1 o(todos los elementos etiquetados con OUT en la figura 4.18). El procesador p 1 unicamente recibe datos ´antes de calcular la primera columna asignada (los elementos etiquetados con IN en la columna 13 de lafigura 4.18). Cuando p1 recibe el elemento inmediatamente anterior al que est´ calculando (el elemento ade la misma fila y columna 12 en la figura 4.18) puede asegurarse que, previamente, tambi´n ha recibido etodos los valores anteriores y puede comenzar a procesar todos los elementos de esa fila.Figura 4.18: Comunicaciones entre los dos procesadores: cada vez que el procesador p 0 calcula un valor lotransmite a p1 . El procesador p1 solamente recibe datos antes de calcular la primera columna asignada. Un m´todo para mejorar esta aproximaci´n consiste en utilizar un buffer, que almacene los valores a e otransmitir, hasta que se haya calculado un n´mero adecuado de ellos. De esta forma reducimos el n´mero u ude comunicaciones establecidas para resolver el problema. La figura 4.19 muestra los env´ realizados ıospor el procesador p0 para transmitir los datos calculados al procesador p1 , cuando utilizamos un bufferpara las comunicaciones de tama˜o 7. Hemos asignado un mismo color a las celdas que son transmitidas nen el mismo paquete. En la figura 4.19 se ha marcado con OUT el momento en el que se produce una transmisi´n f´o ısica:cuando se calculan 7 elementos, se produce un env´ f´ ıo ısico. Cuando el procesador p 0 termina el c´lculo ade su bloque vac´ el contenido del buffer, aunque el n´mero de elementos en el buffer no haya llegado ıa ual m´ximo. Por ejemplo, en la figura 4.19, se observa que el ultimo paquete se env´ al procesador a ´ ıap1 unicamente con 4 elementos en el buffer, en lugar de los 7 elementos que contienen los paquetes ´
  • 157. ´ ˜4.6. LA PARALELIZACION DEL PAQUETE DE VIENA: TAMANO CONSTANTE DEL TILE 153Figura 4.19: Comunicaciones entre los dos procesadores con un buffer de transmisi´n de tama˜o 7. Asignamos o nun mismo color a todas los elementos que son transmitidos en el mismo paquete.anteriores. En la figura se observa el reducido n´mero de comunicaciones que se realizan en este caso, si ulo comparamos con los env´ realizados en la figura 4.18. ıos Hasta ahora hemos considerado la distribuci´n por bloques del trabajo entre los dos procesadores. Pero oesta asignaci´n de las columnas a los procesadores no tiene que ser ´ptima: podemos utilizar una distribu- o oci´n c´ o ıclica pura (figura 4.20-a), una distribuci´n c´ o ıclica por bloques (figura 4.20-b) o una distribuci´n opor bloques (figura 4.20-c). a) b) c)Figura 4.20: Diferentes distribuciones de trabajo para una misma matriz. a) Distribuci´n c´ o ıclica pura. b) Dis-tribuci´n c´ o ıclica por bloques. c) Distribuci´n por bloques. o4.6.3. Paralelizaci´n de los cuadrados utilizando p procesadores o En esta secci´n consideramos la situaci´n general donde trabajamos con p procesadores y existe m´s o o ade un rect´ngulo. Definimos 3 estrategias para su paralelizaci´n. a o Estrategia horizontal no sincronizada. Estrategia vertical no sincronizada. Estrategia horizontal sincronizada. En la figura 4.21 mostramos un ejemplo de la matriz triangular para resolver el problema de predecirla estructura secundaria de una mol´cula de 16 bases, utilizando 4 procesadores. En la figura se muestran elos elementos calculados por cada procesador con un color diferente. Se observan los tri´ngulos calculados aen la fase de preprocesamiento y los rect´ngulos, que son procesados con una distribuci´n c´ a o ıclica pura.
  • 158. 154 CAP´ ´ ITULO 4. LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNAFigura 4.21: Visi´n global de la paralelizaci´n de los cuadrados con 4 procesadores. Los elementos calculados por o ocada procesador presentan un color diferente. En la figura 4.21 se puede observar que hay un conjunto de elementos (la ultima columna en el ´ejemplo), que s´lo las posee el ultimo procesador. Bajo determinadas circunstancias este comportamiento o ´es correcto. Sin embargo, hay combinaciones de par´metros para los que es necesario que todos los aprocesadores dispongan de todos los datos calculados, una vez que haya finalizado el procesamiento delrect´ngulo. Para conseguirlo se utiliza un proceso de sincronizaci´n que consiste en realizar una a oiteraci´n m´s del algoritmo (realizando s´lo los env´ y recepciones), para garantizar que todos los o a o ıosprocesadores posean todos los datos. En el ejemplo de la figura 4.21, este proceso de sincronizaci´n no oes necesario puesto que un procesador siempre va a tener los datos inferiores que necesita. Esto sucedeporque el mismo procesador tiene asignada la misma columna para todos los rect´ngulos. a Planificaci´n horizontal frente a planificaci´n vertical o o Esta clasificaci´n especifica el orden en que se eval´an los cuadrados en la matriz y la forma en la o uque se agrupan estos cuadrados para dar lugar a los rect´ngulos. En la figura 4.22 se muestran estas 2 aestrategias. En la planificaci´n horizontal se agrupan los cuadrados por filas para generar los rect´ngulos o ae, internamente, se procesan de izquierda a derecha. En la planificaci´n vertical, se agrupan por columnas oy, dentro de los rect´ngulos, se calculan los cuadrados de abajo a arriba. aFigura 4.22: Planificaci´n de los cuadrados. Izquierda: Planificaci´n horizontal: los cuadrados se agrupan por o ofilas. Derecha: Planificaci´n vertical: los cuadrados se agrupan por columnas. o
  • 159. ´ ˜4.6. LA PARALELIZACION DEL PAQUETE DE VIENA: TAMANO CONSTANTE DEL TILE 155 Estrategia horizontal no sincronizada Es la estrategia m´s sencilla, aunque solamente puede aplicarse bajo unas condiciones de n´mero de a uprocesadores y de ancho del tile determinadas. En la figura 4.23-Izquierda presentamos un ejemplo dela forma de trabajar en esta estrategia. La sincronizaci´n no es necesaria debido a las caracter´ o ısticas deancho del tile, n´mero de procesadores y longitud de la mol´cula. Esto permite resolver el problema sin u eque todos los procesadores requieran disponer de todos los datos.Figura 4.23: Condiciones v´lidas y no v´lidas para la estrategia. Izquierda: La relaci´n entre el ancho del tile, a a on´mero de procesadores y la longitud de la mol´cula cumplen las condiciones de validaci´n. Derecha: No es posible u e oresolver el problema porque existen dependencias no resueltas. En la figura 4.23-Derecha mantenemos el mismo n´mero de procesadores y ancho del tile pero mo- udificamos el tama˜o del problema y utilizamos una mol´cula de tama˜o 20. Ahora s´ es necesaria la n e n ısincronizaci´n, puesto que no disponer de todos los datos imposibilita el c´lculo de los cuadrados. Como o ase observa en la figura, el procesador p1 no puede calcular el elemento en el interior del c´ ırculo, al notener todos los datos que necesita (su tri´ngulo inferior izquierdo). a Las condiciones necesarias para poder aplicar esta estrategia son las siguientes: El problema debe ser ”perfecto”, sin residuos, o lo que es lo mismo, se tiene que cumplir que n mod p = 0. No pueden existir bandas residuales; es decir, bandas donde no trabajen todos los procesadores. La longitud de una banda es p ∗ y, por lo que se tiene que cumplir que (n/p) mod (p ∗ y) = 0. Comprobamos estas dos condiciones para los dos ejemplos de la figura 4.23. En el diagrama de laizquierda tenemos una mol´cula de 16 bases (n = 16) y trabajamos con 4 procesadores (p = 4) y ancho del etile 1 (y = 1). En estas condiciones se cumple la primera condici´n (16 mod 4 = 0) y tambi´n la segunda o e(4 mod 4 = 0). Sin embargo, para la figura 4.23-Derecha, mantenemos el n´mero de procesadores (p = 4) uy el ancho del tile (y = 1) pero aumentamos el tama˜o de la mol´cula (n = 20). En este caso s´ se cumple n e ıla primera condici´n (20 mod 4 = 0) pero no se cumple la segunda (5 mod 4 = 0). o Estrategia vertical no sincronizada En esta estrategia realizamos una planificaci´n vertical (figura 4.22-Derecha) y no realizamos proceso ode sincronizaci´n al finalizar el c´mputo de cada cuadrado. Por tanto, igual que en la estrategia horizontal o ono sincronizada, hay restricciones al ancho del tile y al n´mero de procesadores (se tienen que cumplir ulas mismas condiciones que en el caso anterior).
  • 160. 156 CAP´ ´ ITULO 4. LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNA Estrategia horizontal sincronizada Esta estrategia es igual que la versi´n horizontal no sincronizada, con la diferencia de que al finalizar ocada rect´ngulo se produce la sincronizaci´n entre los procesadores. Esto produce una parada del pipeline, a opues hay que vaciarlo para que todos los procesadores reciban todos los datos. Mediante esta estrategia notenemos limitaciones a la hora de elegir el ancho del tile ni el n´mero de procesadores. Sin embargo, s´ se u ıintroduce una cierta sobrecarga como consecuencia de la sincronizaci´n. Con esta estrategia es posible oresolver problemas como el de la figura 4.23-Derecha.4.7. Resultados computacionales: tama˜ o constante del tile n En esta secci´n se muestra los resultados computacionales obtenidos con las tres versiones presen- otadas en la secci´n 4.6. Antes vamos a comentar las caracter´ o ısticas de la plataforma paralela sobre la quehemos realizado las pruebas. Como ya hemos comentado, en este cap´ ıtulo trabajamos con un sistemaheterog´neo seg´n la definici´n dada en la secci´n 1.2: un programa heter´geneo ejecutado sobre una e u o o oplataforma homog´nea. e Plataforma homog´nea e En este cap´ ıtulo hemos utilizado una plataforma de pruebas diferente a la empleada en los cap´ıtulos2 y 3: la m´quina SGI Origin 3800 del Centro de Investigaci´n de Energ´ Medio Ambiente y Tec- a o ıas,nolog´ (CIEMAT) del Ministerio de Ciencia y Tecnolog´ espa˜ol, denominada jen50, que dispone de ıa ıa n128 procesadores MIPS R14000 a 600 MHz, con 128 Gbytes de memoria y una arquitectura ccNuma.Es una plataforma homog´nea puesto que todos los procesadores disponen de las mismas caracter´ e ısticas.Los 128 procesadores se encuentran distribuidos en 32 nodos de 4 procesadores cada uno, los nodos est´n aorganizados en una topolog´ de hipercubo (figura 4.24). En cada uno de los v´rtices de este hipercubo ıa eexiste un router que conecta 4 nodos con el resto del sistema.Figura 4.24: Arquitectura de la SGI-Origin 3800 : los procesadores se encuentran distribuidos en 32 nodos de 4procesadores, conectados mediante una topolog´ de hipercubo. ıa En la figura 4.25 se observa uno de los v´rtices del hipercubo, detallando principalmente el contenido de eun nodo. Se observa que cada nodo contiene 4 procesadores y cada procesador dispone de una memoriacach´ integrada. Adem´s existe otra memoria cach´ externa a los procesadores pero interna al nodo. e a eLos 4 nodos se encuentran conectados mediante un router que, a su vez, se conecta con los routers delos restantes v´rtices del hipercubo. Es importante resaltar la diferencia de velocidad en los buses de e
  • 161. ˜4.7. RESULTADOS COMPUTACIONALES: TAMANO CONSTANTE DEL TILE 157comunicaciones existentes. Como se observa en la figura, la comunicaci´n interna al nodo ser´ m´s r´pida o a a aque con procesadores situados en otros nodos.Figura 4.25: Arquitectura de la SGI-Origin 3800 : Detalle interno de uno de los nodos en uno de los v´rtices del ehipercubo. La m´quina est´ gestionada por el sistema operativo IRIX de 64 bits, que permite a los usuarios a atrabajar con jen50 como si fuera un unico recurso computacional. Adem´s, es un sistema operativo ´ amultiproceso y multithread. Como ya ha sido comentado la memoria compartida es de tipo cc-NUMA ysus caracter´ ısticas son las siguientes: Baja latencia tanto en el acceso a la memoria local como a la remota. Esto permite la escalabilidad del sistema. Gesti´n eficiente de los recursos: La memoria se muestra como un recurso unico, no hay que o ´ programar un modelo de datos con restricciones de capacidad para problemas de gran consumo de memoria. Flexibilidad de crecimiento: Esta arquitectura es compatible con una gran variedad de en- tornos, procesadores y componentes. Soporta procesadores tanto MIPS como Intel, esquemas de interconexi´n PCI o XIO y con sistema operativo IRIX o Linux. o Resultados obtenidos en la ejecuci´n o Inicialmente ejecutamos los problemas de forma secuencial para comparar posteriormente estos resul-tados con los obtenidos al ejecutar el problema en paralelo. En la tabla 4.1 mostramos los resultados para7 tama˜os distintos de problemas: hemos generado de forma aleatoria cadenas de RNA para los tama˜os n n256, 512, 1024, 2048, 3000, 4096 y 8192. Todas las ejecuciones realizadas en este cap´ ıtulo, tanto las secuenciales como las paralelas, han sidorepetidas 5 veces para evitar perturbaciones producidas como consecuencia de la ejecuci´n en modo no oexclusivo. Los resultados que se muestran son los tiempos m´ ınimos de las cinco ejecuciones. A continuaci´n hemos realizado la experiencia computacional con el programa paralelo para las tres oversiones del c´digo: versi´n horizontal no sincronizada, vertical no sincronizada y horizontal sincronizada. o oEn todos los casos, el alto y ancho del tile se le pasan al programa como par´metros. Hemos realizado una aejecuci´n intensiva para los problemas de tama˜o 256, 512, 1024, 2048 y 4096, variando los valores de ancho o n ny alto del tile, de forma que y ∈ [1, p2 ] y los valores de x dependen del problema considerado. Medianteesta experiencia computacional, pretendemos encontrar el tama˜o del tile que minimiza el tiempo de nresoluci´n del problema para, posteriormente, utilizar estos valores en la validaci´n de nuestros modelos o o(secciones 4.9 y 4.10).
  • 162. 158 CAP´ ´ ITULO 4. LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNATabla 4.1: Tiempos secuenciales obtenidos en la ejecuci´n del problema de la predicci´n de la estructura secun- o odaria del RNA para diferentes tama˜os de mol´culas. n e Tama˜o de problema n Tiempo de ejecuci´n o 256 0.26 512 1.22 1024 5.97 2048 30.49 3200 107.36 4096 219.39 8192 1565.63 Versi´n horizontal no sincronizada. o En el problema de tama˜o m´s peque˜o (n = 256) variamos el valor de x entre 1 y 100. En la tabla 4.2 n a nmostramos los resultados solamente para algunas de las 1500 combinaciones de n´mero de procesadores, uy y x utilizadas en las ejecuciones. Los resultados presentados son unicamente una muestra, que ha sido ´seleccionada de forma que se encuentran los valores m´ximo y m´ a ınimo que puede tomar un par´metro y avalores intermedios equidistantes, para que cubra todo el rango de valores. En ´sta y las siguientes tablas eno se busca localizar el valor m´ ınimo, sino mostrar la variaci´n de resultados que se produce con distintas ocombinaciones de los par´metros. Tambi´n mostraremos, de forma m´s visual, estos resultados mediante a e agr´ficas, para algunos de los problemas. Las combinaciones que necesitan el menor tiempo de ejecuci´n a ose mostrar´n en una tabla posterior (secci´n 4.9). a o El n´mero de procesadores que hemos empleado para resolver problemas ha sido siempre potencia de u2, igual que los tama˜os de los problemas. Esto se debe a que el valor n debe ser un valor exacto para n ppoder realizar la fase de preprocesamiento y dividir el espacio de iteraciones en tri´ngulos. Por tanto, el an´mero de procesadores empleados han sido p = 2, 4 y 8. Los valores utilizados para el ancho del tile uson tambi´n potencia de 2 a fin de que se cumplan las condiciones necesarias para aplicar esta versi´n e odel algoritmo. A pesar de que con p = 16 se cumple tambi´n que n = 256 = 16 es un valor exacto, si e p 16aplicamos la segunda condici´n, se tiene que cumplir que n/p = y tambi´n debe ser un valor exacto. Por o py 1 elo tanto, s´lo podr´ o ıamos usar un valor y = 1 y hemos descartado utilizar este n´mero de procesadores. u En la tabla 4.2 la columna y representa el ancho del tile y la columna x es el alto del tile. Tambi´n emostramos el tiempo real de la ejecuci´n en segundos y la aceleraci´n obtenida. En la cabecera de cada o obloque se muestra el n´mero de procesadores utilizados. Adem´s, en la parte superior de la tabla se u apuede ver el tama˜o del problema y el tiempo secuencial requerido para resolverlo. Para cada valor de p, nmarcamos en negrita la combinaci´n de par´metros que requiere el menor tiempo de ejecuci´n (de entre o a ola selecci´n mostrada en la tabla). o En la tabla 4.2 se observa c´mo var´ los tiempos de ejecuci´n dependiendo de los par´metros o ıan o autilizados. Esto indica la importancia de una selecci´n adecuada de par´metros al ejecutar un programa. o aPor ejemplo, para 2 procesadores la aceleraci´n conseguida en los resultados presentados se encuentra oentre 0.73 y 1.60. Es decir, existen varias combinaciones cuyo tiempo de ejecuci´n es peor que el tiempo osecuencial; sin embargo, tambi´n existen otras combinaciones donde s´ se consigue una aceleraci´n superior e ı oa 1. Es necesario recordar que en estas tablas no se encuentran necesariamente las combinaciones ´ptimas ode par´metros, simplemente es una muestra de los resultados obtenidos. Adem´s, hay que resaltar el hecho a ade que pueden encontrarse aceleraciones id´nticas para valores de tiempo de ejecuci´n diferentes; esto es e odebido al redondeo que hemos realizado de las cantidades a unicamente dos cifras decimales. ´ Al aumentar el n´mero de procesadores se observa que la aceleraci´n m´xima alcanzada tambi´n u o a eaumenta. Sin embargo, es un problema muy peque˜o y los tiempos de ejecuci´n son muy reducidos, esto n oexplica el alto n´mero de resultados peores que el tiempo del algoritmo secuencial: por ejemplo, para 8 uprocesadores s´lo 3 de las 18 aceleraciones mostradas son superiores a 1. o
  • 163. ˜4.7. RESULTADOS COMPUTACIONALES: TAMANO CONSTANTE DEL TILE 159Tabla 4.2: Tiempos de ejecuci´n del programa paralelo de la predicci´n de la estructura secundaria del RNA o opara una mol´cula de tama˜o 256, utilizando la versi´n horizontal no sincronizada. e n o Tama˜o de problema: 256 - Tiempo secuencial: 0.260 n N´mero de procesadores: p = 2 u y x Tiempo Real Aceleraci´n o y x Tiempo Real Aceleraci´n o 1 1 0.330 0.79 1 20 0.272 0.96 1 40 0.270 0.96 1 60 0.277 0.94 1 80 0.295 0.88 1 100 0.355 0.73 2 1 0.273 0.95 2 20 0.212 1.23 2 40 0.216 1.20 2 60 0.220 1.18 2 80 0.237 1.10 2 100 0.283 0.92 4 1 0.218 1.19 4 20 0.193 1.35 4 40 0.191 1.36 4 60 0.196 1.32 4 80 0.218 1.19 4 100 0.248 1.05 16 1 0.176 1.48 16 20 0.169 1.54 16 40 0.180 1.44 16 60 0.177 1.47 16 80 0.196 1.33 16 100 0.219 1.19 32 1 0.168 1.55 32 20 0.168 1.55 32 40 0.178 1.46 32 60 0.180 1.44 32 80 0.196 1.32 32 100 0.219 1.19 64 1 0.163 1.60 64 20 0.173 1.50 64 40 0.184 1.42 64 60 0.198 1.31 64 80 0.210 1.24 64 100 0.230 1.13 N´mero de procesadores: p = 4 u y x Tiempo Real Aceleraci´n o y x Tiempo Real Aceleraci´n o 1 1 0.299 0.87 1 20 0.212 1.22 1 40 0.360 0.72 1 60 0.543 0.48 1 80 0.589 0.44 1 100 0.604 0.43 2 1 0.187 1.39 2 20 0.163 1.60 2 40 0.281 0.93 2 60 0.408 0.64 2 80 0.444 0.59 2 100 0.445 0.58 4 1 0.149 1.75 4 20 0.138 1.88 4 40 0.239 1.09 4 60 0.329 0.79 4 80 0.371 0.70 4 100 0.369 0.70 8 1 0.119 2.18 8 20 0.128 2.03 8 40 0.200 1.30 8 60 0.293 0.89 8 80 0.318 0.82 8 100 0.324 0.80 16 1 0.104 2.49 16 20 0.124 2.09 16 40 0.182 1.43 16 60 0.249 1.05 16 80 0.261 1.00 16 100 0.276 0.94 N´mero de procesadores: 8 u y x Tiempo Real Aceleraci´n o y x Tiempo Real Aceleraci´n o 1 1 0.183 1.42 1 20 0.438 0.59 1 40 0.931 0.28 1 60 0.815 0.32 1 80 0.812 0.32 1 100 0.855 0.30 2 1 0.149 1.74 2 20 0.336 0.77 2 40 0.542 0.48 2 60 0.588 0.44 2 80 0.611 0.43 2 100 0.666 0.39 4 1 0.100 2.60 4 20 0.262 0.99 4 40 0.435 0.60 4 60 0.461 0.56 4 80 0.494 0.53 4 100 0.511 0.51
  • 164. 160 CAP´ ´ ITULO 4. LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNA Tambi´n se observa que los mejores resultados se obtienen con valores altos de y y con valores bajos ede x; los peores resultados se obtienen para y = 1 (distribuci´n c´ o ıclica pura) y con tama˜os altos de x. En nla figura 4.26 se observa de forma gr´fica las variaciones de tiempos de ejecuci´n si fijamos 2 par´metros a o ay variamos el tercero.Figura 4.26: Aceleraciones obtenidas con el problema de tama˜o 256 y la versi´n horizontal no sincronizada fijando n o2 par´metros y variando el tercero. Izquierda: Fijamos n´mero de procesadores y el alto del tile y modificamos el a uancho del tile. Derecha: Fijamos n´mero de procesadores y el ancho del tile y variamos su alto. u En la tabla 4.3 mostramos los resultados para el siguiente tama˜o de problema (n = 512). En este caso nhemos variado el valor de x entre 1 y 50. En este problema el n´mero total de combinaciones utilizadas ha usido de 900, debido a la reducci´n de los valores de x a la mitad. Tampoco hemos ejecutado el problema ocon 16 procesadores puesto que unicamente podr´ ´ ıamos utilizar dos valores distintos de ancho del tile (1y 2). El formato de esta tabla es el mismo que el utilizado en la tabla 4.2. En la tabla 4.3 se observa tambi´n que los tiempos de ejecuci´n se reducen al incrementar el n´mero e o ude procesadores, la aceleraci´n llega a 3.48 para 8 procesadores. Sin embargo, tambi´n existen varias o ecombinaciones de par´metros que hacen que el tiempo de ejecuci´n sea peor que el tiempo secuencial. De a onuevo es necesario indicar la amplia variaci´n de la aceleraci´n dependiendo de los valores usados para o oel ancho y alto del tile, lo que convierte la elecci´n de los par´metros en un aspecto fundamental de la o aejecuci´n en paralelo. Por ultimo, si comparamos los resultados obtenidos para el tama˜o de problema o ´ nn = 256 con los resultados para el problema de tama˜o n = 512, vemos que los peores resultados se nsiguen obteniendo con y = 1 aunque, en este caso, el valor de x var´ para 8 procesadores el peor tiempo ıa:se obtiene con un valor de x alto, mientras que para y = 1 y x peque˜o se mejora el tiempo secuencial; npara 4 procesadores con y = 1 la aceleraci´n es pr´cticamente id´ntica para x = 1 y para x = 50, o a epara los valores intermedios se obtiene un tiempo equivalente al tiempo secuencial; para 2 procesadores,sin embargo, todos los valores de x producen una aceleraci´n similar para y = 1. Si comprobamos las oaceleraciones m´ximas, podemos observar que para 4 y 8 procesadores el efecto es el mismo que en el aproblema de tama˜o 256: se obtienen para los valores m´s altos de y, con un valor de x peque˜o. En n a ncambio, para 2 procesadores esta situaci´n es diferente, hemos ejecutado con anchos del tile hasta 128 opero los resultados obtenidos para este valor son mucho peores que los tiempos con y = 32. En el problema de tama˜o n = 1024 utilizamos valores del alto del tile entre 1 y 30. Ahora ejecutamos ntambi´n con p = 16, puesto que ya podemos utilizar tres valores de ancho del tile (y = 1, 2 y 4). Sin eembargo, aunque 1024 = 32 cumple con la primera condici´n, s´lo podr´ 32 o o ıamos utilizarlo con y = 1 y lodescartamos. El n´mero de ejecuciones realizadas con combinaciones distintas han sido 720. El formato uutilizado en la tabla 4.4 es el mismo que el de las tablas anteriores. De nuevo comprobamos, en la tabla 4.4, la importancia en la elecci´n de los par´metros. Por ejemplo, o apara 16 procesadores se observa que el mejor resultado se obtiene para y = 4 y x = 1, con una aceleraci´n ode 3.79, para y = 2 y el mismo valor de x se llega a una aceleraci´n de 2.36. Para el resto de los o10 resultados presentados, la aceleraci´n alcanzada es inferior a 2 y en la mayor´ de ellos incluso se o ıaencuentra por debajo del tiempo secuencial.
  • 165. ˜4.7. RESULTADOS COMPUTACIONALES: TAMANO CONSTANTE DEL TILE 161Tabla 4.3: Tiempos de ejecuci´n del programa paralelo de la predicci´n de la estructura secundaria del RNA o opara una mol´cula de tama˜o 512, utilizando la versi´n horizontal no sincronizada. e n o Tama˜o de problema: 512 - Tiempo secuencial: 1.22 n N´mero de procesadores: 2 u y x Tiempo Real Aceleraci´n o y x Tiempo Real Aceleraci´n o 1 1 2.05 0.60 1 10 1.76 0.70 1 20 1.72 0.71 1 30 1.71 0.72 1 40 1.70 0.72 1 50 1.72 0.71 4 1 1.12 1.09 4 10 0.99 1.24 4 20 0.98 1.25 4 30 0.99 1.24 4 40 0.97 1.26 4 50 0.97 1.26 8 1 0.95 1.29 8 10 0.85 1.44 8 20 0.85 1.44 8 30 0.84 1.45 8 40 0.84 1.45 8 50 0.86 1.43 32 1 0.80 1.53 32 10 0.77 1.59 32 20 0.75 1.63 32 30 0.78 1.57 32 40 0.76 1.61 32 50 0.77 1.59 64 1 0.86 1.43 64 10 0.82 1.48 64 20 0.82 1.49 64 30 0.83 1.48 64 40 0.83 1.48 64 50 0.84 1.46 128 1 1.05 1.16 128 10 1.04 1.18 128 20 1.03 1.19 128 30 1.00 1.22 128 40 1.05 1.17 128 50 1.04 1.18 N´mero de procesadores: u 4 y x Tiempo Real Aceleraci´n o y x Tiempo Real Aceleraci´n o 1 1 1.61 0.76 1 10 1.24 0.99 1 20 1.14 1.08 1 30 1.16 1.05 1 40 1.43 0.86 2 50 1.60 0.77 4 1 0.72 1.70 4 10 0.60 2.06 4 20 0.59 2.07 4 30 0.61 2.01 4 40 0.73 1.67 4 50 0.85 1.45 8 1 0.56 2.20 8 10 0.50 2.43 8 20 0.52 2.35 8 30 0.55 2.22 8 40 0.64 1.92 8 50 0.74 1.61 16 1 0.52 2.37 16 10 0.51 2.41 16 20 0.48 2.57 16 30 0.49 2.50 16 40 0.56 2.17 16 50 0.64 1.91 32 1 0.45 2.73 32 10 0.46 2.65 32 20 0.47 2.63 32 30 0.50 2.44 32 40 0.56 2.20 32 50 0.63 1.94 N´mero de procesadores: u 8 y x Tiempo Real Aceleraci´n o y x Tiempo Real Aceleraci´n o 1 1 1.02 1.21 1 10 0.83 1.48 1 20 1.55 0.79 1 30 2.43 0.50 1 40 2.80 0.44 2 50 3.53 0.35 4 1 0.48 2.57 4 10 0.47 2.60 4 20 0.80 1.53 4 30 1.13 1.08 4 40 1.53 0.80 4 50 1.87 0.66 8 1 0.35 3.48 8 10 0.39 3.12 8 20 0.82 1.50 8 30 0.91 1.34 8 40 1.11 1.10 8 50 1.42 0.86
  • 166. 162 CAP´ ´ ITULO 4. LA PREDICCION DE LA ESTRUCTURA SECUNDARIA DEL RNATabla 4.4: Tiempos de ejecuci´n del programa paralelo de la predicci´n de la estructura secundaria del RNA o opara una mol´cula de tama˜o 1024, utilizando la versi´n horizontal no sincronizada. e n o Tama˜o de problema: 1024 - Tiempo secuencial: 5.97 n N´mero de procesadores: 2 u y x Tiempo Real Aceleraci´n o y x Tiempo Real Aceleraci´n o 1 1 16.23 0.37 1 10 14.79 0.40 1 20 14.82 0.40 1 30 14.55 0.41 8 1 5.24 1.14 8 10 4.92 1.21 8 20 4.89 1.22 8 30 4.94 1.21 32 1 4.15 1.44 32 10 4.02 1.48 32 20 3.98 1.50 32 30 3.98 1.50 64 1 4.11 1.45 64 10 4.069 1.47 64 20 4.00 1.49 64 30 4.07 1.47 128 1 4.53 1.32 128 10 4.44 1.34 128 20 4.47 1.33 128 30 4.42 1.35 256 1 5.33 1.12 256 10 5.37 1.11 256 20 5.28 1.13 256 30 5.35 1.12 N´mero de procesadores: 4 u y x Tiempo Real Aceleraci´n o y x Tiempo Real Aceleraci´n o 1 1 12.14 0.49 1 10 9.41 0.63 1 20 9.60 0.62 1 30 9.38 0.64 8 1 3.19 1.87 8 10 2.88 2.07 8 20 2.87 2.08 8 30 2.90 2.06 16 1 2.70 2.21 16 10 2.42 2.47 16 20 2.41 2.48 16 30 2.46 2.43 32 1 2.38 2.51 32 10 2.19 2.72 32 20 2.22 2.69 32 30 2.22 2.69 64 1 2.63 2.27 64 10 2.49 2.39 64 20 2.57 2.32 64 30 2.66 2.24 N´mero de procesadores: 8 u y x Tiempo Real Aceleraci´n o y x Tiempo Real Aceleraci´n o 1 1 6.47 0.92 1 10 5.69 1.05 1 20 6.62 0.90 1 30 9.92 0.60 4 1 2.81 2.12 4 10 2.28 2.62 4 20 2.70 2.21 4 30 3.85 1.55 8 1 2.07 2.89 8 10 1.78 3.37 8 20 2.39 2.50 8 30 2.88 2.07 16 1 1.61 3.71 16 10 1.72 3.48 16 20 1.78 3.34 16 30 2.51 2.38 N´mero de procesadores: 16 u y x Tiempo Real Aceleraci´n o y x Tiempo Real Aceleraci´n o 1 1 4.99 1.20 1 10 7.45 0.80 1 20 13.50 0.44 1 30 19.84 0.30 2 1 2.53 2.36 2 10 4.41 1.35 2 20 8.43 0.71 2 30 12.81 0.47 4 1 1.57 3.79 4 10 3.42 1.75 4 20 6.04 0.99 4 30 8.22 0.73
  • 167. ˜4.7. RESULTADOS COMPUTACIONALES: TAMANO CONSTANTE DEL TILE 163 Utilizando unicamente los resultados presentados en la tabla, la mejor opci´n para resolver el problema ´ oparece ser con 16 procesadores, aunque la diferencia con los tiempos usando 8 procesadores es m´ ınimapara haber duplicado el n´mero de procesadores. Para conocer realmente el n´mero de procesadores u u´ptimo tendremos que tener en cuenta todos los resultados obtenidos en las ejecuciones (secci´n 4.9).o o Para este tama˜o de problema y para un n´mero de procesadores de 2 ´ 4 se observa que el valor de y n u opara la mejor ejecuci´n ya no es el valor m´s alto, mientras que para 8 y 16 procesadores el valor m´ximo o a ade y sigue siendo la mejor elecci´n. Los peores resultados se siguen obteniendo para las distribuciones oc´ ıclicas puras (y = 1) con cualquier n´mero de procesadores. u En la figura 4.27 mostramos los resultados obtenidos cuando fijamos el n´mero de procesadores y el uvalor de y y variamos x y cuando fijamos el n´mero de procesadores y x y modificamos el valor de y. uFigura 4.27: Aceleraciones obtenidas para el problema de tama˜o 1024 con la versi´n horizontal no sincronizada n ofijando 2 par´metros y variando el tercero. Izquierda: Fijamos n´mero de procesadores y x. Derecha: Fijamos a un´mero de procesadores y el valor de y. u En la tabla 4.5 mostramos una selecci´n de