|
Grado en Ingeniería Informática |
TRABAJOS FIN DE GRADO curso: 2021-22
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 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
- 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/
- PBS Professional. [Online] http://www.pbspro.org/
Tutor CAZORLA LÓPEZ, DIEGO | Alumno Jacobe Galdon, Antonio |
| |