RT info:eu-repo/semantics/masterThesis T1 Reequilibrado automático de carga en supercomputadoras pre-exascala A1 Cal Esteban, Tomás de la A2 Universidad de Valladolid. Escuela de Ingeniería Informática de Valladolid K1 Computación paralela K1 Reequilibrado automático K1 Sistemas heterogénos AB La computación paralela es un paradigma de cómputo extremadamente importante basadoen el uso de máquinas con múltiples elementos de cómputo y la capacidad de ciertas tareasde subdividirse en trabajos de menor tamaño que se pueden ejecutar de forma simultánea.En el campo de HPC (High Performance Computing) se utilizan clústeres con cantidadesmasivas de equipos interconectados por redes de alto rendimiento. La computación paralelaheterogénea es una subclase de la anterior en la que en los nodos de una máquina seutilizan dispositivos de distinta naturaleza adaptados a distintas tareas.Hoy en día, las grandes supercomputadoras pre-exaescala europeas se construyen con milesde nodos idénticos, que incluyen GPUs (Graphics Processing Units). Los nodos con GPUsse manejan con técnicas de programación heterogénea. En un clúster, las GPUs operansimultáneamente con las CPUs que coordinan el trabajo de los procesos o la comunicaciónentre nodos, siendo necesario combinar diferentes modelos de programación de ambos tiposde dispositivos.Las aplicaciones ISL (Iterative Stencil Loop) representan una clase de solucionesimportantes en el campo de la simulación de magnitudes físicas. Están basadas en unproceso iterativo, altamente paralelizable, que requiere gran cantidad de cómputo.El grupo TRASGO de la universidad de Valladolid ha desarrollado una serie de bibliotecasde funciones que permiten la ejecución de este tipo de aplicaciones en sistemas heterogéneosdistribuidos con CPUs y GPUs. Implementan internamente técnicas de tiling para separarlas estructuras de datos en bloques que se asignan a distintos procesadores y solapancómputo y comunicación entre dispositivos cuando es posible, mejorando la eficiencia globaldel programa. El tamaño del bloque asignado a cada proceso es muy relevante, ya queimplica una mayor o menor cantidad de trabajo a realizar en cada dispositivo. Si estacantidad de trabajo no está bien equilibrada, la ejecución se ralentiza, ya que cuando esnecesario realizar sincronizaciones o comunicaciones entre procesos, el tiempo de ejecuciónpasa a ser el del más lento.En mi trabajo de fin de grado se introdujo en las herramientas del grupo un sistema deequilibrado de carga (ALB, Automatic Load Balancing), basado en trabajos previos. Estaherramienta se encarga de analizar continuamente el estado actual de la ejecución y eltiempo que tarda cada proceso en completar una iteración. De forma automática ytransparente al usuario redistribuye la cantidad de trabajo, dando más carga a los dispositivos más rápidos y menos carga a los más lentos, lo que fomenta en un mayorrendimiento global.El objetivo de este proyecto es seguir desarrollando este mecanismo, teniendo en cuentaalgunos de los puntos del trabajo futuro planteados en el trabajo de fin de grado,verificando la utilidad de este mecanismo en ordenadores pre-exascala reales. Se planteacomprobar si en estos sistemas, donde el hardware de cada nodo es completamente idéntico,el estado del sistema o la naturaleza de la carga a ejecutar pueden causar desequilibrios enlos tiempos de ejecución que puedan corregirse con el mecanismo ALB propuesto. YR 2025 FD 2025 LK https://uvadoc.uva.es/handle/10324/79521 UL https://uvadoc.uva.es/handle/10324/79521 LA spa NO Departamento de Informática (Arquitectura y Tecnología de Computadores, Ciencias de la Computación e Inteligencia Artificial, Lenguajes y Sistemas Informáticos) DS UVaDOC RD 11-nov-2025