[en] In the last years, computing performance demand has been in increase specially in the scientific field that has to solve complex problems. In general the data set size and the complexity of the operations over them require the use of very powerful systems. Thus, the increasing necessity for high performance systems/computing has been directing the attention of the scientific field towards the parallel/distributed paradigm. The optimization process, so-called tuning process, is the process followed in order to adapt and improve the behaviour of the applications by modifying their critical parameters. It includes several and successive phases. Firstly, during a monitoring phase the information about the behaviour of the application is captured. Next, the information is analyzed, by looking for bottlenecks, deducing their causes and trying to determine the adequate actions to eliminate them. Finally, appropriate changes have to be applied to the code to solve the problems and improve the performance. Fortunately, through the years different approaches and tools have been developed with the aim of helping the user during some of the optimization phases (monitoring, analysis or tuning phases). One of the available tools is MATE (Monitoring, Analysis and Tuning Environment), which is an automatic and dynamic tuning environment for parallel applications. MATE works in three continuous and iterative phases in order to adapt the deployment of the application according to the current state of the execution environment. MATE includes the knowledge to tune performance problems in pieces of software called --tunlets'. Each tunlet includes the logic to collect behavioural information, analyze it on the fly and decide what the required tuning actions are. The objective of this work is to extend the usability of MATE. Our work covers two different aspects of MATE: - the improvement of the performance reached by the centralized analysis executed by MATE, due to it turns in a bottleneck as the size of the application increases. Thus, we provide an alternative to make MATE scalable. - the increase in the user-friendliness of MATE in order to facilitate the inclusion of new performance knowledge in it. Thus, we make MATE transparent for the users. According to the first aspect, we propose a novel approach to execute the analysis process, called Distributed-Hierarchical Collecting-Preprocessing Approach. This approach is based on the distributed collection of events which alleviates the centralized old-fashion in which collection was done, and in the preprocessing of cumulative or comparative operations as possible. Thus, the Global Analyzer receives just the necessary information condensed in a unique message from each Collector-Preprocessor, which considerably reduces the overload of Global Analyzer. In this way, MATE is provided with scalability properties. According to the second aspect, we provide a methodology, including a designed language and a developed translator to automatically insert tunlets (knowledge) in MATE. When some problem has to be tuned in a parallel application the user has to develop the corresponding tunlet. By using our methodology, the user is exempted from being involved in implementation details of MATE. Thus, by defining a set of abstractions about the application and the performance model, such abstractions can be formalized in a tunlet specification using the provided language. Such specification will be automatically translated in a tunlet ready to be used in MATE. Both scalability and transparency of MATE are qualities necessary to make MATE a more useful and user-friendly tool. The proposals and developments presented attempt to provide MATE with such characteristics. Experiments showed the viability of the proposals.

[es] La demanda de cómputo de altas prestaciones está en constante especialmente en el área científica ya que debe resolver problemas complejos. En general, el volumen de datos y las operaciones que deben realizarse sobre ellos requieren la utilización de sistemas muy potentes. Ello ha conducido a una mayor utilización del paradigma paralelo/distribuido. El proceso de optimización, denominado proceso de sintonización, es el proceso mediante el cual el comportamiento de la aplicación es adaptado y mejorado a travÎs de la modificación de sus parámetros críticos. El proceso de sintonización incluye varias fases. En primer lugar, durante una fase de monitorización se recoge información acerca del comportamiento de la aplicación. A continuación, dicha información es analizada para detectar problemas, deducir las causas y determinar soluciones. Finalmente, deben aplicarse los cambios necesarios en el código de la aplicación para resolver el problema y así mejorar su rendimiento. Afortunadamente, existen diferentes herramientas y aproximaciones para ayudar a los usuarios en las diferentes fases de optimización (monitorización, análisis o sintonización). Una de las herramientas disponibles es MATE (Monitoring, Analysis and Tuning Environment), un entorno para la sintonización dinámica y automática de aplicaciones paralelas. MATE, como su nombre indica, consiste en tres fases continuas e iterativas para adaptar el comportamiento de la aplicación de acuerdo al estado actual del ambiente de ejecución. El conocimiento que utiliza MATE para sintonizar los problemas de rendimiento es encapsulado en módulos de software denominados "tunlets". Cada tunlet provee la lógica necesaria para recolectar información de la ejecución de la aplicación, analizarla y decidir cuáles son las acciones de sintonización necesarias. El objetivo del presente trabajo es extender la usabilidad de MATE, cubriendo dos aspectos diferentes de MATE: - la mejora del rendimiento alcanzado por el análisis centralizado realizado por MATE, dado que representa un cuello de botella cuando la aplicación crece. En este trabajo presentamos una alternativa para lograr que MATE escale. - hacer de MATE una herramienta más amigable para facilitar la inclusión de conocimiento en MATE. De esta manera, se logra que MATE sea transparente. Respecto del primer aspecto, se propone una nueva aproximación para ejecutar el proceso de análisis, denominada Distributed-Hierarchical Collecting-Preprocessing Approach. Esta nueva aproximación se basa en la recolección distribuida de eventos lo que alivia la recolección centralizada realizada por MATE en su implementación original, así como también el preprocesamiento de las operaciones acumulativas o comparativas, siempre que sea posible. De esta manera, el Global Analyzer recibe de cada Collector-Preprocessor una estructura que condensa resumida sólo la información necesaria para la evaluación global de modelo de rendimiento, lo que reduce considerablemente la sobrecarga sufrida en la aproximación centralizada. De esta manera, MATE presenta propiedades de escalabilidad. Respecto del segundo aspecto, se propone una metodología, incluyendo un lenguaje y un traductor dise-ados y desarrollados ad hoc para insertar tunlets (conocimiento) en MATE de forma automática. Utilizando la metodología propuesta, el usuario no necesita entrar en detalles de implementación de MATE. Así, mediante la definición de un conjunto de abstracciones sobre la aplicación y sobre el modelo de rendimiento, las abstracciones pueden formalizarse en la especificación de un tunlet por medio del lenguaje propuesto. Tal especificación será automáticamente traducida en un tunlet listo para utilizarse en MATE. Escalabilidad y transparencia son dos cualidades necesarias en MATE para que sea una herramienta más útil y amigable para los usuarios. Las propuestas presentadas intentan proveer MATE con tales características. La experimentación, confirma la viabilidad de las propuestas.