Extensión del modelo de OpenMP a memoria distribuida

  1. Antonio J. Dorta
Supervised by:
  1. Francisco de Sande González Director

Defence university: Universidad de La Laguna

Year of defence: 2008

Committee:
  1. Casiano Rodríguez León Chair
  2. Francisco Almeida Rodriguez Secretary
  3. Manuel Prieto Matias Committee member
  4. Enrique Salvador Quintana Ortí Committee member
  5. Francisco Fernández Rivera Committee member
Department:
  1. Ingeniería Informática y de Sistemas

Type: Thesis

Abstract

Con la extensión del modelo de OpenMP a memoria distribuida pretendemos potenciar la programabilidad de los lenguajes paralelos sin sacrificar la portabilidad y el alto rendimiento, Nuestro objetivo es el de dar respuesta a la creciente comunidad de usuarios (sobre todo científicos) que demandan la Computación de Altas Prestaciones pero que no poseen (ni deberían poseer) los profundos conocimientos en paralelismo que a día de hoy suelen requerirse para desarrollar aplicaciones paralelas. Si ofrecemos a estos usuarios una forma de programación paralela similar a la secuencial, estaremos posibilitando que se aborden cada vez problemas más complejos, con mayor fiabilidad y en menos tiempo en un entorno multidisciplinar: ingeniería, medicina, genómica, física, astrofísica, meteorología, tratamiento de audio/vídeo y un largo etcétera. Para ello hemos diseñado un lenguaje que hemos denominado llc (La Laguna C) que está basado en ANSI C y que es compatible con la sintaxis de las directivas de OpenMP 2.5, extendiéndolas para el caso de memoria distribuida. De este modo, se parte de un código secuencial y se paraleliza usando directivas de compilador tipo pragma de OpenMP y propias de llc, lo cual conserva la simplicidad de OpenMP, no rompe la estructura secuencial del programa original y permite una paralelización incremental, entre otras ventajas. A partir de este lenguaje hemos desarrollado su compilador (llCoMP) que genera código paralelo en ANSI C con llamadas a la librería de MPI, lo cual potencia su portabilidad y alto rendimiento, lo cual nos permite obtener resultados eficientes tanto en memoria distribuida como compartida. Nuestro trabajo se encuentra respaldado por un amplio conjunto de resultados computacionales para diversos algoritmos de interés científico que han sido tomados en sistemas paralelos de diferentes arquitecturas. Finalmente se ha añadido un repositorio de código fuente como otras de las aportaciones de esta tesis.