[ca] En termes de temps d'execució i ús de dades, les aplicacions paral·leles/distribuïdes poden tenir execucions variables, fins i tot quan s'empra el mateix conjunt de dades d'entrada. Existeixen certs aspectes de rendiment relacionats amb l'entorn que poden afectar dinàmicament el comportament de l'aplicació, tals com: la capacitat de la memòria, latència de la xarxa, el nombre de nodes, l'heterogeneïtat dels nodes, entre d'altres. És important considerar que l'aplicació pot executar-se en diferents configuracions de maquinari i el desenvolupador d'aplicacions no port garantir que els ajustaments de rendiment per a un sistema en particular continuïn essent vàlids per a d'altres configuracions. L'anàlisi dinàmica de les aplicacions ha demostrat ser el millor enfocament per a l'anàlisi del rendiment per dues raons principals. En primer lloc, ofereix una solució molt còmoda des del punt de vista dels desenvolupadors mentre que aquests dissenyen i evaluen les seves aplicacions paral·leles. En segon lloc, perquè s'adapta millor a l'aplicació durant l'execució. Aquest enfocament no requereix la intervenció de desenvolupadors o fins i tot l'accés al codi font de l'aplicació. S'analitza l'aplicació en temps real d'execució i es considra i analitza la recerca dels possibles colls d'ampolla i optimitzacions. Per a optimitzar l'execució de l'aplicació bioinformàtica mpiBLAST, vam analitzar el seu comportament per a identificar els paràmetres que intervenen en el rendiment d'ella, com ara: l'ús de la memòria, l'ús de la xarxa, patrons d'E/S, el sistema de fitxers emprat, l'arquitectura del processador, la grandària de la base de dades biològica, la grandària de la seqüència de consulta, la distribució de les seqüències dintre d'elles, el nombre de fragments de la base de dades i/o la granularitat dels treballs assignats a cada procés. El nostre objectiu és determinar quins d'aquests paràmetres tenen major impacte en el rendiment de les aplicacions i com ajustar-los dinàmicament per a millorar el rendiment de l'aplicació. Analitzant el rendiment de l'aplicació mpiBLAST hem trobat un conjunt de dades que identifiquen cert nivell de serial·lització dintre l'execució. Reconeixent l'impacte de la caracterització de les seqüències dintre de les diferents bases de dades i una relació entre la capacitat dels workers i la granularitat de la càrrega de treball actual, aquestes podrien ser sintonitzades dinàmicament. Altres millores també inclouen optimitzacions relacionades amb el sistema de fitxers paral·lel i la possibilitat d'execució en múltiples multinucli. La grandària de gra de treball està influenciat per factors com el tipus de base de dades, la grandària de la base de dades, i la relació entre grandària de la càrrega de treball i la capacitat dels treballadors.

[en] In terms of execution time and data usage, parallel/distributed applications may have variable runtimes, even when using the same input data. There are certain performance aspects related to environment that may affect the dynamic behavior of the application, such as: memory capacity, network latency, number of nodes, node heterogeneity, among others. It is important to consider that the application can be executed on different hardware configurations. The application developer cannot guarantee that performance tuning for a particular system is still valid for other configurations. Dynamic analysis of applications has shown to be the best approach for performance analysis for two main reasons. First, it offers a very comfortable solution for developers point of view while designing and evaluation its parallel applications. Second, because it adapts better during the application execution. This approach does not require developer intervention or even access to the source code of the application. The current application runtime is considered and analyzed finding relevant bottlenecks and possible optimizations. To optimize the execution of mpiBLAST application, we analyze its behavior to identify the parameters involved in the application performance, such as: memory usage, network usage, I/O patterns, file system employed, processor architecture, biological database size, query sequence size, the sequence distribution inside them, number of database fragments and/or granularity of work assigned to each process. Our goal is to determine which of these parameters have higher impact in the application performance and how to tune them dynamically to improve the performance of the application. Analyzing the performance of mpiBLAST application we have found a data set that identifies certain level of serialization inside the execution. Recognize the impact of the characterization of the sequences inside the different databases and a relationship between the capacity of workers and the granularity of existing work that could be tuned dynamically. Other improvements also include optimizations related with the parallel file systems and the possibility of execution in a multithreaded multicore. The work grain size is in uenced by factors as database type, database size, and the relationship between the size of workload and workers capacity.