[en] Executing message-­-passing applications using an elevated number of resources is not a trivial task. Due to the complex interaction between the message-­-passing applications and the HPC system, depending on the system, many applications may suffer performance inefficiencies, when they scale to a large number of processes. This problem is particularly serious when the application is executed many times over a long period of time. With the purpose of avoiding these problems and making an efficient use of the system, as main contribution of this thesis, we propose the methodology P3S (Prediction of Parallel Program Scalability), which allows us to analyze and predict the strong scalability behavior for message-­-passing applications on a given system. The methodology strives to use a bounded analysis time, and a reduced set of resources to predict the application performance. The P3S methodology is based on analyzing the repetitive behavior of parallel message-­-passing applications. Such applications are composed of a set of phases, which are repeated through the whole application, independently of the number of application processes. The methodology is made up of three stages. A first characterization step, where the relevant phases of the parallel application are characterized, from the execution of a set of small-­-scale application signatures. A second stage of modeling of the application, where the application logical scalability model is generated for each relevant application phase, whereby to construct the scalable logical trace of the application. This trace will be used to predict the logical behavior of the application, as the number of the application processes increases. Finally, the last stage of the methodology consist of predicting the application performance for a specific number of processes. In order to do that, the scalable logical trace will be specified for the number of processes to predict the application performance, with the objective to predict the computational and communication time of each relevant phase for this number of processes, in order to obtain the performance prediction. The output of the P3S methodology will be the predicted curve of application speedup. Using this information, the users can select the most appropriate resources to execute his application on the target system, in order to use the system resources efficiently.

[es] Ejecutar aplicaciones paralelas de paso de mensajes sobre un elevado número de recursos de forma eficiente no es una tarea trivial. Debido a la compleja interacción entre la aplicación paralela y el sistema HPC, a medida que se aumenta el número de procesos de la aplicación, dependiendo del sistema, puede llegar un punto donde la aplicación presente su límite de escalabilidad, momento a partir del cual se empezarán a producir ineficiencias en el sistema, conllevando a un uso ineficiente del mismo. Este problema se vuelve especialmente crítico en aplicaciones paralelas las cuales tienen que ser ejecutadas frecuentemente, utilizando un elevado número de recursos sobre un largo período de tiempo Con el fin de intentar solventar estos problemas y hacer un uso eficiente del sistema, como principal contribución de esta tesis, se propone la metodología P3S (Prediction of Parallel Program Scalability), la cual permite predecir el rendimiento de la escalabilidad fuerte de aplicaciones paralelas de paso de mensajes en un determinado sistema, utilizando un tiempo de análisis limitado y un conjunto reducido de recursos del sistema. La metodología P3S, se basa en analizar el comportamiento repetitivo de las aplicaciones paralelas de paso de mensajes. Este tipo de aplicaciones están compuestas por un conjunto de fases identificables, las cuales se van repitiendo a lo largo de toda la aplicación, independientemente del número de procesos de la aplicación. La metodología consta de tres etapas. Una primera etapa de caracterización, donde se caracterizan las fases relevantes de la aplicación paralela, a partir de la información obtenida de la ejecución de un conjunto de firmas de la aplicación, para un número reducido de procesos. Una segunda etapa de modelización de la aplicación, donde se genera el modelo lógico de escalabilidad de cada fase relevante de la aplicación paralela, mediante el cual construir la traza lógica escalable de la aplicación. Esta traza permitirá predecir el comportamiento lógico de la aplicación, a medida que se aumenta su número de procesos. Finalmente, la última etapa de la metodología consiste en predecir el rendimiento de la aplicación para un número específico de procesos. Para ello, la traza lógica escalable será precisada para el número de procesos para el cual se desea predecir el rendimiento de la aplicación, con el objetivo de predecir el tiempo de cómputo y comunicación de cada fase relevante de la aplicación, para ese número de procesos, con la finalidad de obtener el tiempo predicho de la aplicación. Gracias a la curva de escalabilidad de la aplicación, proporcionada por la metodología P3S, los usuarios pueden seleccionar los recursos más adecuados para ejecutar su aplicación en el sistema objetivo, lo que permite tener la seguridad de utilizar los recursos del sistema de forma eficiente.