[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.

[es] En términos de tiempo de ejecución y uso de datos, las aplicaciones paralelas/distribuidas pueden tener ejecuciones variables, incluso cuando se emplea el mismo conjunto de datos de entrada. Existen ciertos aspectos de rendimiento relacionados con el entorno que pueden afectar dinámicamente el comportamiento de la aplicación, tales como: la capacidad de la memoria, latencia de la red, el número de nodos, la heterogeneidad de los nodos, entre otros. Es importante considerar que la aplicación puede ejecutarse en diferentes configuraciones de hardware y el desarrollador de aplicaciones no puede garantizar que los ajustes de rendimiento para un sistema en particular continuen siendo válidos para otras configuraciones. El análisis dinámico de las aplicaciones ha demostrado ser el mejor enfoque para el análisis del rendimiento por dos razones principales. En primer lugar, ofrece una solución muy cómoda para el punto de vista de los desarrolladores mientras que él diseña y evalua sus aplicaciones paralelas. En segundo lugar, porque se adapta mejor a la aplicación durante la ejecución. Este enfoque no requiere la intervención de desarrolladores o incluso el acceso al código fuente de la aplicación. Se analiza la aplicación en tiempo real de ejecución y se considera y analiza la búsqueda de los posibles cuellos de botella y optimizaciones. Para optimizar la ejecución de la aplicación bioinformática mpiBLAST, analizamos su comportamiento para identificar los parámetros que intervienen en el rendimiento de ella, tales como: el uso de la memoria, el uso de la red, patrones de E/S, el sistema de ficheros empleado, la arquitectura del procesador, el tamaño de la base de datos biológica, el tamaño de la secuencia de consulta, la distribución de las secuencias dentro de ellas, el número de fragmentos de la base de datos y/o la granularidad de los trabajos asignados a cada proceso. Nuestro objetivo es determinar cuál de estos parámetros tienen mayor impacto en el rendimiento de las aplicaciones y cómo ajustarlos dinámicamente para mejorar el rendimiento de la aplicación. Analizando el rendimiento de la aplicación mpiBLAST hemos encontrado un conjunto de datos que identifican cierto nivel de serialización dentro de la ejecución. Reconociendo el impacto de la caracterización de las secuencias dentro de las diferentes bases de datos y una relación entre la capacidad de los workers y la granularidad de la carga de trabajo actual podrían ser sintonizadas dinámicamente. Otras mejoras también incluyen optimizaciones relacionadas con el sistema de ficheros paralelo y la posibilidad de ejecución en múltiples multinucleo. El tamaño de grano de trabajo está influenciado por factores como el tipo de base de datos, el tamaño de la base de datos, y la relación entre el tamaño de la carga de trabajo y la capacidad de los trabajadores.