Abstracciones para el cálculo automático de comunicaciones en computación paralela distribuida

Alumno investigador: Rubén Carrasco Fernández

Centro: Departamento de Informática

Profesores/tutores: Arturo González Escribano y Yuri Torres de la Sierra

Tareas realizadas:

Durante el proyecto se trabaja sobre Hitmap, una biblioteca creada por el grupo de investigación Trasgo cuyo objetivo es facilitar el desarrollo de aplicaciones paralelas, ocultando al programador las tareas más complejas para centrarse únicamente en el algoritmo que se desea implementar.
Dentro de esta biblioteca, se crea una extensión cuyo objetivo es automatizar el cálculo de las comunicaciones necesarias para intercambiar datos entre los distintos nodos que componen el sistema.
Para implementar este cálculo, se desarrollan varios prototipos incrementales, que dan solución al problema propuesto a la vez que corrigen los inconvenientes de las versiones anteriores.
También se han desarrollado códigos de ejemplo, cuyo objetivo es probar el correcto funcionamiento de la extensión desarrollada, así como demostrar sus nuevas funcionalidades.
Se realizan ademas tareas de validación para comprobar que los objetivos del proyecto se han cumplido, elaborando diversos escenarios de prueba y comparando los resultados con los esperados.

Objetivos alcanzados:

  • Se ha desarrollado un algoritmo capaz de calcular de forma automática las comunicaciones necesarias en un programa paralelizado.
  • Se ha mejorado la legibilidad y mantenibilidad del código, haciéndolo más sencillo. Además, se ha logrado eliminar aquellas secciones del programa más propensas a errores de codificación.
  • Se ha mantenido un rendimiento similar al de las aplicaciones que implementan las comunicaciones a mano

Sectores de aplicación:

Este proyecto se centra en los problemas denominados “stencil”, que son muy utilizados en tareas como simulaciones de naturaleza científica, procesado de imágenes o resolución de ecuaciones diferenciales parciales.

Metodología utilizada:

  • Estudio del campo de la informática al que pertenece el proyecto (computación paralela) así como del algoritmo que se usará como caso de prueba (stencils)
  • Elaboración de prototipos de la extensión para la biblioteca.
  • Ejecución de pruebas para comprobar el correcto funcionamiento del prototipo además de sus desventajas
  • Extracción de conclusiones y refinamiento del prototipo