Vertelastic: um módulo de decisão para explorando elasticidade vertical no Autoelastic

Carregando...
Imagem de Miniatura

Data de defesa

Autor(a)



Orientador(a)


Título do periódico

ISSN

Título do volume

Nome da instituição

Universidade do Vale do Rio dos Sinos

Departamento

Escola Politécnica

Programa

Programa de Pós-Graduação em Computação Aplicada

Agência de fomento

Nenhuma
Resumo

O conceito de elasticidade está muito ligado à computação em nuvens, pois consiste na capacidade de contrair recursos computacionais de maneira dinâmica e em tempo real. Usualmente, em computação de alto desempenho (HPC), as aplicações são modeladas para serem utilizadas com técnica de balanceamento de carga, fazendo uso da tecnologia de máquinas virtual. A computação paralela há muito tem sido utilizada para resolver questões computacionais que envolvem a execução de muitos processos simultaneamente e demanda quantidade grande de cálculos, cuja premissa é que um grande trecho de código a ser processado pode ser quebrado em menores e, assim, o problema como um todo dividido e resolvido de forma mais rápida. HPC é um típico caso de uso de paralelismo computacional que tem como seu protocolo de comunicação mais comum o Message Passing Interface (MPI), porém quando estamos tratando de aplicações em MPI, o aproveitamento máximo da elasticidade se dá de forma trabalhosa, com a necessidade de reescrita de código, de conhecimento profundo do comportamento da aplicação, além de serem inevitáveis algumas interrupções na aplicação para recompilar novas e pô-la em produção. A fim de evitar a reescrita de código e o aproveitamento total dos hardwares que estão cada vez mais robustos propõe-se na pesquisa desta dissertação a possibilidade de implementação de elasticidade vertical para trabalhar com aplicação de alto desempenho. Um modulo de decisão chamado VertElastic, é incorporado ao framework AutoElastic permitindo assim que se expanda a possibilidade para as duas formas de elasticidade – vertical e horizontal, podendo ainda ser feita de forma fixa com a indicação de threholds ou com predição os valores sejam calculados automaticamente. Trabalhos abordam a elasticidade vertical com threshold, já outros se valem da elasticidade horizontal de forma proativa e/ou reativa, porém não se encontrou pesquisas que permitissem a flexibilidade de se utilizar elasticidade vertical ou horizontal conforme a necessidade de forma proativa ou reativa, para isso o VertElastic se utiliza da elasticidade assíncrona, proporcionando que a aplicação não seja bloqueada enquanto a elasticidade acontece, seja ela para aumentar ou diminuir o recurso computacional. O VertElastic demostra sua viabilidade em uma rotina de testes executados na ferramenta open source OpenNebula. A execução de uma aplicação CPU-Bound demostra que o VertElastic se mostrou entre 13% e 38% mais eficaz que a não utilização de nenhuma técnica de elasticidade. Os testes ainda mostraram que quanto maior o threshold utilizado menor é o ganho no consumo de recursos computacionais e maior o tempo de execução da aplicação.


Tema (CNPq)

ACCNPQ::Ciências Exatas e da Terra::Ciência da Computação

Tipo de arquivo

Dissertação

Como citar

Avaliação

Revisão

Suplementado Por

Referenciado Por