cambiar a curso:   2019-20   2021-22


Grado en Ingeniería Informática


TRABAJOS FIN DE GRADO
curso: 2020-21

Ejecución de aplicaciones HPC utilizando contenedores


Tecnologías Específicas

Ingeniería de Computadores
Tecnologías de la Información
 


Descripcion y Objetivos

El término HPC (High Performance Computing o Computación de Alto Rendimiento) hace referencia al campo de la computación que permite resolver problemas muy complejos, generalmente científicos o ingenieriles, y que involucran un gran coste computacional y grandes volúmenes de datos. Para ello, se toman como base algunas tecnologías como los superordenadores, los clusters de computadores y las técnicas de programación paralela.

Instalar una aplicación HPC en un cluster no es una tarea simple ya que todas las bibliotecas, los compiladores y las dependencias de la aplicación deben estar instaladas y deben coincidir con lo requerido por la aplicación. Además, generalmente diferentes aplicaciones presentan requerimientos diferentes en cuanto a las versiones utilizadas, pudiendo dar lugar a ciertos conflictos en la instalación.

Intuitivamente, parece razonable pensar que si consiguieramos minimizar la dependencia de la aplicación HPC con el software instalado en el cluster se facilitaría en gran medida la gestión del cluster y además se aceleraría la fase de despliegue de la aplicación HPC a un entorno particular de ejecución. 

La tecnología de contenedores software viene a cubrir esta necesidad. Mediante la utilización de contenedores, una aplicación o un servicio, sus dependencias y su configuración se empaquetan como una imagen que es independiente del entorno en el que va a ejecutarse. Además, los contenedores también aíslan las aplicaciones entre sí en un sistema operativo compartido, lo que facilita enormemente ejecutar diversas aplicaciones HPC en un mismo cluster.

El objetivo principal de este TFG es tomar una aplicación HPC (Weather Research and Forecasting, WRF) y crear a partir de ella un contenedor que pueda ejecutarse en un cluster de computadores. 
De forma más detallada se pueden considerar los siguientes objetivos parciales:

  • Estudio de diversos productos relacionados con contenedores software: Docker, Singularity, Kubernetes, ...   
  • Estudio, uso y creación de contenedores software de aplicaciones secuenciales  
  • Estudio, uso y creación de contenedores software de aplicaciones paralelas que utilizan técnicas de paso de mensajes
  • Adaptación y despliegue de los contenedores software en un entorno de ejecución cluster
 


Metodología y Competencias

Se aplicará una metodología estructurada en varias fases, de acuerdo con el siguiente plan de trabajo

  • Estudio de la tecnología de contenedores software y productos disponibles 
  • Creación de un contenedor software para la aplicación HPC en un entorno local 
  • Familiarización con el sistema de colas PBS para ejecución en Galgo
  • Creación de un contenedor software para la aplicación HPC en un entorno cluster 
  • Realización de pruebas en el cluster Galgo

Las principales competencias que se cubren en este TFG son las siguientes

  • Competencias de Ingeniería de Computadores:
    • Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo plataformas paralelas y distribuidas, así como desarrollar y optimizar software para las mismas.
  • Competencias de Tecnologías de la Información:
    • Capacidad para seleccionar, diseñar, desplegar, integrar, evaluar, construir, gestionar, explotar y mantener las tecnologías de hardware, software y redes, dentro de los parámetros de coste y calidad adecuados. 
 


Medios a utilizar

Todo el desarrollo del TFG se realizará en entornos Linux, es deseable por tanto que el estudiante tenga experiencia trabajando en este sistema operativo.

  • Software:
    • Software para creación de contenedores: Docker, Singularity
    • Aplicación HPC: Weather Research and Forecasting (WRF)  
  • Hardware:
    • Supercomputador Galgo
    • PC con sistema operativo Linux
       
 


Bibliografía

  • Get Started with Docker. [Online] https://www.docker.com/get-started
  • Singularity User Guide. [Online] https://sylabs.io/guides/3.4/user-guide/
  • Documentación de Kubernetes. [Online] https://kubernetes.io/es/docs/home/
  • Weather Research and Forecasting Model. National Center for Atmospheric Research. [Online] https://www.mmm.ucar.edu/weather-research-and-forecasting-model
  • PBS Professional. [Online] http://www.pbspro.org/
 


Tutor


CAZORLA LÓPEZ, DIEGO
 

Alumno