Autoelastic: explorando a elasticidade de recursos de computação em nuvem para a execução de aplicações de alto desempenho iterativa

Orientador(a) (dc.contributor.advisor)Righi, Rodrigo da Rosa
Lattes Orientador(a) (dc.contributor.advisorLattes)http://lattes.cnpq.br/2332604239081900pt_BR
Autor(a) (dc.contributor.author)Rodrigues, Vinicius Facco
Autor(a) Lattes (dc.contributor.authorLattes)http://lattes.cnpq.br/8625526295177399pt_BR
Data de Disponibilização (dc.date.accessioned)2016-05-09T12:51:40Z
dc.date.available (dc.date.available)2016-05-09T12:51:40Z
Data da defesa / Data do evento (dc.date.issued)2016-02-29
Abstract (dc.description.abstract)Elasticity is one of the key features of cloud computing. Using this functionality, we can increase or decrease the amount of computational resources of the cloud at any time, enabling applications to dynamically scale computing and storage resources, avoiding overand under-provisioning. In high performance computing (HPC), initiatives like bag-oftasks or key-value applications use a load balancer and a loosely-coupled set of virtual machine (VM) instances. In this scenario, it is easier to add or remove virtual machines because the load balancer is in charge of distribute tasks between the active processes. However, iterative HPC applications are characterized by being tightly-coupled and have difficulty to take advantage of the elasticity because in such applications the amount of processes is fixed throughout the application runtime. In fact, the simple addition of new resources does not guarantee that the processes will use them. Moreover, removing a single process can compromise the entire execution of the application because each process plays a key role in its execution cycle. Iterative applications related to HPC are commonly implemented using MPI (Message Passing Interface). In the joint-field of MPI and tightly-coupled HPC applications, it is a challenge use the elasticity feature since we need re-write the source code to address resource reorganization. Such strategy requires prior knowledge of application behaviour, requiring stop-reconfigure-and-go approaches when reorganizing resources. Besides, using MPI 2.0, in which the number of process can be changed during the application execution, there are problems related to how profit this new feature in the HPC scope, since the developer needs to handle the communication topology by himself. Moreover, sudden consolidation of a VM, together with a process, can compromise the entire execution. To address these issues, we propose a PaaS-based elasticity model, named AutoElastic. It acts as a middleware that allows iterative HPC applications to take advantage of dynamic resource provisioning of cloud infrastructures without any major modification. AutoElastic offers elasticity automatically, where the user does not need to configure any resource management policy. This elastic mechanism includes using fixed thresholds as well as offering a new approach where it self adjusts the threshold values during the application execution. AutoElastic provides a new concept denoted here as asynchronous elasticity, i.e., it provides a framework to allow applications to either increase or decrease their computing resources without blocking the current execution. The feasibility of AutoElastic is demonstrated through a prototype that runs a CPU-bound numerical integration application on top of the OpenNebula middleware. Results with a parallel iterative application showed performance gains between 28.4% and 59% when comparing different executions enabling and disabling elasticity feature. In addition, tests with different parameters showed that when using threshold-rule based techniques with fixed thresholds, the upper threshold has a greater impact in performance and resource consumption than the lower threshold.en
Resumo (dc.description.resumo)Elasticidade de recursos é uma das características chave da Computação em Nuvem. Através dessa funcionalidade, recursos computacionais podem ser adicionados ou removidos ao ambiente a qualquer momento, permitindo aplicações escalarem dinamicamente, evitando provisionamento excessivo ou restrito de recursos. Considerando a área de computação de alto desempenho, conhecida também como HPC (High Performance Computing), iniciativas baseadas em sacola-de-tarefas utilizam um balanceador de carga e instâncias de máquinas virtuais (VM) fracamente acopladas. Neste cenário, os processos desempenham papéis independentes, facilitando a adição e remoção de VM’s pois o balanceador de carga se encarrega de distribuir tarefas entre os processos das VM’s ativas. Entretanto, aplicações HPC iterativas se caracterizam por serem fortemente acopladas e terem dificuldade de obter vantagem da elasticidade pois, em tais aplicações, geralmente os processos são fixos durante todo o tempo de execução. Devido a isso, a simples adição de novos recursos não garante que os mesmos serão utilizados pelos processos da aplicação. Além disso, a remoção de processos pode comprometer a inteira execução da aplicação, pois cada processo desempenha um papel fundamental em seu ciclo de execução. Aplicações iterativas voltadas para HPC são comumente implementadas utilizando MPI (Message Passing Interface) e neste contexto, fazer o uso da elasticidade torna-se um desafio pois é necessária a reescrita do código fonte para o tratamento da reorganização de recursos. Tal estratégia muitas vezes requer um conhecimento prévio do comportamento da aplicação, sendo necessárias interrupções do fluxo de execução nos momentos de reorganização de recursos. Além disso, utilizando MPI 2.0, em que há a possibilidade da alteração da quantidade de processos em tempo de execução, existem problemas relacionados em como tirar proveito da elasticidade pois o desenvolvedor deve por si mesmo gerenciar a reorganização da topologia de comunicação. Ainda, consolidações repentinas de máquinas virtuais que executam processos da aplicação podem comprometer a sua execução. Focando nessas questões, propõe-se nessa dissertação um modelo de elasticidade baseado na camada PaaS (Platform as a Service) da nuvem, chamado AutoElastic. AutoElastic age como um middleware permitindo que aplicações HPC iterativas obtenham vantagem do provisionamento de recursos dinâmico de uma infraestrutura de nuvem sem a necessidade de modificações no código fonte. AutoElastic oferece a elasticidade de forma automática, não sendo necessária a configuração de regras por parte do usuário. O mecanismo de elasticidade conta com a utilização de threholds fixos além de oferecer uma nova abordagem em que eles se auto ajustam durante a execução da aplicação. Ainda, AutoElastic oferece também um novo conceit o nomeado como elasticidade assíncrona, o qual oferece um arcabouço para permitir que a execução de aplicações não seja bloqueada enquanto recursos são adicionados ou removidos do ambiente. A viabilidade de AutoElastic é demonstrada através de um protótipo que executa uma aplicação de integração numérica CPU-Bound sobre a plataforma de nuvem OpenNebula. Resultados com tal aplicação demonstraram ganhos de desempenho de 28,4% a 59% quando comparadas diferentes execuções elásticas e não elásticas. Além disso, testes com diferentes parametrizações de thresholds e diferentes cargas de trabalho demonstraram que no uso de thresholds fixos, o valor do threshold superior possui maior impacto que o inferior no desempenho e consumo de recursos por parte da aplicação.pt_BR
Agência de fomento (dc.description.sponsorship)CAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível Superiorpt_BR
Agência de fomento (dc.description.sponsorship)PROSUP - Programa de Suporte à Pós-Gradução de Instituições de Ensino Particularespt_BR
URI (dc.identifier.uri)http://www.repositorio.jesuita.org.br/handle/UNISINOS/5242
Idioma (dc.language)pt_BRpt_BR
Nome da instituição (dc.publisher)Universidade do Vale do Rio dos Sinospt_BR
País da Instituição (dc.publisher.country)Brasilpt_BR
Departamento (dc.publisher.department)Escola Politécnicapt_BR
Sigla da Instituição (dc.publisher.initials)Unisinospt_BR
Programa (dc.publisher.program)Programa de Pós-Graduação em Computação Aplicadapt_BR
Direitos de acesso ao documento (dc.rights)openAccesspt_BR
Assunto (dc.subject)Computação em nuvempt_BR
Assunto (dc.subject)Elasticidade de recursospt_BR
Assunto (dc.subject)Computação de alto desempenhopt_BR
Assunto (dc.subject)Cloud computingen
Assunto (dc.subject)Resource elasticityen
Assunto (dc.subject)High performance computingen
Tema (CNPq) (dc.subject.cnpq)ACCNPQ::Ciências Exatas e da Terra::Ciência da Computaçãopt_BR
Título (dc.title)Autoelastic: explorando a elasticidade de recursos de computação em nuvem para a execução de aplicações de alto desempenho iterativapt_BR
Tipo de arquivo (dc.type)Dissertaçãopt_BR

Arquivos

Pacote original

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
Vinicius Facco Rodrigues_.pdf
Tamanho:
2.3 MB
Formato:
Adobe Portable Document Format
Descrição:
recursos_computacao

Licença do pacote

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
license.txt
Tamanho:
2.12 KB
Formato:
Item-specific license agreed upon to submission
Descrição: