Cp223

401 views
323 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
401
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cp223

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×