SlideShare uma empresa Scribd logo
1 de 231
Baixar para ler offline
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ÍGUEZ




SOPORTES AUDIOVISUALES E INFORMÁTICOS
         Serie Tesis Doctorales
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                                 a
y del Departamento de Estad´ıstica, Investigaci´n Operativa y Computaci´n por la ayuda y el apoyo
                                               o                       o
facilitado 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
                                                                         e
horas 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       e
Jos´ Luis y F´lix.
   e         e

   Y, por supuesto, a mi familia, que ha estado conmigo siempre.
Pr´logo
     o
     Este trabajo se enmarca en el contexto de la computaci´n en paralelo. Es un hecho conocido que
                                                            o
el paralelismo constituye una alternativa real para reducir el tiempo de ejecuci´n de las aplicaciones.
                                                                                   o
Arquitecturas paralelas homog´neas con elementos de proceso de caracter´
                               e                                            ısticas similares est´n siendo
                                                                                                 a
usadas con ´xito en distintos ´mbitos de la ciencia y de la industria. De forma natural, la ampliaci´n
             e                a                                                                         o
y la potenciaci´n de un sistema homog´no con nuevos elementos, deriva en un sistema de naturaleza
                o                       e
heterog´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 elementos
que 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                         o
en arquitecturas de paso de mensaje como PVM y MPI, la programaci´n de sistemas heterog´neos se
                                                                            o                      e
convierte en un problema tan sencillo o complicado como pueda serlo la programaci´n de arquitecturas
                                                                                       o
homog´neas. Sin embargo, aunque la portabilidad de los c´digos est´ garantizada, no ocurre lo mismo
       e                                                      o         a
con el rendimiento observado en las aplicaciones. Aparecen nuevas situaciones y cuellos de botella que
no pueden ser resueltos mediante la aplicaci´n directa de los modelos y las t´cnicas conocidas para el
                                               o                                 e
caso homogeneo. Se hace necesario adaptar los m´todos conocidos y en muchos casos dise˜ar nuevas
                                                     e                                          n
estrategias comenzando desde cero. Nos encontramos ante un conjunto importante de problemas abiertos
que est´n siendo intensamente estudiados y analizados. Los objetivos de este memoria se centran en el
        a
desarrollo 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                                                      o
situarnos en el estado actual y en la problem´tica asociada a la computaci´n en paralelo sobre los
                                                 a                            o
sistemas heterog´neos. Una aproximaci´n formal a conceptos y m´tricas que adem´s ilustra el contexto
                  e                     o                         e               a
espec´ı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                                      o
paralelo son el paradigma maestro-esclavo y el paradigma pipeline. Es cierto que ambos paradigmas han
sido profusamente estudiados sobre arquitecturas homog´neas; su an´lisis y desarrollo sobre plataformas
                                                         e           a
heterog´neas constituye en estos momentos un aut´ntico reto. Los modelos formulados para arquitecturas
        e                                         e
homog´neas pueden considerarse como el punto de partida con el que abordar el caso heterog´neo, sin
       e                                                                                       e
embargo, tales modelos no son directamente aplicables a este nuevo contexto. En ambas t´cnicas, partien-
                                                                                        e
do de las propuestas cl´sicas para el caso homog´neo, estudiamos su comportamiento sobre arquitecturas
                       a                        e
heterog´neas. La heterogeneidad viene dada por diferencias en los elementos de procesamiento y en las
        e
capacidades de comunicaci´n. Derivamos modelos anal´
                            o                          ıticos que predicen su rendimiento y proponemos
estrategias para la distribuci´n ´ptima de tareas desarrollando las herramientas y utilidades necesarias
                              o o
en cada caso.
    El cap´
          ıtulo 2 contempla el paradigma maestro-esclavo, modelizamos las estrategias FIFO y LIFO
validando el modelo anal´ıtico sobre aplicaciones bien conocidas: Productos de Matrices y Transformadas
de Fourier bidimensionales. Hemos resuelto el problema de la asignaci´n ´ptima de los recursos (los
                                                                         o o
procesadores) a las tareas, minimizando la funci´n objetivo obtenida desde el modelo an´litico, mediante
                                                 o                                      a
algoritmos de programaci´n din´mica. La utilidad propuesta permite no s´lo establecer los beneficios de
                          o      a                                        o
las aproximaciones FIFO y LIFO, sino que adem´s deriva el conjunto ´ptimo de procesadores para una
                                                   a                   o
ejecuci´n eficiente.
       o
    El cap´
          ıtulo 3 alude al m´todo pipeline. Desarrollamos herramientas que facilitan la instanciaci´n de
                             e                                                                         o
algoritmos pipeline en los que el n´mero de etapas puede ser muy superior al n´mero de procesadores
                                     u                                               u
reales. Admite distribuciones c´ıclicas y c´
                                           ıclicas por bloques de las etapas del pipeline virtual al pipeline
real. Considerado el caracter heterog´neo de la plataforma, las distribuciones c´
                                      e                                         ıclicas por bloques admiten
asignaciones vectoriales en las que los procesadores reciben tama˜os de bloques acordes a su capacidad
                                                                    n
computacional. El tama˜o del buffer de comunicaci´n es tambi´n un par´metro de entrada. La im-
                         n                               o           e         a
plementaci´n de algoritmos de programaci´n din´mica para Problemas de la Mochila 0/1, Problemas
            o                                o      a
de Asignaci´n de Recursos, Problemas de Subsecuencias de Cadenas y Problemas de Planificaci´n de
             o                                                                                          o
Caminos ilustra el uso y los beneficios de la librer´ La modelizaci´n anal´
                                                   ıa.                o       ıtica del m´todo ha sido valida-
                                                                                          e
da sobre problemas sint´ticos proponiendo t´cnicas con la que obtener par´metros (tama˜os de bloques
                         e                    e                                  a              n
y buffers) para su ejecuci´n ´ptima. Algunos autores encuentran analog´ entre el comportamiento de
                           o o                                                ıas
las aplicaciones en plataformas heterog´neas y el de determinados c´digos irregulares sobre plataformas
                                         e                              o
homog´neas. Este hecho admite la consideraci´n de la heterogeneidad debida al programa en plataformas
       e                                        o
homog´neas. El cap´
       e             ıtulo 4 presenta una de tales aplicaciones, la predicci´n de la estructura secundaria
                                                                               o
del RNA. El paquete de Viena es un software de libre distribuci´n que resuelve este problema, adem´s de
                                                                   o                                     a
otros asociados a la biolog´ molecular. Implementa un conocido algoritmo de Programaci´n Din´mica
                            ıa                                                                    o     a
que presenta un particular tipo de dependencias en el dominio de ejecuci´n. El espacio de iteraciones
                                                                                 o
presenta un comportamiento irregular en el que el coste de cada iteraci´n es variable, condicionando un
                                                                            o
particionado no regular. Proponemos modelos anal´    ıticos con los que obtener las dimensiones ´ptimas en
                                                                                                    o
esta divisi´n del trabajo. Dada la dificultad del problema, el modelo introduce simplificaciones en el sis-
           o
tema para facilitar su manipulaci´n mediante el aparato matem´tico. Presentamos un modelo estad´
                                  o                                a                                     ıstico
que prueba su efectividad m´s all´ del ´mbito de aplicabilidad del modelo anal´
                               a   a     a                                            ıtico. Ambas propuestas
han sido validadas sobre m´leculas reales obtenidas de bases de datos p´blicas, generadas por diversos
                             o                                                u
proyectos del contexto de la biolog´ La modelizaci´n estad´
                                     ıa.                o        ıstica se concibe en esta ocasi´n como un
                                                                                                   o
instrumento valioso en la predicci´n y an´lisis del rendimiento de aplicaciones paralelas. En el ap´ndice
                                   o       a                                                           e
A se hace un ligero recorrido sobre algunos conceptos y t´rminos de la biolog´ computacional que han
                                                             e                      ıa
sido utilizados de forma natural en el cap´ıtulo 4. Con este apartado, se pretende adem´s contextualizar
                                                                                              a
el problema de la predicci´n de la estructura secundaria del RNA y su relevancia.
                           o
´
Indice general

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

2. 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
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    82

3. 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
´
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

4. 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

A. 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
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
Cap´
   ıtulo 1

Computaci´n Paralela en Sistemas
          o
Heterog´neos: Conceptos B´sicos,
       e                 a
Objetivos y Metodolog´
                     ıa

1.1.     Introducci´n
                   o

    Los computadores secuenciales tradicionales han sido dise˜ados durante muchos a˜os bas´ndose en el
                                                                n                       n      a
modelo introducido por John Von Newman [151, 179, 180]. Este modelo consiste en una unidad central
de 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-
          ´                                             a
ci´n de instrucciones y la velocidad de intercambio entre memoria y CPU. La primera m´quina que se
  o                                                                                          a
construy´ utilizando est´ tecnolog´ fue la EDVAC [108, 121, 181], en 1947; desde entonces, este modelo
         o               a           ıa
se convirti´ en el m´s utilizado en el dise˜o de ordenadores. Sin embargo, actualmente existe un amplio
            o        a                      n
rango de aplicaciones (cient´ ıficas, t´cnicas, m´dicas, etc.) que requieren procesar grandes cantidades de
                                       e         e
datos o realizar un alto n´mero de operaciones, pero no existen procesadores con capacidad para re-
                            u
solverlas de forma independiente en un per´    ıodo de tiempo razonable [1, 102, 113, 185]. Esto indica que
para ciertas aplicaciones, no es posible emplear el modelo Von Newman y es necesario buscar alternativas
tecnol´gicas.
      o
   Una de estas alternativas consiste en emplear m´ltiples procesadores que cooperen para resolver un
                                                    u
problema en una fracci´n del tiempo que requiere un procesador secuencial. Un problema cualquiera se di-
                      o
vide en un n´mero arbitrario de subproblemas y estos subproblemas pueden resolverse simult´neamente
             u                                                                              a
sobre 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-
                                                                o
putaci´n en paralelo y pretende conseguir que p procesadores, trabajando de forma conjunta, resuelvan
       o
