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

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