[en] Scientific applications with High Performance Computing (HPC) requirements are migrating to cloud environments due to the facilities that it offers. Cloud computing plays a major role considering the compute power that it provides, avoiding the cost of physical cluster maintenance. With features like elasticity and pay-per-use, it helps to reduce the researchers procurement risk. Most of HPC applications are implemented using Message Passing Interface (MPI), which is a key component in common and distributed computing tasks. However, for this kind of applications on cloud environments, the major drawback is the lost of execution performance, due to the virtualized network that affects the communications latency and bandwidth. To use a cloud environment with scientific applications of this kind, low latency communication mechanisms are required. The network topology detail is not available for users in virtualized environments, making difficult to use the existing optimizations based on network topology information done in bare-metal cluster environments. In some cases, cloud providers can migrate virtual machines, which impacts the efficiency of routing optimizations and placement algorithms. Moreover, if resource isolation is not guaranteed, resource sharing can lead to variable bandwidth and unstable performance. In this thesis a Dynamic MPI Communication Balance and Management (DMCBM) is presented, to overcome the communication challenge of HPC applications in cloud. DMCBM is implemented as a middle-ware between the users application and the execution environment. It improves message communication latency times in cloudbased systems, and helps users to detect mapping and parallel implementation issues. Our solution dynamically rebalances communication flows at higher levels of the virtualized HPC stack, e.g. over MPI communications layer, to dynamically remove communication hot-spots and congestion in the underlying layers. DMCBM abstracts the communications state between application processes based on latency measurements. This middleware characterizes the underlying network topology and analyzes parallel applications behavior in the cloud. This allows for detecting network congestion and optimizing communications by either selecting alternative communication paths between processes, or leveraging live migration of virtual machines in cloud environments. These options are analyzed in real-time and selected according to the type of congestion (link or destination). DMCBM achieves lower application execution time in case of congestion, obtaining better performance in clouds. Finally, experiments that verify the functionality and improvements of DMCBM with MPI Applications in public and private clouds are presented. The experiments where done by measuring execution and communication times. NAS Parallel Benchmarks and a real application of dynamic particles simulation NBody are used, obtaining an improvement of up to 10% in the execution time and a communication time reduction of about 40% in congestion scenarios.

[es] Las aplicaciones científicas con requisitos de High Performance Computing (HPC) están migrando a entornos cloud debido a las ventajas que ofrece. El cloud computing juega un papel importante teniendo en cuenta la potencia de computo que proporciona, debido a que evita el costo de mantenimiento asociado a un clúster físico. Con características como la elasticidad y el pago por uso, el cloud ayuda a los investigadores a reducir el riesgo de adquisición de recursos físicos. La mayoría de las aplicaciones de HPC se implementan mediante el standard Message Passing Interface (MPI), siendo este un componente clave para tareas de computo distribuido. Sin embargo, ejecutar aplicaciones MPI en entornos cloud tienen como principal desventaja la pérdida de rendimiento durante la ejecución, debido a la virtualización de la red, que afecta la latencia de las comunicaciones y el ancho de banda. Para usar un entorno cloud con aplicaciones científicas de este tipo, se requieren mecanismos de comunicación que permitan baja latencia. La topología de red no está disponible para los usuarios en entornos virtualizados, lo que dificulta el uso de las optimizaciones existentes para bare-metal clusters, basadas en la información de topología de red. En algunos casos, los proveedores de cloud pueden migrar máquinas virtuales, lo que afecta la eficacia de las optimizaciones de enrutamiento y los algoritmos de ubicación. Además, si no se garantiza el aislamiento de los recursos, el intercambio de recursos puede generar un ancho de banda variable y un rendimiento inestable. En esta tesis se presenta Dynamic MPI Communication Balance and Management (DMCBM), un middleware para resolver la pérdida de performance en comunicaciones de aplicaciones HPC en cloud. DMCBM se implementa como un software intermedio entre la aplicación de los usuarios y el entorno de ejecución. Mejora los tiempos de latencia de comunicaciones en sistemas cloud y ayuda a los usuarios a detectar problemas de mapping y ejecución paralela. Nuestra solución re-equilibra dinámicamente los flujos de comunicación a niveles superiores de la pila de HPC virtualizada, sobre la capa de comunicaciones MPI, para eliminar dinámicamente los hot-spots de comunicación y la congestión en las capas subyacentes. DMCBM abstrae el estado de las comunicaciones entre los procesos de la aplicación en función de las mediciones de latencia. Este middleware caracteriza la topología de red subyacente y analiza el comportamiento de las aplicaciones paralelas en cloud. Esto permite detectar la congestión de la red y optimizar las comunicaciones seleccionando rutas de comunicación alternativas entre procesos o aprovechando la migración de máquinas virtuales en entornos cloud. Estas opciones se analizan en tiempo real y se seleccionan según el tipo de congestión (enlace o destino). DMCBM logra un menor tiempo de ejecución de la aplicación en caso de congestión, obteniendo un mejor rendimiento en el cloud. Finalmente, se presentan experimentos que verifican la funcionalidad y las mejoras de DMCBM con aplicaciones MPI en cloud públicos y privados. Los experimentos se realizaron midiendo los tiempos de ejecución y comunicación. Para los experimentos se utilizan dos aplicaciones: NAS Parallel Benchmarks y una aplicación real de simulación dinámica de partículas NBody, obteniendo una mejora de hasta 10% en el tiempo de ejecución y una reducción del tiempo de comunicación de aproximadamente 40% en escenarios de congestión.