O projeto visa resolver o problema de alocação e gerência de recursos em nuvens de computadores para aplicações HPC, minimizando o tempo de execução, consumo de energia e maximizando a tolerância a falhas, sem violar acordos de nível de serviço (SLA), e usando aplicações da biologia como estudo de caso. Tradicionalmente a computação em nuvem tem sido usada para compartilhamento de dados e serviços de uso geral, entretanto esta também tem aparecido como uma alternativa promissora para executar aplicações de HPC (High Performance Computing), mais recentemente. Este paradigma computacional oferece diversas vantagens quando comparado a uma infraestrutura dedicada, tais como o rápido provisionamento de recursos e significativa redução de custos operacionais.
Entretanto, alguns desafios devem ser superados para reduzir a diferença entre o desempenho oferecido por uma infraestrutura dedicada e pelas nuvens. Overheads introduzidos pela camada de virtualização, heterogeneidade de hardware e altas latências de rede afetam negativamente o desempenho da aplicações HPC. Além disso, provedores de nuvens, geralmente adotam políticas de compartilhamento de recursos que podem reduzir ainda mais o desempenho de tais aplicações. Tipicamente, um servidor físico pode hospedar várias máquinas virtuais que podem causar contenção no acesso a recursos compartilhados, como cache e memória principal, reduzindo significativamente seus desempenhos.
Além disso, a seleção de máquinas virtuais e sua configuração manual é tarefa bastante complexa para cientistas que desenvolvem aplicações HPC e não são experts em ferramentas de administração de nuvens. Os escalonadores de aplicações que possuem diversas políticas que variam de acordo com a função objetivo como minimizar o tempo de execução total, minimizar a demanda por energia, mantendo uma garantia de nível de serviço com o usuário, entre outras, tem papel fundamental para garantir a eficiência da execução de tais aplicações. A fim de alavancar o uso de nuvens para execução de aplicações HPC, este projeto visa tratar esses diversos aspectos. A importância do uso de nuvens para execução de aplicações HPC, pode ser observada por algumas iniciativas, tal como o UberCloud, que tem oferecido serviço de HPC na nuvem, onde os usuários podem discutir a experiência de usar tal ambiente. Como estudo de caso consideramos principalmente experimentos na área de bioinformática e, em especial, a genômica comparativa.
Resource Management in Clouds for Executing High Performance Applications (ReMatCH)
This project aims to solve the problem of resource allocation and management in cloud computing for HPC applications, minimizing execution time, power consumption and maximizing fault tolerance without violating SLA, and using applications from the field of biology as a case study. Cloud computing has traditionally been used for data sharing and general purpose services, but more recently it has begun to emerge as a promising alternative for High Performance Computing (HPC) applications. This computational paradigm offers several advantages when compared to a dedicated infrastructure, such as rapid provisioning of resources and significant reduction of operational costs.
However, some challenges must be overcome to bridge the gap between the performance offered by a dedicated infrastructure and the clouds. Overheads introduced by the virtualization layer, hardware heterogeneity and high network latencies negatively affect the performance of HPC applications. In addition, cloud providers generally adopt resource-sharing policies that can further reduce the performance of such applications. Typically, a physical server can host multiple virtual machines that can cause contention in accessing shared resources, such as cache and main memory, significantly reducing their performance.
In addition, the selection of virtual machines and their manual configuration is a rather complex task for scientists who develop HPC applications and are not experts in cloud administration tools. This problem becomes even more complex if we consider scenarios where scientists must perform a number of HPC applications with data dependence (i.e. workflow). Application schedulers that have multiple policies that vary according to the objective function such as minimizing the total execution time, minimizing the demand for energy, maintaining a guarantee of service level with the user, among others, play a fundamental role in ensuring the efficiency of the execution of such applications. In order to leverage the use of clouds to execute HPC applications, this project aims to address these various aspects. The importance of using clouds to run HPC applications can be observed by some initiatives, such as UberCloud, which has offered HPC cloud service where users can discuss the experience of using such an environment.As a case study, we consider mainly experiments in the area of bioinformatics and, in particular, comparative genomics.