Detalhes bibliográficos
Ano de defesa: |
2018 |
Autor(a) principal: |
Moreira, Gabriel Araujo Siccardi |
Orientador(a): |
Righi, Rodrigo Rosa |
Banca de defesa: |
Não Informado pela instituição |
Tipo de documento: |
Dissertação
|
Tipo de acesso: |
Acesso aberto |
Idioma: |
por |
Instituição de defesa: |
Universidade do Vale do Rio dos Sinos
|
Programa de Pós-Graduação: |
Programa de Pós-Graduação em Computação Aplicada
|
Departamento: |
Escola Politécnica
|
País: |
Brasil
|
Palavras-chave em Português: |
|
Palavras-chave em Inglês: |
|
Área do conhecimento CNPq: |
|
Link de acesso: |
http://www.repositorio.jesuita.org.br/handle/UNISINOS/7623
|
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. |