un problema p veces m´s r´pido que un unico procesador; aunque esta situaci´n ideal raras veces se al-
                       a a              ´                                     o
canza en la pr´ctica.
               a
   Durante a˜os se han propuesto una amplia variedad de estrategias para abordar la computaci´n en
              n                                                                                      o
paralelo. Estos nuevos modelos difieren en la forma en la que se comunican los procesadores (memoria
compartida o distribuida, red de interconexi´n en forma de ´rbol, estrella, etc.), pueden ejecutar el
                                              o                 a
mismo algoritmo o no, operar de forma s´   ıncrona o as´ ıncrona, etc. Esto significa que existen diversas
formas de concebir la programaci´n en paralelo y de construir m´quinas paralelas para resolver un
                                    o                                 a
problema mediante esta t´cnica de computaci´n. Estas m´quinas presentan distintas caracter´
                           e                   o            a                                   ısticas de
red y arquitectura. Podemos encontrar sistemas formados por una unica m´quina con varios procesadores
                                                                   ´       a
que colaboran en la resoluci´n de un problema. Estos sistemas han sido denominados multiprocesadores
                             o


                                                    5
6   CAP´
       ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´
                                ´                                      IA


o multicomputadores; se caracterizan por una gran capacidad de almacenamiento y una alta velocidad
de c´mputo, pero resultan muy caros y dif´
     o                                      ıciles de amortizar. Normalmente, se considera que estos
dos sistemas se diferencian en el acceso a memoria, la mayor´ de las definiciones establecen que un
                                                              ıa
multiprocesador es un sistema de memoria compartida, mientras que un multicomputador trabaja con
memoria distribuida [93, 141, 169]. Un multiprocesador puede a su vez clasificarse en grupos basados en
la 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
                                                                                               o
acceso no uniforme (NUMA), donde la memoria compartida est´ f´ a ısicamente distribuida entre los nodos
de procesamiento.
    Una alternativa de bajo coste para los sistemas paralelos la encontramos en sistemas que denominamos
clusters. Estos sistemas se componen de m´ltiples m´quinas, conectadas mediante una red, que el usuario
                                             u        a
utiliza como si dispusiera de un unico computador paralelo [42, 43, 44]. Los clusters de PCs est´n jugando
                                 ´                                                              a
un papel importante en la Computaci´n de Alto Rendimiento (High Performance Computing). Esto es
                                        o
debido al bajo coste de estos sistemas en relaci´n a su rendimiento. Nosotros hemos centrado gran parte
                                                 o
de nuestro trabajo en la resoluci´n de problemas sobre este tipo de recursos. Otro factor, que tambi´n ha
                                 o                                                                    e
contribuido de forma notable a la expansi´n de estos sistemas, se encuentra en la aparici´n de librer´
                                            o                                               o           ıas
est´ndar de procesamiento paralelo que han facilitado la portabilidad de programas paralelos a diferentes
   a
arquitecturas (PVM (Parallel Virtual Machine) [63, 78] y MPI (Message passing interface) [89, 134] para
el 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                                       o
de estos sistemas en la lista de los 500 sistemas m´s potentes (la lista del top500 [125]). En esta lista
                                                     a
se 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
                             a
ambos se encuentran instalados en Estados Unidos. El primero de ellos en el Lawrence Livermore National
Laboratory y est´ compuesto por 4096 procesadores Thunder e Intel Itanium2 Tiger4 de 1,4 GHz. El
                 a
segundo est´ localizado en Los Alamos National Laboratory, compuesto por 8192 procesadores ASCI Q -
            a
AlphaServer 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
                    ´                                            o
iguales, as´ como tambi´n lo son los tiempos de comunicaci´n entre ellos. A estos sistemas se los conoce
           ı           e                                   o
como sistemas homog´neos. Sin embargo, debido a la arquitectura inherente a este tipo de sistema, es
                        e
muy probable que al incrementar el n´mero de procesadores en el cluster o al sustituir alg´n elemento
                                        u                                                     u
de la m´quina (procesador, memoria, interfaz de red, etc.) las caracter´
         a                                                               ısticas de la nueva m´quina no
                                                                                                 a
coincidan con las caracter´
                          ısticas de los componentes originales, dando lugar a un sistema de naturaleza
heterog´nea.
        e
    El concepto de sistema heterog´neo se aplica, en ocasiones, a sistemas compuestos por diferentes
                                      e
tipos de PCs y m´quinas con m´ltiples procesadores conectados mediante redes. Debido a las diferencias
                  a             u
entre las m´quinas que forman el sistema, es probable que las velocidades de c´mputo de los procesadores
           a                                                                  o
sean distintas y los tiempos de transferencia de datos tambi´n pueden ser diferentes en las comunica-
                                                               e
ciones entre cada par de procesadores. La naturaleza de esta red es inherentemente din´mica y depende de
                                                                                      a
qu´ 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                                                         o
de 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
                                                                  e
tiempos de ejecuci´n de las aplicaciones. El rendimiento conseguido con un multiprocesador o multicom-
                   o
putador paralelo suele ser m´s elevado que el obtenido en un entorno de m´quinas heterog´neas; los usua-
                            a                                              a               e
rios pueden verse obligados a aceptar en algunos casos una reducci´n del rendimiento de sus aplicaciones a
                                                                   o
favor de una gran reducci´n en el coste del sistema. Una de las razones para que esta situaci´n se produz-
                          o                                                                  o
ca, es que la mayor´ de los programas paralelos han sido desarrollados bajo la hip´tesis de trabajar sobre
                   ıa                                                             o
´
1.1. INTRODUCCION                                                                                            7


una arquitectura homog´nea. Esta hip´tesis tambi´n ha sido considerada de manera habitual al desarro-
                          e              o            e
llar 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.      e
Se hace necesario, por tanto, revisar los conceptos y modelos utilizados hasta el momento en los sistemas
homog´neos para adaptarlos a entornos heterog´neos [145, 191]. En los ultimos a˜os se han publicado
        e                                           e                       ´          n
diversos trabajos que analizan los entornos heterog´neos y los par´metros que deben considerarse en
                                                        e              a
el uso de estos sistemas: las distintas velocidades de c´mputo de los procesadores que trabajan en la
                                                           o
resoluci´n del problema; las capacidades de memoria; la arquitectura de la red de interconexi´n entre
         o                                                                                            o
las m´quinas; la planificaci´n de la distribuci´n de los subproblemas a los procesadores; el an´lisis del
       a                      o                  o                                                   a
rendimiento del sistema, etc. Algunos de los mejores trabajos realizados sobre sistemas heterog´neos en
                                                                                                      e
los ultimos a˜os podemos encontrarlos en [14, 15, 16, 17, 18, 37, 39, 40, 116, 118]. En [37] los autores
     ´        n
describen diferentes tipos de heterogeneidad que pueden encontrarse en un sistema y estudian la mayor´       ıa
de las situaciones que surgen en las plataformas homog´neas y heterog´neas, para c´mputos regulares e
                                                           e              e              o
irregulares. Debido a que existen diferentes tipos de heterogeneidad, algunos autores [16] consideran una
simplificaci´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 probado
que incluso la heterogeneidad en la velocidad de los procesadores puede tener un impacto significativo
en la sobrecarga de las comunicaciones [14], a´n cuando las capacidades de comunicaci´n en la red sean
                                                 u                                         o
las mismas para todos los procesadores. En [18] los autores dan una definici´n formal de una plataforma
                                                                               o
heterog´nea, como un grafo dirigido donde cada nodo es un recurso de computaci´n y las aristas son
         e                                                                               o
los enlaces de comunicaci´n entre ellos; en [17] se pueden encontrar algoritmos (round robin y multiple
                            o
round robin), que permiten calcular la distribuci´n de trabajo en plataformas homog´neas y heterog´neas,
                                                   o                                   e                 e
considerando la existencia o no de latencia en el sistema; en [15] los autores realizan un estudio sobre
estrategias de planificaci´n teniendo en cuenta distintas plataformas heterog´neas en estrella o en ´rbol,
                          o                                                     e                         a
considerando adem´s diferentes niveles de paralelismo interno en los procesadores. En [116] se presentan
                    a
modelos de programaci´n eficientes en entornos heterog´neos comparando el rendimiento de un cluster
                         o                                  e
Linux (14 procesadores Intel Pentium II ), con el de una m´quina Cray-T3E con 512 procesadores DEC
                                                              a
Alpha. En [118] se puede encontrar una heur´     ıstica que proporciona la distribuci´n de la carga ´ptima
                                                                                     o                  o
para los procesadores organizados mediante un anillo virtual, de modo que cada procesador s´lo puedeo
comunicarse con otros dos procesadores: el predecesor y el posterior en el anillo. En [39, 40] presentan
un sistema denominado PINCO para monitorizar la carga de las m´quinas del sistema, de manera que
                                                                       a
pueden realizar una distribuci´n din´mica de la carga. En estos trabajos los autores plantean las tres
                                o      a
posibles 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
                                                                    a
din´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 de
heterogeneidad en sistemas paralelos. En la secci´n 1.3 se describen las plataformas heterog´neas y se co-
                                                    o                                           e
mentan algunas de sus caracter´ ısticas. En 1.4 se detallan algunas de las m´tricas utilizadas para establecer
                                                                            e
el rendimiento obtenido en estos sistemas. En 1.5 presentamos dos ejemplos de sistemas heterog´neos: el
                                                                                                     e
cluster donde hemos realizado la mayor´ de las ejecuciones presentadas en este trabajo (subsecci´n 1.5.1)
                                          ıa                                                         o
8   CAP´
       ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´
                                ´                                      IA


y 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                ıa



1.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 de
heterogeneidad 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 a
coste.

         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
´
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                                       e


1.3.     Plataformas heterog´neas
                            e
   Una plataforma heterog´nea puede ser definida como un infraestructura computacional donde est´n
                           e                                                                        a
disponibles procesadores de diferentes caracter´
                                               ısticas conectados a trav´s de una red. Esta plataforma
                                                                        e
puede 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
                                                                                         u
ciclos. El grafo puede ser completo o no (figuras 1.2-a y 1.2-b respectivamente) o estar organizado en una
estructura de estrella (figura 1.2-c), ´rbol (figura 1.2-d), etc. Si consideramos un procesador cualquiera
                                       a
pi , se denominan vecinos de pi a todos aquellos procesadores interconectados a pi a trav´s de una arista
                                                                                            e
del grafo. En el caso de disponer de un conjunto de procesadores interconectados a trav´s de un grafo
                                                                                              e
completo, 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 de
comunicaci´n independiente entre cada par de nodos, o bien, considerar la plataforma donde todos los
           o
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
                                               e
directo entre cada par de procesadores heterog´neos de la plataforma. b) Grafo no completo con 9 procesadores.
                                              e
