Plataforma web para la extracción de trazas en sistemas HPC
Web platform for trace extraction in HPC systems
Ver/ Abrir
Identificadores
URI: http://hdl.handle.net/10902/4882Registro completo
Mostrar el registro completo DCAutoría
Pérez Gallardo, Iván
Fecha
2014-04-28Derechos
Atribución-NoComercial-SinDerivadas 3.0 España
Palabras clave
Computación de alto rendimiento
Captura de trazas
Drupal
High performance computing (HPC)
Capturing trace
Resumen/Abstract
RESUMEN: Los sistemas de High Performance Computing (HPC) ejecutan programas paralelos que aprovechan la capacidad de múltiples nodos de cómputo del sistema. Para ello, los diferentes procesos de cada nodo se comunican entre sí mediante algún tipo de mecanismo de comunicación, típicamente mensajes MPI. La optimización de las aplicaciones para estos sistemas precisa de mecanismos que informen de los eventos que ocurren en el sistema, permitiendo analizar las diferentes fases de ejecución, las comunicaciones entre nodos, impacto en la escalabilidad, etc. La obtención de trazas de la ejecución de las aplicaciones permite visualizar estos parámetros. Además, las trazas de aplicaciones paralelas son muy útiles en la investigación en el entorno de HPC, típicamente empleándose en herramientas de simulación. La extracción de trazas resulta en muchas ocasiones una tarea compleja, por la dificultad de acceso a sistemas de HPC lo suficientemente grandes, por la complejidad de uso de las herramientas de extracción o por lo tedioso del proceso.
Por estos motivos, las trazas de aplicaciones se consideran muy valiosas en el entorno académico, y en ocasiones no se comparten, impidiendo la repetibilidad de los experimentos. El objetivo de este proyecto ha sido desarrollar una plataforma web capaz de extraer trazas de programas paralelos MPI en sistemas HPC y compartirlas abiertamente a modo de repositorio. La funcionalidad de la plataforma desarrollada permitirá a los usuarios extraer trazas de sus propios programas MPI así como de programas que hayan sido publicados por otros usuarios, ofreciéndoles una interfaz intuitiva, capaz de abstraerlos de la complejidad de estos sistemas. Además, el sistema asigna automáticamente una licencia de uso a las trazas generadas que permite la atribución de autoría, e incluye un repositorio compuesto por las trazas de los usuarios que permitirá comparar y analizar el comportamiento de estos programas en distintas configuraciones.
El desarrollo del proyecto ha comprendido el análisis y elección de un framework de desarrollo web como base para la parte del servidor; el aprendizaje del funcionamiento de sistemas de colas en entornos HPC, así como de la herramienta Extrae de extracción de trazas; y finalmente la validación del sistema mediante varios casos de uso. El sistema ha sido desarrollado sobre Altamira, un sistema HPC de la Universidad de Cantabria, y aun así el diseño es suficientemente flexible como para añadir nuevos sistemas cuando estén disponibles. Se ha comprobado que, utilizando la herramienta diseñada, es posible obtener trazas sin precisar de un conocimiento detallado de la arquitectura del sistema, así como acceder fácilmente a las trazas obtenidas por otros usuarios.
ABSTRACT: High Performance Computing (HPC) systems take advantage of the capacity of multiple compute nodes of the system to execute parallel programs. The different processes on the system nodes communicate between them using some kind of communication method, typically MPI messages. Optimizing applications for these systems requires some method to report the events that happen in the system, which allows analyzing the different stages of the execution, the communication between nodes, the impact in the scalability, etc. The extraction of traces of the execution of the applications allows visualizing these parameters. Additionally, such traces of parallel applications are very useful for research and development of HPC systems, typically used as the inputs of simulation tools.
The trace extraction process is a hard and tedious task, due to the difficulty of accessing large-enough HPC systems, the complexity of the extraction tools or the multiple steps in the process. For these reasons, traces of applications are typically considered very valuable in the academic environment, and very frequently they are not shared openly, impeding the repeatability of the experiments.
The goal of this project is to develop a web platform capable of automating the trace extraction process of MPI parallel programs in HPC systems. The functionality implemented in the platform allows users to run their own MPI programs or other programs available in the system to extract traces, providing an intuitive interface, which abstracts them from the complexity of the HPC systems. Moreover, the platform assigns automatically a license to the generated traces, allowing for the attribution to the author, and includes an open repository composed by the users’s traces, allowing for the comparison and analysis of the behaviour of these programs in different configurations.
The development of the project has involved the analysis and selection of a web development framework as a basis of part of the server; the learning of the operation of queue systems in HPC environments, and the trace extraction tool called Extrae; and finally the validation of some cases of use of the design system. The system has been developed using Altamira, an HPC system in the University of Cantabria, but the design is flexible enough to be easily extended to other clusters whenever they are available. The developed tool has proven useful to acquire traces of parallel applications without requiring a deep knowledge of the system architecture.