M. Danelutto, D. Laforenza, M. Vanneschi (Eds.): Euro-Par 2004, LNCS 3149, pp. 98–107, 2004. © Springer-Verlag Berlin Heidelberg 2004 MATE: Dynamic Performance Tuning Environment * Anna Morajko, Oleg Morajko, Tomàs Margalef, and Emilio Luque Computer Science Department. Universitat Autònoma de Barcelona 08193 Bellaterra, Spain ania@aomail.uab.es, olegm@aia.ptv.es, {tomas.margalef,emilio.luque}@uab.es Abstract. Performance is a key issue in the development of parallel/distributed applications. The main goal of these applications is to solve the considered problem as fast as possible utilizing a certain minimum of parallel system ca- pacities. Therefore, developers must optimize these applications if they are to fulfill the promise of high performance computation. To improve performance, programmers search for bottlenecks by analyzing application behavior, finding problems and solving them by changing the source code. These tasks are espe- cially difficult for non-expert programmers. Current approaches require devel- opers to perform optimizations manually and to have a high degree of experi- ence. Moreover, applications may be executed in dynamic environments. Therefore, it is necessary to provide tools that automatically carry out the opti- mization process by adapting application execution to changing conditions. This paper presents the dynamic tuning approach that addresses these issues. We also describe an environment called MATE (Monitoring, Analysis and Tun- ing Environment), which provides dynamic tuning of applications. 1 Introduction Parallel/distributed systems offer high computing capabilities that are used in many scientific research fields. They facilitate the determination of the human genome, computing atomic interactions or simulating the evolution of the universe. So biolo- gists, chemists, physicists and other researchers have become intensive users of appli- cations with high performance computing characteristics. They submit applications to powerful systems to get their results as fast as possible. In this context, performance becomes a key issue. To satisfy user requirements, applications must reach high per- formance standards. An application is inefficient and useless when its performance is below an acceptable limit. Therefore, applications must not only be systematically tested from the functional point of view to guarantee correctness, but must also be optimized to ensure that there are no performance bottlenecks. The optimization (or tuning) process requires a developer to go through the appli- cation performance analysis and the modification of critical application parameters. First, performance measurements must be taken to provide data about the applica- tion’s behavior. This phase is known as monitoring and collects data related to the * This work has been supported by the MCyT (Spain) under contract TIC2001-2592, by the European Commission under contract IST- 2000-28077 (APART 2) and has been partially supported by the Generalitat de Catalunya – GRC 2001SGR-00218.