c) 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                       a
dado solamente un procesador puede utilizar la red de interconexi´n. Esto supone que si otro procesador
                                                                  o
quiere utilizar el canal en el momento en que un procesador ya est´ transmitiendo, debe esperar a que el
                                                                   a
canal 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                                                  a
trav´s de un unico bus.
    e        ´

    En todos estos ejemplos hemos considerado que un enlace entre dos procesadores cualesquiera es
bidireccional; sin embargo, una variante a este tipo de plataforma puede asumir que en lugar de disponer de
aristas bidireccionales, existen dos enlaces unidireccionales entre cada par de procesadores, con etiquetas
que pueden ser diferentes. En este caso, la plataforma heterog´nea se representa por un grafo dirigido
                                                                  e
y el tiempo de transmisi´n de un mensaje de pi a pj puede no coincidir con el tiempo empleado para
                           o
transmitirlo de pj a pi .
    Asimismo, los procesadores del sistema pueden presentar diferentes comportamientos, en funci´n deo
sus capacidades para solapar c´mputo y comunicaciones [15]: realizar simult´neamente m´ltiples recep-
                                   o                                             a           u
ciones de datos de todos sus vecinos, alguna operaci´n de c´mputo y m´ltiples operaciones de env´ de
                                                         o      o           u                         ıo
informaci´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
´                                         ´
1.4. METRICAS DE RENDIMIENTO EN SISTEMAS HETEROGENEOS                                                  11


c´mputo + env´ o pueden llevar a cabo unicamente una operaci´n en cada instante de tiempo. Esta
 o             ıo);                         ´                        o
ultima opci´n elimina el paralelismo interno de los procesadores, ya que todas las operaciones que ejecuta
´          o
un 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                                 e
sistemas heterog´neos. Algunas de ellas se definen de forma natural por extensi´n del caso homog´neo;
                 e                                                            o                  e
otras, por contra, requieren una formulaci´n espec´
                                          o       ıfica. En la definici´n de estas medidas se utiliza la
                                                                     o
siguiente 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-
                                                                          o
po transcurrido desde el comienzo de la ejecuci´n paralela hasta el momento en que finaliza el ultimo
                                                o                                              ´
                          a p−1
procesador [113]: Tpar = m´xi=0 Ti .

    La potencia computacional de un procesador en un sistema heterog´neo puede ser definida como
                                                                            e
la cantidad de trabajo realizada en el procesador durante una unidad de tiempo [145, 192]. La potencia
computacional depende de las caracter´  ısticas f´
                                                 ısicas del procesador, pero tambi´n de la tarea que se
                                                                                  e
est´ ejecutando. Esto significa que este valor puede variar para diferentes aplicaciones y, debido a las
   e
limitaciones del tama˜o de memoria, cach´ y otros componentes hardware, la velocidad de c´mputo
                      n                      e                                                  o
puede 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
        M
CPi = Tseq . Desde un punto de vista pr´ctico, la potencia computacional media, en un conjunto de
                                         a
           i
procesadores, puede calcularse ejecutando una versi´n secuencial del algoritmo en cada uno de ellos,
                                                   o
usando 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
                               e
CPi = 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 que
componen el sistema [145]. Este par´metro refleja la cantidad de trabajo que puede realizar el sistema en
                                   a
                                                                                                p−1
una 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-
                         e
sadores, 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
                 e
par´metro ofrece un valor de la similitud o diversidad de las m´quinas del sistema; por ejemplo, cuando
    a                                                          a
un 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                     ıa
es un sistema con una heterogeneidad alta. Se calcula en funci´n de la potencia computacional de sus
                                                                o
m´quinas: escalando los valores obtenidos de las potencias computacionales para los procesadores, de
  a
modo que a aquellos que sean m´s r´pidos se les asigne una potencia computacional de 1. Denominando
                                a a
CPiE 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                                  e
computacional es la misma para todos los procesadores) y un valor m´ximo pr´ximo a 1.
                                                                   a        o
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
                                                                           e
coste de las comunicaciones. Tal como se ha descrito en la secci´n 1.2, un modelo habitual utiliza β ij
                                                                    o
y τij (latencia y tiempo de transferencia respectivamente entre dos procesadores de la red, p i y pj ) para
representar 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         e
miento de un algoritmo en el sistema, puesto que muestra el beneficio relativo de resolver un problema
en 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
                                                                    Tseq
cualquiera 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
                                                                                a
sistema. Te´ricamente, la aceleraci´n nunca puede exceder al n´mero de procesadores p que intervienen en
             o                     o                          u
la resoluci´n del problema. En muchos casos, la aceleraci´n conseguida es mucho menor que la aceleraci´n
           o                                             o                                            o
m´xima (Sp << p). Esta situaci´n puede producirse cuando no es posible descomponer el problema en
  a                              o
un n´mero apropiado de tareas independientes a ser ejecutadas simult´neamente; o bien, si el tiempo
      u                                                                  a
requerido 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
                                                                                             o
al m´ximo (Sp > p). Este fen´meno se conoce como aceleraci´n superlineal [20, 91, 96]. Puede
     a                          o                                 o
aparecer debido a algoritmos secuenciales no ´ptimos o a caracter´
                                                 o                  ısticas del hardware que ralentizan
la ejecuci´n del algoritmo secuencial (por ejemplo, el tama˜o de la memoria cach´). La primera de
          o                                                  n                        e
estas situaciones se produce cuando el programa paralelo implementado realiza un n´mero inferior de
                                                                                       u
operaciones, para resolver el problema, que el algoritmo secuencial. En este caso, la superlinealidad
puede resolverse f´cilmente si es posible dise˜ar un nuevo algoritmo secuencial que sea equivalente al
                   a                           n
algoritmo paralelo empleado. La segunda de las situaciones es debida al tama˜o de la memoria cach´ de
                                                                               n                     e
un procesador, que puede permitir resolver el subproblema asignado en una ejecuci´n paralela, realizando
                                                                                  o
pocos intercambios de informaci´n entre memoria cach´ y memoria principal; mientras que el tama˜o
                                 o                      e                                              n
del problema a resolver en el caso secuencial es muy superior y son necesarios un n´mero excesivo
                                                                                         u
de intercambios de datos entre memoria principal y cach´, ralentizando su ejecuci´n. En este caso, el
                                                          e                         o
problema 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
                      e
de forma secuencial, por lo que es necesario adaptar el concepto de aceleraci´n. Diferentes autores pro-
                                                                                o
porcionan definiciones de la aceleraci´n en una red heterog´nea [2, 32, 47, 62, 191, 192]. La definici´n m´s
                                      o                      e                                      o     a
extendida es la que considera la aceleraci´n como la relaci´n entre el tiempo necesario para completar una
                                          o                o
ejecuci´n en el procesador de referencia de la red y el tiempo empleado para realizar la misma ejecuci´n
       o                                                                                                 o
sobre el sistema heterog´neo. Es habitual considerar como procesador de referencia el procesador m´s
                         e                                                                                a
                                                                                           m´ p Tseqi
                                                                                            ıni=0
r´pido del sistema; en este caso, la definici´n de la aceleraci´n se convierte en Sp =
 a                                            o                 o                             Tpar    . Esta
definici´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                                           u
que 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
                                                                      u
al procesador considerado como referencia, que deber´ componer un sistema homog´neo, para que los
                                                        ıan                           e
dos sistemas tuvieran la misma potencia de c´mputo total. Para calcular este valor es necesario conocer
                                              o
el n´mero de m´quinas de cada tipo disponibles en el sistema y las relaciones entre sus velocidades.
    u             a
Considerando como procesador de referencia el correspondiente a las m´quinas m´s r´pidas, utilizamos
                                                                         a         a a
las potencias computacionales escaladas para obtener la heterogeneidad del sistema. Suponiendo que
tenemos 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          a
m´quinas lentas. Considerando un sistema heterog´neo general, donde existen m tipos de m´quinas
  a                                                   e                                           a
                                                                                          m−1
diferentes, la aceleraci´n m´xima viene dada por la siguiente ecuaci´n: Sp max = n R + i=1 ni ∗ CPiE ;
                        o    a                                      o
´                                         ´
1.4. METRICAS DE RENDIMIENTO EN SISTEMAS HETEROGENEOS                                                    13


donde 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                     u
de cada uno de los tipos restantes (i = 1, . . . , m − 1) por su potencia computacional escalada. Un ejemplo
de aplicaci´n de esta definici´n lo encontramos en [88], aunque en este caso los autores utilizan como
           o                  o
m´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
                                             e
de 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
                                                                   a
c´mputo paralelo. En los sistemas homog´neos la eficiencia se define como la aceleraci´n dividida entre el
 o                                         e                                            o
n´mero de procesadores Sp/p y se han desarrollado numerosos trabajos, tanto te´ricos como pr´cticos,
  u                                                                                  o               a
para caracterizar la eficiencia en estos sistemas [1, 58, 68, 87, 115, 185]. En un sistema ideal, el valor de
la 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           e
dad de un sistema paralelo para mejorar su rendimiento cuando aumenta el tama˜o del problema y el
                                                                                      n
n´mero de procesadores. Se basa en la selecci´n de una m´trica empleada para caracterizar el compor-
 u                                            o             e
tamiento del sistema. Las m´tricas m´s utilizadas han sido la aceleraci´n, la eficiencia, la velocidad media
                            e         a                                o
y la latencia. El grado de escalabilidad de un sistema se calcula mediante la ecuaci´n: crecimiento del
                                                                                        o
problema / crecimiento del sistema [190, 192].
    Sin embargo, como sucede con las restantes medidas de rendimiento vistas en esta secci´n, no es
                                                                                              o
posible aplicar estos conceptos del ´mbito homog´neo directamente al caso heterog´neo, debido a las
                                      a             e                                  e
diferencias de caracter´
                       ısticas y rendimiento de los procesadores que conforman el sistema. Para poder
establecer definiciones que se adapten a los sistemas heterog´neos partimos del concepto anterior de
                                                                e
potencia computacional total y concluimos que su valor en un sistema depende tanto del n´mero de
                                                                                              u
procesadores que componen el sistema como de la potencia computacional de cada uno de ellos. Esto
significa que dos sistemas con el mismo n´mero de procesadores no necesariamente deben tener la misma
                                          u
potencia computacional total y, por lo tanto, es posible incrementar su valor aumentando el n´mero
                                                                                                u
de 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                                                                  e
debido a que el rendimiento del sistema depende de cu´les son las m´quinas utilizadas en cada momento.
                                                     a             a
La eficiencia en un sistema heterog´neo puede definirse como la relaci´n entre el menor tiempo de eje-
                                    e                                 o
cuci´n necesario para resolver un problema espec´
    o                                           ıfico en el sistema y el tiempo real obtenido durante la
ejecuci´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
                                                           o
heterog´neo HN con p procesadores, con CPt para un trabajo M , y un sistema HN , con p procesadores
        e
y con CPt para un trabajo M , con CPt > CPt ; se puede decir que HN es un sistema escalable si, cuando
el sistema es ampliado desde HN a HN , es posible seleccionar un problema M tal que la eficiencia de
HN y HN permanezcan constantes.
    A efectos pr´cticos consideraremos que el sistema es escalable cuando sea posible incrementar la efi-
                 a
ciencia 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                                                                        e
medida a tener en cuenta en el caso homog´neo. El n´mero total de procesadores disponibles en un
                                             e          u
entorno puede ser superior al n´mero ´ptimo necesario para ejecutar un algoritmo, lo que puede producir
                               u     o
un uso ineficiente de la arquitectura paralela. Esto significa que hay que seleccionar un subconjunto de
procesadores que minimice el tiempo de ejecuci´n del problema. En el caso heterog´neo, es necesario
                                                 o                                    e
calcular el n´mero ´ptimo de procesadores de cada uno de los tipos disponibles de m´quinas, para
             u      o                                                                     a
minimizar el tiempo de ejecuci´n.
                               o
14 CAP´
      ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´
                               ´                                      IA


1.5.     Ejemplos de sistemas heterog´neos
                                     e

1.5.1.    Un ejemplo de plataforma heterogenea

   Consideramos la plataforma heterog´nea donde hemos realizado las pruebas experimentales de los
                                         e
cap´
   ıtulos 2 y 3, como el grafo no dirigido HN (P, IN ) (secci´n 1.3), donde el conjunto de procesadores
                                                               o
disponibles 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                                                                                     a
conectadas mediante un switch Fast Ethernet a 100 Mbit/s en un esquema de bus (figura 1.3) formando
la red de inteconexi´n (IN ). En esta plataforma vamos a considerar la heterogeneidad debida a diferencias
                    o
en 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
      o
tenido en cuenta al realizar este trabajo.

    A continuaci´n, caracterizamos esta plataforma (HN ) mediante algunas de las m´tricas de rendi-
                  o                                                                        e
miento vistas en la secci´n 1.4. La primera m´trica calculada en HN es la potencia de c´mputo de cada
                         o                      e                                           o
uno de los grupos de procesadores. Defin´   ıamos esta m´trica como la cantidad de trabajo realizado en el
                                                         e
procesador durante una unidad de tiempo. En la pr´ctica utilizamos como medida el tiempo que tarda
                                                       a
un procesador pi en computar una cantidad de trabajo. Podemos determinar este valor ejecutando el
algoritmo secuencial en los tres tipos de m´quinas que componen HN , y posteriormente usar la relaci´n
                                             a                                                           o
entre 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 de
forma independiente; en los cap´ ıtulos siguientes se presentan los resultados obtenidos para cada caso. La
tabla 1.1 muestra un ejemplo de los resultados obtenidos al resolver el problema del producto de matrices
sobre los tres tipos de m´quinas. Los valores que aparecen en la tabla son las relaciones obtenidas entre
                         a
los tiempos secuenciales de las m´quinas r´pidas y lentas (columna L / R), entre los tiempo secuenciales
                                   a        a
de las m´quinas r´pidas e intermedias (columna I / R) y entre intermedias y lentas (columna I / L).
         a          a
Este 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
                                                                                       a
HN con diferentes tama˜os de problemas: lentas / r´pidas (L / R), intermedias / r´pidas (I / R) y lentas /
                      n                           a                              a
intermedias (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                                        e
secci´n 1.4: la heterogeneidad y la aceleraci´n m´xima que puede alcanzarse. Para calcular el valor de la
     o                                       o   a
´
1.5. EJEMPLOS DE SISTEMAS HETEROGENEOS                                                                       15


heterogenidad consider´bamos en la secci´n 1.4 que asign´bamos un 1 a la potencia computacional de la
                      a                 o                a
m´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
                                                                           E
para los tres tipos de m´quinas que componen el cluster (columnas CP R para las m´quinas r´pidas,
                        a                                                                a       a
    E                           E
CPI para las intermedias y CPL para las lentas) y el valor total de la heterogeneidad para el problema
del producto de matrices, con los cuatro tama˜os diferentes de problemas que presentamos en la tabla
                                               n
1.1, cuando ejecutamos los problemas sobre el cluster completo de 14 m´quinas.
                                                                         a

Tabla 1.2: Potencia computacional escalada para los tres tipos de m´quinas del cluster (r´pidas, intermedias y
                                                                      a                    a
lentas) 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
                                                                                    e
heterogeneidad se mantiene alrededor de 0.5. La heterogeneidad se incrementa al aumentar el tama˜o del
                                                                                                 n
problema, puesto que la diferencia entre las velocidades de las m´quinas r´pidas e intermedias tambi´n
                                                                 a        a                         e
aumenta 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   a
Adaptamos la f´rmula definida en la secci´n 1.4 a tres tipos de m´quinas y obtenemos la siguiente
                 o                          o                          a
                                   E              E
ecuaci´n: Spmax = nR + nI ∗ CPI + nL ∗ CPL , donde nR , nI y nL son el n´mero de procesadores
      o                                                                            u
                                                    E       E
r´pidos, intermedios y lentos respectivamente; CPI y CPL son los valores de las potencias de c´mputo
 a                                                                                                o
escaladas que obtuvimos en el c´lculo de la heterogeneidad (tabla 1.2). La figura 1.4 muestra cu´les son
                                a                                                                a
las aceleraciones m´ximas posibles para el sistema, cuando resolvemos los problemas utilizando los 14
                    a
procesadores disponibles.




Figura 1.4: Aceleraciones m´ximas posibles para los cuatro problemas del producto de matrices utilizando las 14
                           a
m´quinas disponibles en el sistema, comparadas con la aceleraci´n m´xima en un sistema homog´neo del mismo
  a                                                            o   a                        e
tama˜o.
    n

    Como se observa en la figura 1.4, las aceleraciones m´ximas que podemos conseguir en este sistema
                                                         a
est´n muy lejos de la Spmax = 14 que tendr´
   a                                         ıamos si ejecut´semos los problemas sobre un sistema ho-
                                                            a
mog´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 las
comunicaciones entre las m´quinas. Para modelizar estas comunicaciones se han medido los par´metros
                          a                                                                 a
16 CAP´
      ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´
                               ´                                      IA



Tabla 1.3: Latencia y tiempo de transferencia por byte en nuestra plataforma para todas las combinaciones de
dos 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 Receive
con bloqueo definidas en el est´ndar de la librer´ de paso de mensajes MPI [89, 134] y se realiza un
                                a                 ıa
ajuste lineal de los tiempos de env´ como funci´n del tama˜o del mensaje, para combinaciones de
                                     ıo,            o           n
pares de m´quinas lentas (L), intermedias (I) y r´pidas (R) (tabla 1.3). Como los par´metros se han
            a                                      a                                    a
medido utilizando un ping-pong, los valores obtenidos por las combinaciones r´pida-lenta y lenta-r´pida
                                                                              a                   a
son iguales, as´ como los obtenidos para las combinaciones r´pida-intermedia, intermedia-r´pida y lenta-
               ı                                            a                             a
intermedia, intermedia-lenta. La figura 1.5 muestra el efecto de los par´metros β y τ .
                                                                       a




Figura 1.5: Modelo lineal cl´sico para el tiempo de transferencia usando diferentes tipos de procesadores. R =
                            a
Procesador R´pido, I = Procesador Intermedio y L = Procesador Lento.
            a
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

Mais conteúdo relacionado

Destaque

Destaque (8)

Cap2
Cap2Cap2
Cap2
 
Cap04
Cap04Cap04
Cap04
 
Alma study trip lesson plan for geo.
Alma study trip lesson plan for geo.Alma study trip lesson plan for geo.
Alma study trip lesson plan for geo.
 
10 comportamientos digitales jessica rodriguez
10 comportamientos digitales jessica rodriguez10 comportamientos digitales jessica rodriguez
10 comportamientos digitales jessica rodriguez
 
Trabajo marketing digital 2
Trabajo marketing digital 2Trabajo marketing digital 2
Trabajo marketing digital 2
 
Aic multiproc
Aic multiprocAic multiproc
Aic multiproc
 
Aa
AaAa
Aa
 
08 0300 cs
08 0300 cs08 0300 cs
08 0300 cs
 

Semelhante a Cp223

CENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOCENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOyuribel
 
CENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOCENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOyuribel
 
CENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOCENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOyuribel
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agilesljds
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentesTensor
 
49949045 los-paradigmas-de-la-programacion
49949045 los-paradigmas-de-la-programacion49949045 los-paradigmas-de-la-programacion
49949045 los-paradigmas-de-la-programacionIvan Moreno
 
Ejercicios p1 2016 2017 septiembre 2016
Ejercicios  p1 2016 2017  septiembre 2016Ejercicios  p1 2016 2017  septiembre 2016
Ejercicios p1 2016 2017 septiembre 2016cmiglesias
 
Investigaciondeoperaciones continental
Investigaciondeoperaciones  continentalInvestigaciondeoperaciones  continental
Investigaciondeoperaciones continentalRaúl Alvarez
 
Bachillerato en ciencias
Bachillerato en cienciasBachillerato en ciencias
Bachillerato en cienciasGema Torres
 
Trabajo Castellano
Trabajo CastellanoTrabajo Castellano
Trabajo CastellanoAlain1996
 
INFORME MAQUETA DE INTRUMENTO TERMOCICLADOR.pdf
INFORME MAQUETA DE INTRUMENTO TERMOCICLADOR.pdfINFORME MAQUETA DE INTRUMENTO TERMOCICLADOR.pdf
INFORME MAQUETA DE INTRUMENTO TERMOCICLADOR.pdfStefaniBrillyArevalo
 
Programación lineal para administración
Programación lineal para administraciónProgramación lineal para administración
Programación lineal para administraciónSilver Mendoza A.
 

Semelhante a Cp223 (20)

Arquitectura pizarra
Arquitectura pizarraArquitectura pizarra
Arquitectura pizarra
 
CENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOCENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICO
 
CENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOCENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICO
 
CENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICOCENTRO DE INNOVACIÓN TECNOLÓGICO
CENTRO DE INNOVACIÓN TECNOLÓGICO
 
Control
ControlControl
Control
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
49949045 los-paradigmas-de-la-programacion
49949045 los-paradigmas-de-la-programacion49949045 los-paradigmas-de-la-programacion
49949045 los-paradigmas-de-la-programacion
 
Ejercicios p1 2016 2017 septiembre 2016
Ejercicios  p1 2016 2017  septiembre 2016Ejercicios  p1 2016 2017  septiembre 2016
Ejercicios p1 2016 2017 septiembre 2016
 
Investigaciondeoperaciones continental
Investigaciondeoperaciones  continentalInvestigaciondeoperaciones  continental
Investigaciondeoperaciones continental
 
Logo2
Logo2Logo2
Logo2
 
Guía didáctica operadores tecnológicos
Guía didáctica operadores tecnológicosGuía didáctica operadores tecnológicos
Guía didáctica operadores tecnológicos
 
Lasimulacion
LasimulacionLasimulacion
Lasimulacion
 
Bachillerato en ciencias
Bachillerato en cienciasBachillerato en ciencias
Bachillerato en ciencias
 
Trabajo Castellano
Trabajo CastellanoTrabajo Castellano
Trabajo Castellano
 
Trabajo
TrabajoTrabajo
Trabajo
 
INFORME MAQUETA DE INTRUMENTO TERMOCICLADOR.pdf
INFORME MAQUETA DE INTRUMENTO TERMOCICLADOR.pdfINFORME MAQUETA DE INTRUMENTO TERMOCICLADOR.pdf
INFORME MAQUETA DE INTRUMENTO TERMOCICLADOR.pdf
 
Thesis Evolutionary Many-Objective Optimization
Thesis Evolutionary Many-Objective OptimizationThesis Evolutionary Many-Objective Optimization
Thesis Evolutionary Many-Objective Optimization
 
Programación lineal para administración
Programación lineal para administraciónProgramación lineal para administración
Programación lineal para administración
 
Dialnet unseegsi-4902765 (1)
Dialnet unseegsi-4902765 (1)Dialnet unseegsi-4902765 (1)
Dialnet unseegsi-4902765 (1)
 

Mais de Xavier Davias

Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9Xavier Davias
 
Heckbert p s__adaptive_radiosity_textures_for_bidirectional_r
Heckbert p s__adaptive_radiosity_textures_for_bidirectional_rHeckbert p s__adaptive_radiosity_textures_for_bidirectional_r
Heckbert p s__adaptive_radiosity_textures_for_bidirectional_rXavier Davias
 
Fourier transforms & fft algorithm (paul heckbert, 1998) by tantanoid
Fourier transforms & fft algorithm (paul heckbert, 1998) by tantanoidFourier transforms & fft algorithm (paul heckbert, 1998) by tantanoid
Fourier transforms & fft algorithm (paul heckbert, 1998) by tantanoidXavier Davias
 
Systems interfacesanddeployment
Systems interfacesanddeploymentSystems interfacesanddeployment
Systems interfacesanddeploymentXavier Davias
 
Oracle b tree index internals - rebuilding the thruth
Oracle b tree index internals - rebuilding the thruthOracle b tree index internals - rebuilding the thruth
Oracle b tree index internals - rebuilding the thruthXavier Davias
 
Simulacion sistemas tema6pr-2
Simulacion sistemas tema6pr-2Simulacion sistemas tema6pr-2
Simulacion sistemas tema6pr-2Xavier Davias
 
El hombre anumerico john allen paulos
El hombre anumerico  john allen paulosEl hombre anumerico  john allen paulos
El hombre anumerico john allen paulosXavier Davias
 
Soluciones examen-final-enero-2010
Soluciones examen-final-enero-2010Soluciones examen-final-enero-2010
Soluciones examen-final-enero-2010Xavier Davias
 

Mais de Xavier Davias (18)

Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9
 
Heckbert p s__adaptive_radiosity_textures_for_bidirectional_r
Heckbert p s__adaptive_radiosity_textures_for_bidirectional_rHeckbert p s__adaptive_radiosity_textures_for_bidirectional_r
Heckbert p s__adaptive_radiosity_textures_for_bidirectional_r
 
Fourier transforms & fft algorithm (paul heckbert, 1998) by tantanoid
Fourier transforms & fft algorithm (paul heckbert, 1998) by tantanoidFourier transforms & fft algorithm (paul heckbert, 1998) by tantanoid
Fourier transforms & fft algorithm (paul heckbert, 1998) by tantanoid
 
03.problemas
03.problemas03.problemas
03.problemas
 
Systems interfacesanddeployment
Systems interfacesanddeploymentSystems interfacesanddeployment
Systems interfacesanddeployment
 
Oracle b tree index internals - rebuilding the thruth
Oracle b tree index internals - rebuilding the thruthOracle b tree index internals - rebuilding the thruth
Oracle b tree index internals - rebuilding the thruth
 
Sistemas temaii 5
Sistemas temaii 5Sistemas temaii 5
Sistemas temaii 5
 
Simulacion sistemas tema6pr-2
Simulacion sistemas tema6pr-2Simulacion sistemas tema6pr-2
Simulacion sistemas tema6pr-2
 
El hombre anumerico john allen paulos
El hombre anumerico  john allen paulosEl hombre anumerico  john allen paulos
El hombre anumerico john allen paulos
 
Cap04
Cap04Cap04
Cap04
 
Ejercicios tema7
Ejercicios tema7Ejercicios tema7
Ejercicios tema7
 
Ejercicios tema6
Ejercicios tema6Ejercicios tema6
Ejercicios tema6
 
Ejercicios tema5
Ejercicios tema5Ejercicios tema5
Ejercicios tema5
 
Ejercicios tema3
Ejercicios tema3Ejercicios tema3
Ejercicios tema3
 
Ejercicios tema2
Ejercicios tema2Ejercicios tema2
Ejercicios tema2
 
Soluciones examen-final-enero-2010
Soluciones examen-final-enero-2010Soluciones examen-final-enero-2010
Soluciones examen-final-enero-2010
 
Estudiarec
EstudiarecEstudiarec
Estudiarec
 
Dealership market
Dealership marketDealership market
Dealership market
 

Cp223

  • 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ÍGUEZ SOPORTES 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 a y del Departamento de Estad´ıstica, Investigaci´n Operativa y Computaci´n por la ayuda y el apoyo o o facilitado 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 e horas 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 e Jos´ 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 o el paralelismo constituye una alternativa real para reducir el tiempo de ejecuci´n de las aplicaciones. o Arquitecturas paralelas homog´neas con elementos de proceso de caracter´ e ısticas similares est´n siendo a usadas con ´xito en distintos ´mbitos de la ciencia y de la industria. De forma natural, la ampliaci´n e a o y la potenciaci´n de un sistema homog´no con nuevos elementos, deriva en un sistema de naturaleza o e heterog´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 elementos que 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 o en arquitecturas de paso de mensaje como PVM y MPI, la programaci´n de sistemas heterog´neos se o e convierte en un problema tan sencillo o complicado como pueda serlo la programaci´n de arquitecturas o homog´neas. Sin embargo, aunque la portabilidad de los c´digos est´ garantizada, no ocurre lo mismo e o a con el rendimiento observado en las aplicaciones. Aparecen nuevas situaciones y cuellos de botella que no pueden ser resueltos mediante la aplicaci´n directa de los modelos y las t´cnicas conocidas para el o e caso homogeneo. Se hace necesario adaptar los m´todos conocidos y en muchos casos dise˜ar nuevas e n estrategias comenzando desde cero. Nos encontramos ante un conjunto importante de problemas abiertos que est´n siendo intensamente estudiados y analizados. Los objetivos de este memoria se centran en el a desarrollo 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 o situarnos en el estado actual y en la problem´tica asociada a la computaci´n en paralelo sobre los a o sistemas heterog´neos. Una aproximaci´n formal a conceptos y m´tricas que adem´s ilustra el contexto e o e a espec´ı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 o paralelo son el paradigma maestro-esclavo y el paradigma pipeline. Es cierto que ambos paradigmas han sido profusamente estudiados sobre arquitecturas homog´neas; su an´lisis y desarrollo sobre plataformas e a heterog´neas constituye en estos momentos un aut´ntico reto. Los modelos formulados para arquitecturas e e homog´neas pueden considerarse como el punto de partida con el que abordar el caso heterog´neo, sin e e embargo, tales modelos no son directamente aplicables a este nuevo contexto. En ambas t´cnicas, partien- e do de las propuestas cl´sicas para el caso homog´neo, estudiamos su comportamiento sobre arquitecturas a e heterog´neas. La heterogeneidad viene dada por diferencias en los elementos de procesamiento y en las e capacidades de comunicaci´n. Derivamos modelos anal´ o ıticos que predicen su rendimiento y proponemos estrategias para la distribuci´n ´ptima de tareas desarrollando las herramientas y utilidades necesarias o o en cada caso. El cap´ ıtulo 2 contempla el paradigma maestro-esclavo, modelizamos las estrategias FIFO y LIFO validando el modelo anal´ıtico sobre aplicaciones bien conocidas: Productos de Matrices y Transformadas de Fourier bidimensionales. Hemos resuelto el problema de la asignaci´n ´ptima de los recursos (los o o procesadores) a las tareas, minimizando la funci´n objetivo obtenida desde el modelo an´litico, mediante o a algoritmos de programaci´n din´mica. La utilidad propuesta permite no s´lo establecer los beneficios de o a o las aproximaciones FIFO y LIFO, sino que adem´s deriva el conjunto ´ptimo de procesadores para una a o ejecuci´n eficiente. o El cap´ ıtulo 3 alude al m´todo pipeline. Desarrollamos herramientas que facilitan la instanciaci´n de e o algoritmos pipeline en los que el n´mero de etapas puede ser muy superior al n´mero de procesadores u u reales. Admite distribuciones c´ıclicas y c´ ıclicas por bloques de las etapas del pipeline virtual al pipeline real. Considerado el caracter heterog´neo de la plataforma, las distribuciones c´ e ıclicas por bloques admiten asignaciones vectoriales en las que los procesadores reciben tama˜os de bloques acordes a su capacidad n computacional. 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 a de Asignaci´n de Recursos, Problemas de Subsecuencias de Cadenas y Problemas de Planificaci´n de o o Caminos ilustra el uso y los beneficios de la librer´ La modelizaci´n anal´ ıa. o ıtica del m´todo ha sido valida- e da sobre problemas sint´ticos proponiendo t´cnicas con la que obtener par´metros (tama˜os de bloques e e a n y buffers) para su ejecuci´n ´ptima. Algunos autores encuentran analog´ entre el comportamiento de o o ıas las aplicaciones en plataformas heterog´neas y el de determinados c´digos irregulares sobre plataformas e o homog´neas. Este hecho admite la consideraci´n de la heterogeneidad debida al programa en plataformas e o homog´neas. El cap´ e ıtulo 4 presenta una de tales aplicaciones, la predicci´n de la estructura secundaria o del RNA. El paquete de Viena es un software de libre distribuci´n que resuelve este problema, adem´s de o a otros asociados a la biolog´ molecular. Implementa un conocido algoritmo de Programaci´n Din´mica ıa o a que presenta un particular tipo de dependencias en el dominio de ejecuci´n. El espacio de iteraciones o presenta un comportamiento irregular en el que el coste de cada iteraci´n es variable, condicionando un o particionado no regular. Proponemos modelos anal´ ıticos con los que obtener las dimensiones ´ptimas en o esta divisi´n del trabajo. Dada la dificultad del problema, el modelo introduce simplificaciones en el sis- o tema para facilitar su manipulaci´n mediante el aparato matem´tico. Presentamos un modelo estad´ o a ıstico que prueba su efectividad m´s all´ del ´mbito de aplicabilidad del modelo anal´ a a a ıtico. Ambas propuestas han sido validadas sobre m´leculas reales obtenidas de bases de datos p´blicas, generadas por diversos o u proyectos del contexto de la biolog´ La modelizaci´n estad´ ıa. o ıstica se concibe en esta ocasi´n como un o instrumento valioso en la predicci´n y an´lisis del rendimiento de aplicaciones paralelas. En el ap´ndice o a e A se hace un ligero recorrido sobre algunos conceptos y t´rminos de la biolog´ computacional que han e ıa sido utilizados de forma natural en el cap´ıtulo 4. Con este apartado, se pretende adem´s contextualizar a el problema de la predicci´n de la estructura secundaria del RNA y su relevancia. o
  • 5. ´ Indice general 1. 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 18 2. 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 3. 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4. 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 A. 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 1 Computaci´n Paralela en Sistemas o Heterog´neos: Conceptos B´sicos, e a Objetivos y Metodolog´ ıa 1.1. Introducci´n o Los computadores secuenciales tradicionales han sido dise˜ados durante muchos a˜os bas´ndose en el n n a modelo introducido por John Von Newman [151, 179, 180]. Este modelo consiste en una unidad central de 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- ´ a ci´n de instrucciones y la velocidad de intercambio entre memoria y CPU. La primera m´quina que se o a construy´ utilizando est´ tecnolog´ fue la EDVAC [108, 121, 181], en 1947; desde entonces, este modelo o a ıa se convirti´ en el m´s utilizado en el dise˜o de ordenadores. Sin embargo, actualmente existe un amplio o a n rango de aplicaciones (cient´ ıficas, t´cnicas, m´dicas, etc.) que requieren procesar grandes cantidades de e e datos o realizar un alto n´mero de operaciones, pero no existen procesadores con capacidad para re- u solverlas de forma independiente en un per´ ıodo de tiempo razonable [1, 102, 113, 185]. Esto indica que para ciertas aplicaciones, no es posible emplear el modelo Von Newman y es necesario buscar alternativas tecnol´gicas. o Una de estas alternativas consiste en emplear m´ltiples procesadores que cooperen para resolver un u problema en una fracci´n del tiempo que requiere un procesador secuencial. Un problema cualquiera se di- o vide en un n´mero arbitrario de subproblemas y estos subproblemas pueden resolverse simult´neamente u a sobre 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- o putaci´n en paralelo y pretende conseguir que p procesadores, trabajando de forma conjunta, resuelvan o un problema p veces m´s r´pido que un unico procesador; aunque esta situaci´n ideal raras veces se al- a a ´ o canza en la pr´ctica. a Durante a˜os se han propuesto una amplia variedad de estrategias para abordar la computaci´n en n o paralelo. Estos nuevos modelos difieren en la forma en la que se comunican los procesadores (memoria compartida o distribuida, red de interconexi´n en forma de ´rbol, estrella, etc.), pueden ejecutar el o a mismo algoritmo o no, operar de forma s´ ıncrona o as´ ıncrona, etc. Esto significa que existen diversas formas de concebir la programaci´n en paralelo y de construir m´quinas paralelas para resolver un o a problema mediante esta t´cnica de computaci´n. Estas m´quinas presentan distintas caracter´ e o a ısticas de red y arquitectura. Podemos encontrar sistemas formados por una unica m´quina con varios procesadores ´ a que 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´ ´ IA o multicomputadores; se caracterizan por una gran capacidad de almacenamiento y una alta velocidad de c´mputo, pero resultan muy caros y dif´ o ıciles de amortizar. Normalmente, se considera que estos dos sistemas se diferencian en el acceso a memoria, la mayor´ de las definiciones establecen que un ıa multiprocesador es un sistema de memoria compartida, mientras que un multicomputador trabaja con memoria distribuida [93, 141, 169]. Un multiprocesador puede a su vez clasificarse en grupos basados en la 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 o acceso no uniforme (NUMA), donde la memoria compartida est´ f´ a ısicamente distribuida entre los nodos de procesamiento. Una alternativa de bajo coste para los sistemas paralelos la encontramos en sistemas que denominamos clusters. Estos sistemas se componen de m´ltiples m´quinas, conectadas mediante una red, que el usuario u a utiliza como si dispusiera de un unico computador paralelo [42, 43, 44]. Los clusters de PCs est´n jugando ´ a un papel importante en la Computaci´n de Alto Rendimiento (High Performance Computing). Esto es o debido al bajo coste de estos sistemas en relaci´n a su rendimiento. Nosotros hemos centrado gran parte o de nuestro trabajo en la resoluci´n de problemas sobre este tipo de recursos. Otro factor, que tambi´n ha o e contribuido de forma notable a la expansi´n de estos sistemas, se encuentra en la aparici´n de librer´ o o ıas est´ndar de procesamiento paralelo que han facilitado la portabilidad de programas paralelos a diferentes a arquitecturas (PVM (Parallel Virtual Machine) [63, 78] y MPI (Message passing interface) [89, 134] para el 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 o de estos sistemas en la lista de los 500 sistemas m´s potentes (la lista del top500 [125]). En esta lista a se 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 a ambos se encuentran instalados en Estados Unidos. El primero de ellos en el Lawrence Livermore National Laboratory y est´ compuesto por 4096 procesadores Thunder e Intel Itanium2 Tiger4 de 1,4 GHz. El a segundo est´ localizado en Los Alamos National Laboratory, compuesto por 8192 procesadores ASCI Q - a AlphaServer 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 ´ o iguales, as´ como tambi´n lo son los tiempos de comunicaci´n entre ellos. A estos sistemas se los conoce ı e o como sistemas homog´neos. Sin embargo, debido a la arquitectura inherente a este tipo de sistema, es e muy probable que al incrementar el n´mero de procesadores en el cluster o al sustituir alg´n elemento u u de la m´quina (procesador, memoria, interfaz de red, etc.) las caracter´ a ısticas de la nueva m´quina no a coincidan con las caracter´ ısticas de los componentes originales, dando lugar a un sistema de naturaleza heterog´nea. e El concepto de sistema heterog´neo se aplica, en ocasiones, a sistemas compuestos por diferentes e tipos de PCs y m´quinas con m´ltiples procesadores conectados mediante redes. Debido a las diferencias a u entre las m´quinas que forman el sistema, es probable que las velocidades de c´mputo de los procesadores a o sean distintas y los tiempos de transferencia de datos tambi´n pueden ser diferentes en las comunica- e ciones entre cada par de procesadores. La naturaleza de esta red es inherentemente din´mica y depende de a qu´ 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 o de 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 e tiempos de ejecuci´n de las aplicaciones. El rendimiento conseguido con un multiprocesador o multicom- o putador paralelo suele ser m´s elevado que el obtenido en un entorno de m´quinas heterog´neas; los usua- a a e rios pueden verse obligados a aceptar en algunos casos una reducci´n del rendimiento de sus aplicaciones a o favor de una gran reducci´n en el coste del sistema. Una de las razones para que esta situaci´n se produz- o o ca, es que la mayor´ de los programas paralelos han sido desarrollados bajo la hip´tesis de trabajar sobre ıa o
  • 11. ´ 1.1. INTRODUCCION 7 una arquitectura homog´nea. Esta hip´tesis tambi´n ha sido considerada de manera habitual al desarro- e o e llar 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. e Se hace necesario, por tanto, revisar los conceptos y modelos utilizados hasta el momento en los sistemas homog´neos para adaptarlos a entornos heterog´neos [145, 191]. En los ultimos a˜os se han publicado e e ´ n diversos trabajos que analizan los entornos heterog´neos y los par´metros que deben considerarse en e a el uso de estos sistemas: las distintas velocidades de c´mputo de los procesadores que trabajan en la o resoluci´n del problema; las capacidades de memoria; la arquitectura de la red de interconexi´n entre o o las m´quinas; la planificaci´n de la distribuci´n de los subproblemas a los procesadores; el an´lisis del a o o a rendimiento del sistema, etc. Algunos de los mejores trabajos realizados sobre sistemas heterog´neos en e los ultimos a˜os podemos encontrarlos en [14, 15, 16, 17, 18, 37, 39, 40, 116, 118]. En [37] los autores ´ n describen diferentes tipos de heterogeneidad que pueden encontrarse en un sistema y estudian la mayor´ ıa de las situaciones que surgen en las plataformas homog´neas y heterog´neas, para c´mputos regulares e e e o irregulares. Debido a que existen diferentes tipos de heterogeneidad, algunos autores [16] consideran una simplificaci´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 probado que incluso la heterogeneidad en la velocidad de los procesadores puede tener un impacto significativo en la sobrecarga de las comunicaciones [14], a´n cuando las capacidades de comunicaci´n en la red sean u o las mismas para todos los procesadores. En [18] los autores dan una definici´n formal de una plataforma o heterog´nea, como un grafo dirigido donde cada nodo es un recurso de computaci´n y las aristas son e o los enlaces de comunicaci´n entre ellos; en [17] se pueden encontrar algoritmos (round robin y multiple o round robin), que permiten calcular la distribuci´n de trabajo en plataformas homog´neas y heterog´neas, o e e considerando la existencia o no de latencia en el sistema; en [15] los autores realizan un estudio sobre estrategias de planificaci´n teniendo en cuenta distintas plataformas heterog´neas en estrella o en ´rbol, o e a considerando adem´s diferentes niveles de paralelismo interno en los procesadores. En [116] se presentan a modelos de programaci´n eficientes en entornos heterog´neos comparando el rendimiento de un cluster o e Linux (14 procesadores Intel Pentium II ), con el de una m´quina Cray-T3E con 512 procesadores DEC a Alpha. En [118] se puede encontrar una heur´ ıstica que proporciona la distribuci´n de la carga ´ptima o o para los procesadores organizados mediante un anillo virtual, de modo que cada procesador s´lo puedeo comunicarse con otros dos procesadores: el predecesor y el posterior en el anillo. En [39, 40] presentan un sistema denominado PINCO para monitorizar la carga de las m´quinas del sistema, de manera que a pueden realizar una distribuci´n din´mica de la carga. En estos trabajos los autores plantean las tres o a posibles 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 a din´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 de heterogeneidad en sistemas paralelos. En la secci´n 1.3 se describen las plataformas heterog´neas y se co- o e mentan algunas de sus caracter´ ısticas. En 1.4 se detallan algunas de las m´tricas utilizadas para establecer e el rendimiento obtenido en estos sistemas. En 1.5 presentamos dos ejemplos de sistemas heterog´neos: el e cluster 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´ ´ IA y 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 ıa 1.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 de heterogeneidad 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 a coste. 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 e 1.3. Plataformas heterog´neas e Una plataforma heterog´nea puede ser definida como un infraestructura computacional donde est´n e a disponibles procesadores de diferentes caracter´ ısticas conectados a trav´s de una red. Esta plataforma e puede 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 u ciclos. El grafo puede ser completo o no (figuras 1.2-a y 1.2-b respectivamente) o estar organizado en una estructura de estrella (figura 1.2-c), ´rbol (figura 1.2-d), etc. Si consideramos un procesador cualquiera a pi , se denominan vecinos de pi a todos aquellos procesadores interconectados a pi a trav´s de una arista e del grafo. En el caso de disponer de un conjunto de procesadores interconectados a trav´s de un grafo e completo, 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 de comunicaci´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 e directo entre cada par de procesadores heterog´neos de la plataforma. b) Grafo no completo con 9 procesadores. e c) 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 a dado solamente un procesador puede utilizar la red de interconexi´n. Esto supone que si otro procesador o quiere utilizar el canal en el momento en que un procesador ya est´ transmitiendo, debe esperar a que el a canal 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 a trav´s de un unico bus. e ´ En todos estos ejemplos hemos considerado que un enlace entre dos procesadores cualesquiera es bidireccional; sin embargo, una variante a este tipo de plataforma puede asumir que en lugar de disponer de aristas bidireccionales, existen dos enlaces unidireccionales entre cada par de procesadores, con etiquetas que pueden ser diferentes. En este caso, la plataforma heterog´nea se representa por un grafo dirigido e y el tiempo de transmisi´n de un mensaje de pi a pj puede no coincidir con el tiempo empleado para o transmitirlo de pj a pi . Asimismo, los procesadores del sistema pueden presentar diferentes comportamientos, en funci´n deo sus capacidades para solapar c´mputo y comunicaciones [15]: realizar simult´neamente m´ltiples recep- o a u ciones de datos de todos sus vecinos, alguna operaci´n de c´mputo y m´ltiples operaciones de env´ de o o u ıo informaci´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 11 c´mputo + env´ o pueden llevar a cabo unicamente una operaci´n en cada instante de tiempo. Esta o ıo); ´ o ultima opci´n elimina el paralelismo interno de los procesadores, ya que todas las operaciones que ejecuta ´ o un 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 e sistemas heterog´neos. Algunas de ellas se definen de forma natural por extensi´n del caso homog´neo; e o e otras, por contra, requieren una formulaci´n espec´ o ıfica. En la definici´n de estas medidas se utiliza la o siguiente 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- o po transcurrido desde el comienzo de la ejecuci´n paralela hasta el momento en que finaliza el ultimo o ´ a p−1 procesador [113]: Tpar = m´xi=0 Ti . La potencia computacional de un procesador en un sistema heterog´neo puede ser definida como e la cantidad de trabajo realizada en el procesador durante una unidad de tiempo [145, 192]. La potencia computacional depende de las caracter´ ısticas f´ ısicas del procesador, pero tambi´n de la tarea que se e est´ ejecutando. Esto significa que este valor puede variar para diferentes aplicaciones y, debido a las e limitaciones del tama˜o de memoria, cach´ y otros componentes hardware, la velocidad de c´mputo n e o puede 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 M CPi = Tseq . Desde un punto de vista pr´ctico, la potencia computacional media, en un conjunto de a i procesadores, puede calcularse ejecutando una versi´n secuencial del algoritmo en cada uno de ellos, o usando 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 e CPi = 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 que componen el sistema [145]. Este par´metro refleja la cantidad de trabajo que puede realizar el sistema en a p−1 una 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- e sadores, 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 e par´metro ofrece un valor de la similitud o diversidad de las m´quinas del sistema; por ejemplo, cuando a a un 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 ıa es un sistema con una heterogeneidad alta. Se calcula en funci´n de la potencia computacional de sus o m´quinas: escalando los valores obtenidos de las potencias computacionales para los procesadores, de a modo que a aquellos que sean m´s r´pidos se les asigne una potencia computacional de 1. Denominando a a CPiE 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 e computacional 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 e coste de las comunicaciones. Tal como se ha descrito en la secci´n 1.2, un modelo habitual utiliza β ij o y τij (latencia y tiempo de transferencia respectivamente entre dos procesadores de la red, p i y pj ) para representar 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 e miento de un algoritmo en el sistema, puesto que muestra el beneficio relativo de resolver un problema en 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 Tseq cualquiera 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 a sistema. Te´ricamente, la aceleraci´n nunca puede exceder al n´mero de procesadores p que intervienen en o o u la resoluci´n del problema. En muchos casos, la aceleraci´n conseguida es mucho menor que la aceleraci´n o o o m´xima (Sp << p). Esta situaci´n puede producirse cuando no es posible descomponer el problema en a o un n´mero apropiado de tareas independientes a ser ejecutadas simult´neamente; o bien, si el tiempo u a requerido 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 o al m´ximo (Sp > p). Este fen´meno se conoce como aceleraci´n superlineal [20, 91, 96]. Puede a o o aparecer debido a algoritmos secuenciales no ´ptimos o a caracter´ o ısticas del hardware que ralentizan la ejecuci´n del algoritmo secuencial (por ejemplo, el tama˜o de la memoria cach´). La primera de o n e estas situaciones se produce cuando el programa paralelo implementado realiza un n´mero inferior de u operaciones, para resolver el problema, que el algoritmo secuencial. En este caso, la superlinealidad puede resolverse f´cilmente si es posible dise˜ar un nuevo algoritmo secuencial que sea equivalente al a n algoritmo paralelo empleado. La segunda de las situaciones es debida al tama˜o de la memoria cach´ de n e un procesador, que puede permitir resolver el subproblema asignado en una ejecuci´n paralela, realizando o pocos intercambios de informaci´n entre memoria cach´ y memoria principal; mientras que el tama˜o o e n del problema a resolver en el caso secuencial es muy superior y son necesarios un n´mero excesivo u de intercambios de datos entre memoria principal y cach´, ralentizando su ejecuci´n. En este caso, el e o problema 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 e de forma secuencial, por lo que es necesario adaptar el concepto de aceleraci´n. Diferentes autores pro- o porcionan definiciones de la aceleraci´n en una red heterog´nea [2, 32, 47, 62, 191, 192]. La definici´n m´s o e o a extendida es la que considera la aceleraci´n como la relaci´n entre el tiempo necesario para completar una o o ejecuci´n en el procesador de referencia de la red y el tiempo empleado para realizar la misma ejecuci´n o o sobre el sistema heterog´neo. Es habitual considerar como procesador de referencia el procesador m´s e a m´ p Tseqi ıni=0 r´pido del sistema; en este caso, la definici´n de la aceleraci´n se convierte en Sp = a o o Tpar . Esta definici´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 u que 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 u al procesador considerado como referencia, que deber´ componer un sistema homog´neo, para que los ıan e dos sistemas tuvieran la misma potencia de c´mputo total. Para calcular este valor es necesario conocer o el n´mero de m´quinas de cada tipo disponibles en el sistema y las relaciones entre sus velocidades. u a Considerando como procesador de referencia el correspondiente a las m´quinas m´s r´pidas, utilizamos a a a las potencias computacionales escaladas para obtener la heterogeneidad del sistema. Suponiendo que tenemos 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 a m´quinas lentas. Considerando un sistema heterog´neo general, donde existen m tipos de m´quinas a e a m−1 diferentes, 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 13 donde 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 u de cada uno de los tipos restantes (i = 1, . . . , m − 1) por su potencia computacional escalada. Un ejemplo de aplicaci´n de esta definici´n lo encontramos en [88], aunque en este caso los autores utilizan como o o m´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 e de 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 a c´mputo paralelo. En los sistemas homog´neos la eficiencia se define como la aceleraci´n dividida entre el o e o n´mero de procesadores Sp/p y se han desarrollado numerosos trabajos, tanto te´ricos como pr´cticos, u o a para caracterizar la eficiencia en estos sistemas [1, 58, 68, 87, 115, 185]. En un sistema ideal, el valor de la 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 e dad de un sistema paralelo para mejorar su rendimiento cuando aumenta el tama˜o del problema y el n n´mero de procesadores. Se basa en la selecci´n de una m´trica empleada para caracterizar el compor- u o e tamiento del sistema. Las m´tricas m´s utilizadas han sido la aceleraci´n, la eficiencia, la velocidad media e a o y la latencia. El grado de escalabilidad de un sistema se calcula mediante la ecuaci´n: crecimiento del o problema / crecimiento del sistema [190, 192]. Sin embargo, como sucede con las restantes medidas de rendimiento vistas en esta secci´n, no es o posible aplicar estos conceptos del ´mbito homog´neo directamente al caso heterog´neo, debido a las a e e diferencias de caracter´ ısticas y rendimiento de los procesadores que conforman el sistema. Para poder establecer definiciones que se adapten a los sistemas heterog´neos partimos del concepto anterior de e potencia computacional total y concluimos que su valor en un sistema depende tanto del n´mero de u procesadores que componen el sistema como de la potencia computacional de cada uno de ellos. Esto significa que dos sistemas con el mismo n´mero de procesadores no necesariamente deben tener la misma u potencia computacional total y, por lo tanto, es posible incrementar su valor aumentando el n´mero u de 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 e debido a que el rendimiento del sistema depende de cu´les son las m´quinas utilizadas en cada momento. a a La eficiencia en un sistema heterog´neo puede definirse como la relaci´n entre el menor tiempo de eje- e o cuci´n necesario para resolver un problema espec´ o ıfico en el sistema y el tiempo real obtenido durante la ejecuci´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 o heterog´neo HN con p procesadores, con CPt para un trabajo M , y un sistema HN , con p procesadores e y con CPt para un trabajo M , con CPt > CPt ; se puede decir que HN es un sistema escalable si, cuando el sistema es ampliado desde HN a HN , es posible seleccionar un problema M tal que la eficiencia de HN y HN permanezcan constantes. A efectos pr´cticos consideraremos que el sistema es escalable cuando sea posible incrementar la efi- a ciencia 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 e medida a tener en cuenta en el caso homog´neo. El n´mero total de procesadores disponibles en un e u entorno puede ser superior al n´mero ´ptimo necesario para ejecutar un algoritmo, lo que puede producir u o un uso ineficiente de la arquitectura paralela. Esto significa que hay que seleccionar un subconjunto de procesadores que minimice el tiempo de ejecuci´n del problema. En el caso heterog´neo, es necesario o e calcular el n´mero ´ptimo de procesadores de cada uno de los tipos disponibles de m´quinas, para u o a minimizar el tiempo de ejecuci´n. o
  • 18. 14 CAP´ ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´ ´ IA 1.5. Ejemplos de sistemas heterog´neos e 1.5.1. Un ejemplo de plataforma heterogenea Consideramos la plataforma heterog´nea donde hemos realizado las pruebas experimentales de los e cap´ ıtulos 2 y 3, como el grafo no dirigido HN (P, IN ) (secci´n 1.3), donde el conjunto de procesadores o disponibles 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 a conectadas mediante un switch Fast Ethernet a 100 Mbit/s en un esquema de bus (figura 1.3) formando la red de inteconexi´n (IN ). En esta plataforma vamos a considerar la heterogeneidad debida a diferencias o en 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 o tenido en cuenta al realizar este trabajo. A continuaci´n, caracterizamos esta plataforma (HN ) mediante algunas de las m´tricas de rendi- o e miento vistas en la secci´n 1.4. La primera m´trica calculada en HN es la potencia de c´mputo de cada o e o uno de los grupos de procesadores. Defin´ ıamos esta m´trica como la cantidad de trabajo realizado en el e procesador durante una unidad de tiempo. En la pr´ctica utilizamos como medida el tiempo que tarda a un procesador pi en computar una cantidad de trabajo. Podemos determinar este valor ejecutando el algoritmo secuencial en los tres tipos de m´quinas que componen HN , y posteriormente usar la relaci´n a o entre 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 de forma independiente; en los cap´ ıtulos siguientes se presentan los resultados obtenidos para cada caso. La tabla 1.1 muestra un ejemplo de los resultados obtenidos al resolver el problema del producto de matrices sobre los tres tipos de m´quinas. Los valores que aparecen en la tabla son las relaciones obtenidas entre a los tiempos secuenciales de las m´quinas r´pidas y lentas (columna L / R), entre los tiempo secuenciales a a de las m´quinas r´pidas e intermedias (columna I / R) y entre intermedias y lentas (columna I / L). a a Este 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 a HN con diferentes tama˜os de problemas: lentas / r´pidas (L / R), intermedias / r´pidas (I / R) y lentas / n a a intermedias (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 e secci´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 15 heterogenidad consider´bamos en la secci´n 1.4 que asign´bamos un 1 a la potencia computacional de la a o a m´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 E para los tres tipos de m´quinas que componen el cluster (columnas CP R para las m´quinas r´pidas, a a a E E CPI para las intermedias y CPL para las lentas) y el valor total de la heterogeneidad para el problema del producto de matrices, con los cuatro tama˜os diferentes de problemas que presentamos en la tabla n 1.1, cuando ejecutamos los problemas sobre el cluster completo de 14 m´quinas. a Tabla 1.2: Potencia computacional escalada para los tres tipos de m´quinas del cluster (r´pidas, intermedias y a a lentas) 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 e heterogeneidad se mantiene alrededor de 0.5. La heterogeneidad se incrementa al aumentar el tama˜o del n problema, puesto que la diferencia entre las velocidades de las m´quinas r´pidas e intermedias tambi´n a a e aumenta 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 a Adaptamos la f´rmula definida en la secci´n 1.4 a tres tipos de m´quinas y obtenemos la siguiente o o a E E ecuaci´n: Spmax = nR + nI ∗ CPI + nL ∗ CPL , donde nR , nI y nL son el n´mero de procesadores o u E E r´pidos, intermedios y lentos respectivamente; CPI y CPL son los valores de las potencias de c´mputo a o escaladas que obtuvimos en el c´lculo de la heterogeneidad (tabla 1.2). La figura 1.4 muestra cu´les son a a las aceleraciones m´ximas posibles para el sistema, cuando resolvemos los problemas utilizando los 14 a procesadores disponibles. Figura 1.4: Aceleraciones m´ximas posibles para los cuatro problemas del producto de matrices utilizando las 14 a m´quinas disponibles en el sistema, comparadas con la aceleraci´n m´xima en un sistema homog´neo del mismo a o a e tama˜o. n Como se observa en la figura 1.4, las aceleraciones m´ximas que podemos conseguir en este sistema a est´n muy lejos de la Spmax = 14 que tendr´ a ıamos si ejecut´semos los problemas sobre un sistema ho- a mog´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 las comunicaciones 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´ ´ IA Tabla 1.3: Latencia y tiempo de transferencia por byte en nuestra plataforma para todas las combinaciones de dos 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 Receive con bloqueo definidas en el est´ndar de la librer´ de paso de mensajes MPI [89, 134] y se realiza un a ıa ajuste lineal de los tiempos de env´ como funci´n del tama˜o del mensaje, para combinaciones de ıo, o n pares de m´quinas lentas (L), intermedias (I) y r´pidas (R) (tabla 1.3). Como los par´metros se han a a a medido utilizando un ping-pong, los valores obtenidos por las combinaciones r´pida-lenta y lenta-r´pida a a son iguales, as´ como los obtenidos para las combinaciones r´pida-intermedia, intermedia-r´pida y lenta- ı a a intermedia, intermedia-lenta. La figura 1.5 muestra el efecto de los par´metros β y τ . a Figura 1.5: Modelo lineal cl´sico para el tiempo de transferencia usando diferentes tipos de procesadores. R = a Procesador R´pido, I = Procesador Intermedio y L = Procesador Lento. a